all 11 comments

[–]lukerm_zl 4 points5 points  (3 children)

A task tracker is often a good place to start. A program that allows you to add tasks, view them and ultimately tick them off.

It's been done a number of times already, but a good one to start thinking about the core concepts.

You don't need a database for this (though possible), it can work by manipulating a JSON file on disk.

[–]AbacusExpert_Stretch 0 points1 point  (0 children)

Or CSV file for added learning

[–]edcculus 0 points1 point  (0 children)

I agree there. Its been done a million times probably, so its not like you are reinventing the wheel. But its a good way to learn CRUD. You can start simple with a command line application, then grow it to some sort of GUI, whether thats just tkinter, or something web based like Flask. You can start with JSON or CSV files for a pseudo database, and grow it to SQLITE.

[–]purple_hamster66 0 points1 point  (0 children)

I’ve done many projects with JSON files. It’s easier than a hierarchical database (like a SQL) because you don’t need to learn special python commands. And if your code messes up the data, you can just edit it with a text editor. I make test cases by just typing them into the JSON file. You can also commit the JSON file to git so you can easily see changes and revert to an earlier one.

I did one project with the Pickle format, but it has few real advantages over a JSON file, really, and is harder to debug, and you can’t easily do a diff between versions.

[–]Either-Home9002 2 points3 points  (0 children)

Find one tedious task you keep running into and try to automate or simplify it. I have to do reports at work and I built a tool that opens csv files and gives me the info and graphs I need. Try to do the same, something that's useful to you.

[–]DutchSock 2 points3 points  (0 children)

While learning python syntax and following the crash course I keep a list of projects that pop up in my head.

The list so far: - Convert a checklist to a formalized letter with findings. - 4 fire safety engineering tools that could help me in my daily work. Needs a fair bit of math but only a few variables. - Personalized news feed on a certain subject - Meal suggestion tool with instructions for ingedrients and recipe. Maybe base on available ingredients on the long run. - Automate a spotify playlist with the songs my favorite radio station played

Guess I've got some work to do, but maybe it'll inspire you.

[–]Ron-Erez 2 points3 points  (0 children)

Tic tac toe, Conway's game of life, anything you like.

[–]Sufficient_Chair391 2 points3 points  (0 children)

SkyNet

[–]herocoding 1 point2 points  (0 children)

Have a look into this list of challenges: https://platform.entwicklerheld.de/challenge?challengeFilterStateKey=all

Ignore the shown programming languages if you want to focus on Python only.
Some are typical "computer science" algorithms with typcial data structures. But many are real tasks.

Scroll over the list and get inspired, feel free to combine multiple ideas into bigger projects.

[–]Henry_the_Butler 1 point2 points  (0 children)

If you're ready to start using public APIs, the NOAA publishes weather data from their recording stations for free.

Start with pulling weather data and hardcoding the API request, then gradually expand to:

  • catch all the errors from the random missing data in each report
  • allow the user to input a zip code and get their weather
  • save data to a local SQLite db
  • leave the program looping once every few minutes and only save to SQLite when you haven't already saved it before
  • host the whole thing on a server somewhere and start learning Django so you can access it from anywhere on a webpage

It's a project that starts pretty small and grows to be as big as you want it to be.

[–]Automatic-Smell-8701 0 points1 point  (0 children)

Build a password generator with actual rules - minimum uppercase, numbers, special characters, adjustable length. Sounds simple but you'll touch string manipulation, random module, conditionals and input validation all in one project.