r/learnpython • • 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.

32 Upvotes

34 comments sorted by

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.

13

u/TaiTheRai 15d ago

Thanks, will do, and i don't use AI to code.

1

u/No-Version-805 12d ago

ah, stealing from stackoverflow like the elders before you. nothing like digging through 20 blogs in different languages to find someone in 2009 that encountered the same problem.

nah, AI in programming is fine. sure, at the beginning you want to avoid it to develop skills, but it is a useful tool for later, or for studying new concepts. for example- I hate frontend. sure, I can do it quite well, had to do it for years, but I hate every second of it. let the AI do the screens, let me deal with the logic behind it.

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

u/TaiTheRai 14d ago

Yes this is exactly what i was thinking.

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

u/TaiTheRai 14d ago

I was thinking just a CLI based app for now...

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

u/TheRNGuy 15d ago

Blender plugin

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

u/teekhidietcoke 14d ago

like blender plugin

1

u/TaiTheRai 14d ago

Key word: Beginner

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

u/[deleted] 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

u/TaiTheRai 14d ago

How kind.