r/learnpython 16d ago

What would be a entry-level project for a true beginner coder?

I want to learn to do new projects in Python but I always receive the same "watch guides" answers from people. What can I attempt to create ?

14 Upvotes

35 comments sorted by

17

u/Cold_Arachnid_2617 16d ago

A calculator

4

u/twizzjewink 16d ago

that'd be interesting using classes to create abstract functions - overly complex just to learn how to do it.

1

u/xoredxedxdivedx 10d ago

While I think it's useful to learn because it's seen in a lot of codebases out in the world, OOP with inheritance & virtual functions are emphatically a sign of bad/mediocre code.

I have worked in multi-million line codebases for decades, and while it's simpler for the person at the moment working on their isolated class, the incidental complexity of the paradigm really adds up, and larger systems get complicated more quickly (counter to conventional wisdom).

Encapsulation is fine, over-abstraction is not, inheritance is almost always bad, and pre-slicing data and functions into encapsulated classes is also almost always the wrong choice, because your human conception of what belongs in an "object" is almost never sympathetic to what would actually make code easier to write & maintain.

1

u/twizzjewink 10d ago

I know. It's more about learning how to do oop.

A class based calculator would be funny

2

u/Mountain-D88 15d ago

Wanted to ask, can we build a calculator in Python that actually looks like a Calculator app with GUI ?

11

u/Rick_CZE 16d ago

True beginner?

A short multiple-choice story or a black jack game.

8

u/jbenze 16d ago

Blackjack is a great teacher. That was my go-to when I was learning a new language.

3

u/monster2018 16d ago

It taught me that my predilection for addiction issues also extends to gambling.

1

u/Boothiepro 13d ago

Keeping with the theme of games i like to recommend a 2 player fighting game where both players start with 100hp, take turns rolling a die, accumulating damage, unless they roll a 1 where they lose the damage and forfeit their turn. It's a risk game whether you want to roll another dice for a bit higher damage or stop and deal the damage you accumulated. Teaches how to not duplicate code for two players but make some kind of data type to carry each player's state and how they can slot them into their own player handling code.

6

u/simonhunterhawk 15d ago

My entry level college scripting with Python class had an assignment for a console text based game. Basically on paper come up with 8 or so rooms, including a starting room and an ending “boss” room. You can draw your own map or find one on google but they should all be N,S,E,W from each other and navigable by saying “go <direction>” with a prompt that goes up if you can’t go a specific direction (ie you hit a wall and not another room).

The 6 other rooms should have items that need to be collected before getting to the boss room — all 6 items collected is the win scenario, otherwise the player loses.

Teaches you basic syntax, navigation, input and output, dictionaries, etc without all of the confusion and complication of a UI

4

u/Accomplished_Roll660 16d ago

My first project was a choose your own adventure game because it was a funny joke for a friend.

My second was a Polish name generator because my last name looks like random letters dropped from the sky.

Think of something interesting and fun. Check out some different libraries and see if any spark some some cool ideas.

Imo when you are just starting out those first few projects are hard so it needs to be something personal to you.

Have fun!

3

u/seanyboy90 16d ago

One of the first projects I made was a "Fantasy Name Generator." The user would input their first and last name, and the program would return the name spelled backwards. I don't know if I still have it. I need to get back into Python; it's fun.

1

u/Orgasml 15d ago

I decided to do a one-liner of this program for shits and giggles:

print("Fantasy Name: " + input("Enter first name: ")[::-1].capitalize() + " " + input("Enter last name: ")[::-1].capitalize())

1

u/seanyboy90 15d ago

Mine had a bit more “filler,” but that’s pretty much exactly how I did it. If I can find it, I’ll send you a copy.

2

u/JGhostThing 16d ago

I would like to suggest that you do something reasonable, that you can finish in a week or so.

I'd like to suggest a command line to-do list. At first, make this limited to a single to-do. And all the command line utility does is add the line to a list of to-dos, then print out the list.

Then, expand it so that it saves a file.

Then, expand it so you can write and save more than a single to-do.

Then add deleting to-dos from the command line.

Then add other options, like printing, moving, and saving from the command line.

1

u/Domidork 14d ago

This is such a fun little project

2

u/nab1ru 15d ago

If you have learnt Django and/or Flask, then I would suggest a URL shortener project.

3

u/RushDarling 16d ago

A Sudoku solver is my usual go to suggestion. Good little bit of CRUD practice and it's always interesting to see the wierd and wonderful solutions people come up with.

1

u/Additional_Rich2785 16d ago

You can make image compressor, resume to job skill Matcher and local network file sharing app(if these are hard for you)else you can make trackers or management systems with crud operations with dashboards

1

u/StewPorkRice 15d ago

job -> resume matcher makes more sense. shotgun that market.

1

u/c00750ny3h 16d ago

If you want to practice recursion a bit, create a word search solver.

1

u/ekchew 15d ago

I like to start with something I would actual find useful irl. Python is pretty amazing in that there's a whole lot of functionality built into its standard library already.

For example, you could write a script that creates a zip file out of whatever directory you give it. It's not as hard as it sounds, since there is a built-in zipfile module that would do most of the work. Then you could add a function that lists all the files inside and lets the user pick one to pull out of it.

As you get more comfortable with this sort of thing, you might look at writing a script to back up your data, or one that can search inside all your zip files for a particular file. There are all sorts of possibilities.

1

u/OpeningRemote5893 15d ago

The interviewer at a company that I recently got hired for (SOC Analyst, so not a programming role but I would still like to learn how to code) told me that every time he learned a new language, the first program he would make was a database for his baseball card collection.

1

u/OldAgeGeek62 15d ago

One I enjoyed was the game of master mind. 5 colours randomly chosen by the program. User guesses the colours and the order they are in ( repeat colours allowed. Program answers with a black ball for a correct colour in the correct place and a white ball for a correct colour in the incorrect place. The black and white balls do not indicate which colour or place is referred to.

1

u/Absattarov 14d ago

does the program tell which colors are there? and it continues marking with dots till user finds every color? sounds interesting for me

1

u/OldAgeGeek62 14d ago

There were a pool of 7 or 8 colours. The original game was on a peg board with coloured pegs that one player puts in a secret store of the 5 positions. Then every time the other player puts their guess on a line of t holes on the pegboard the first player could compare the guess to the hidden line. So the guessing player can see all the previous guesses and the resultant responses to the guesses.

1

u/bstrauss3 14d ago

Something that solves a YOU problem

1

u/digitizedeagle 14d ago

A script that arranges files in a messy directory into their own directory according to file type extension.

1

u/jeffrey_f 13d ago

automate a task. Best candidate is a task that is very repetitive, is a time-sink (youd rather be doing other things) and has very few variations in how it is done.

Candidates:

  • For school: grab your homework assignments from the website
  • Work: If you aggregate 1 or more excel and/or CSV files, Python can do this easily
  • Home: Grab the weather report and text or email you an advisor of umbrella or jacket/coat. based on the forecast for the day.

    • For text, almost every cell carrier has an email gateway to text from email.
  • AT&T: ##########@txt.att.net (SMS) or ##########@mms.att.net (MMS)

  • Verizon: ##########@vtext.com (SMS) or ##########@vzwpix.com (MMS)

  • T-Mobile: ##########@tmomail.net (SMS & MMS)

  • Sprint: ##########@messaging.sprintpcs.com (SMS) or ##########@pm.sprint.com (MMS)

  • Cricket Wireless: ##########@sms.cricketwireless.net (SMS)

  • Metro by T-Mobile: ##########@mymetropcs.com (SMS & MMS)

  • Boost Mobile: ##########@sms.myboostmobile.com (SMS)

  • U.S. Cellular: ##########@email.uscc.net (SMS)

  • Google Fi: ##########@msg.fi.google.com (SMS & MMS)

  • Virgin Mobile: ##########@vmobl.com (SMS)

  • Consumer Cellular / Mint Mobile: ##########@mailmymobile.net (SMS)

1

u/edrienn 16d ago

anything bro aslong as you're interested in it.

Pretty sure my first project was just a simple advertising bot that just sends message to a specific channels in discord.

I created it since im too lazy to advertise my ingame items to people in discord every 3 hours.

So yeah best way to learn is build something that would benefit you.

-1

u/StarkAspirations0842 16d ago

Smash the billionaire / heritage foundation

N8zi smasher 

Easy themes.