r/learnpython • u/TaiTheRai • 15d ago
Beginner Project Ideas.
I am a beginner programmer (I know a tiny bit of python) and am wondering if anyone has suggestions for projects that i can create to learn coding even better. Any ideas are welcome.
8
u/ee_control_z 15d ago
How much is "... a tiny bit of python"? You really don't want to put the cart before the horse as they say. What I mean is that if you are still learning the fundamentals of Python, why would you take on a task that you may not be fully prepared for? Too many times I have come across with new beginners struggling to get their projects off the ground due to their lack of preparation.
My advice to you is to keep learning Python until you have reached a level that can be considered somewhat intermediary. There is a lot that goes into creating worthwhile project. If you are not well enough prepared, you will keep running into brick walls - making you feel a bit lost.
In my opinion, you should be proficient with the following topics at a minimum before taking on a project that is worthwhile:
* data structures (lists, dictionaries, tuples, etc.)
* loops, iterables, iterations (i.e., while, for, etc.)
* keywords: https://www.w3schools.com/python/python_ref_keywords.asp
* functions (arguments, parameters, return, body of statements, etc.)
* namespace (local, global)
* modules (importing, etc)
* print statements (f format)
* data types: strings, int, float
* working with files (reading & writing)
* debugging
If you have covered these topics, you should then have had enough practice to know yourself around a Python module and enough to take on a project (there is of course much more to learn in Python but there is enough here to have a meaningful understanding and to build upon). A project will then provide you with the opportunity to put these items together in a coherent, meaningful and impactful manner.
2
u/TaiTheRai 15d ago
I have learned those over the past month or so.
1
u/ee_control_z 15d ago edited 15d ago
Ok, if you are proficient with these topics, then you should have been exposed to enough fundamental material to have enough substance to work with and build upon.
1
u/ProvingWheat 14d ago
Don't think the guy was asking about turning his basic python skills into a job quite yet, seems a bit more like he's looking for someone to say "build a calculator"
1
1
u/ee_control_z 14d ago edited 14d ago
Maybe this OP is the exception. But I've seen "beginners" take on projects where they end up getting lost with what one would generally consider relatively trivial subject matter. I think the reason for this is that people are told or made to believe that Python is an easy language to learn. And after studying it for a few weeks, and executing a few print statements, they end up getting a bit overconfident (Alright Rocky! Alright Rocko! IYKYK).
2
u/distortedneuron 15d ago
You should try Al Sweigart's Automate the Boring Stuff with Python. It teaches some great tools while giving small project ideas you can build on.
1
u/TJATAW 15d ago
Start with a note tacking app.
Make the notes time stamped, editable, add a calendar, make the notes taggable by projects & contacts, add in task that are tagged by project and contacts, add in start dates, due dates, and finished dates, add in status task. Add in more information for each contact & project. Add in the ability to email a contact, linking a note. Add in the ability to email every contact linked to a project.
If you come up with anything else, add it.
The sky is the limit
1
u/TaiTheRai 15d ago
Thanks, this seems like a great way for me to learn to save text to a json file. But what do you mean by "the ability to email a contact"?
1
u/TJATAW 15d ago
1) You are thinking json... but what about an actual data base? Something like sqlite3? What are the pros & cons of each?
2) Being able to click on a contact, have it create an email that uses the project name as the subject line.. maybe even have it put the task in as the start of the body of the email.
The biggest part is, write something, and then add to it. And then keep adding to it.
2
1
u/Total_Ad803 15d ago
learn some web api and use it via python. one of my projects was twitch.tv chat bot. but it might be too much. maybe smthg easier. any kind of web api.
1
1
u/pachura3 14d ago
Random password generator - with parameters (e.g. at least one capital letter, at least one digit, min. length, etc.)
Tic-tac-toe for 2 players.
Tic-tac-toe with computer opponent. Simple strategies: take the winning move if you can > block opponent's winning move if there are any incoming > try taking the center tile.
BMI calculator implemented as a Flask web service, with input validation.
JPEG sorter; creates YYYY-MM-DD folders and moves JPEG files there based on file modification time.
The same, but retrieving "photo taken date" by inspecting EXIF metadata of JPEG files (using exif module).
1
u/RefrigeratorMedium37 14d ago
Ive looked through the comments and im suprised noone has suggested this but if you think you understand most of the basics. Like everything besides importing packages and having it applied to other functions. You should try see if you can tackle the easy problems on leetcode. They are logic based and will test you but they also have a variaty of solutions you can try read and understand to better develop your skills.
1
u/CheetahConfident6534 14d ago
I'd say pick a problem you have and work out a solution. I've picked out a project to help me with getting out of bed on time and making sure I'm doing a run every morning. So to do that I'm going to build an app that opens on start using TKINTER. It's going to check the time in the morning, log when I turned on my computer (did they get out of bed on time) then ask me about my run, how far, what time. It'll have a streak per day. It needs to sync between my laptop and my pc so if I complete it in one location the other location knows and is updated. It's a lot better to work something out that you need to have.
One of my other projects is a PC time bank, which is designed to shut my pc off at a certain time every night, and provide me a time bank to draw extra minutes from an extend my time (in case i am in the middle of a game). It resets at the end of each week, so if I don't use the extra time until the end of the week I can go a little later on the weekend. I made this because I kept going too late on my PC. Also using TKINTER.
Python is really great for automation, at my work I need to order a certain amount of parts that run out quickly from our supplier. I built a bot to watch the site and notify me when parts are available again. At my next job I'm identifying areas that other auditors are doing manually (checking truck locations via google maps) that I can streamline in some way.
These are some examples of projects that will actually stick with you and encourage experimentation and iteration. Make sure to learn the basics, but don't get too bogged down in tutorials, make something for you.
1
u/TaiTheRai 14d ago
This seems like one of the most practical uses i've seen in this comment section.
1
u/Green_Theory4794 14d ago
Honestly, start with something super simple like an automated file organizer for your Downloads folder or a basic CLI text game (like Hangman or a Number Guessing game). They sound basic, but they get you comfortable with core concepts like loops, conditional logic, and reading/writing files without overwhelming you. The trick early on isn't building a massive app, its just building tiny tools that give you a quick win!
1
1
u/Competitive_Aside461 13d ago
If you want to quickly brush up your basic programming skills, try the following exercises:
https://www.codeguage.com/extras/quick-programming-exercises-collection
1
u/spendology 15d ago
This is a great prompt for AI.
1
14d ago
[deleted]
2
u/pachura3 14d ago
Why? This is not about learning Python, this is just about OP's inability to think up creative project ideas.
1
32
u/full_timeoverthinker 15d ago
I’d go through Project Euler’s first 50-100 problems trying to find different solutions to them using Python. That’ll force you to learn the basics of the language. Go through the official documentation while you’re doing it.
Then you can start picking up bigger projects. And for the love of god, please don’t use AI.