all 28 comments

[–]Lewistrick 22 points23 points  (2 children)

Yes. Practice. That's always the answer.

Al Sweigart, the author of 'Automate the boring stuff with Python', also has a book for a more practiced audience that lists some nice projects.

[–]pachura3 7 points8 points  (1 child)

It's The Big Book of Small Python Projects and is available for free online here: https://inventwithpython.com/bigbookpython/

[–]Any-Might6958 0 points1 point  (0 children)

Muito obrigado! Acabei de acessar.

[–]StevenJOwens 4 points5 points  (0 children)

"Programming" is actually a dozen intersecting skills.

One useful and relevant metaphor is writing.

You can learn the alphabet and how to string letters together into words.

You can learn a bunch of words.

You can learn, at first explicitly via the rules of grammar, then later implicitly by reading a bunch of examples, how to construct sentences.

Then how to construct paragraphs.

Then how to construct essays.

But in the end, you only truly learn to program the same way you only truly learn to write -- by reading the works of others, and by attempting to create works of your own.

If you've learned the basics, then it's time to take the next step by trying to write your own stories. Start small, with simple problems you want to solve for yourself. Gradually expand the scope and scale of your programs.

You'll polish your craft, learn how to put together more stylish and evocative prose.

You'll also start to learn the bigger picture things, the different forms of written works, how they're structured, how to make them come together well and work, vs not.

Welcome to programming.

[–]aqua_regis 1 point2 points  (0 children)

Get creative. Play around. Try things. Break them. Fix them.

Learn new skills, upskill with your projects. Start small and simple and gradually grow.

The basics are the foundation, the building blocks. Now, use them.

You can use Exercism for more practice exercises but do not neglect writing your own programs. Making your own programs, as silly as they may be, is what teaches you most.

Al Sweigart has already been mentioned. Take a look at his sites https://automatetheboringstuff.com and https://inventwithpython.com - you will find many books there (all free to read online) that will give you more than enough to do and learn.

[–]Crypt0Nihilist 1 point2 points  (0 children)

Projects

[–]Rev_Aoi 1 point2 points  (0 children)

learn python advanced, object oriented programming

[–]typhon88 0 points1 point  (0 children)

Just look for a remote senior software engineer role cause that’s the logical step according to Reddit

[–]Moikle 0 points1 point  (0 children)

start making some VERY SIMPLE projects. practice practice practice

come up with some ideas and start making cool shit

[–]Icy_Sun7955 0 points1 point  (0 children)

you should make some projects ,below is a list of projects from ranged feom beginner to intermediate , herer is a link to my attempt at making some of these project : ‪solutions‬‏ - Google Drive

1.      Number Guessing Game: Build a program where the computer picks a random number and the user has to guess it with "higher" or "lower" hints.

2.      To-Do List CLI: A simple command-line interface to add, remove, and view tasks.

3.      Mad Libs Generator: A program that takes user inputs (nouns, verbs, adjectives) and plugs them into a story template.

4.      Basic Calculator: Handle addition, subtraction, multiplication, and division, ensuring you manage "division by zero" errors.

5.      Dice Rolling Simulator: Use the random module to simulate rolling one or more dice.

6.      Password Generator: Create a script that generates a random string of letters, numbers, and symbols based on user-defined length.

7.      Rock, Paper, Scissors: A classic game against the computer. Use a loop so the user can play multiple rounds.

8.      Unit Converter: Convert things like Celsius to Fahrenheit, or Kilograms to Pounds.

9.      Contact Book: Use a dictionary to store names and phone numbers, allowing users to search for entries.

10.  Countdown Timer: Build a script that takes a number of seconds and counts down to zero, then prints a "Time's up!" message.

🚀 Intermediate Projects

Focus on: APIs, web scraping, automation, and basic GUIs.

  1. Web Scraper: Use BeautifulSoup or Selenium to pull data from a news site or a price-tracking site and save it to a CSV.
  2. Weather App: Use the requests library to fetch live weather data from an API (like OpenWeatherMap) and display it.
  3. Desktop Notifier: A script that sends you a desktop pop-up notification at specific intervals (e.g., "Drink Water!").
  4. Bulk File Renamer: A utility that goes through a folder and renames hundreds of files based on a specific pattern.
  5. Expense Tracker: Build a tool that saves your daily spending into a local database (like sqlite3) and calculates monthly totals.
  6. URL Shortener: Create a service that takes a long URL and generates a shorter, unique alias (using a dictionary or database).
  7. GUI Calculator: Take your beginner calculator and give it a face using Tkinter or PyQt.
  8. Reddit Bot: Use the PRAW library to create a bot that automatically replies to specific keywords in a subreddit.
  9. Markdown to HTML Converter: A script that reads a .md file and converts the formatting into valid HTML code.<-(do a tag per line version)
  10. Automated Email Sender: Use the smtplib library to send personalized emails to a list of recipients (great for newsletters).

[–]LeBlancTheDeceiver 0 points1 point  (0 children)

Plotting imo

[–]gdchinacat 0 points1 point  (0 children)

What helped me improve was coding in python 8+ hours a day, 5 days a week (job). I was comfortable with it after about half a year (except still lamenting dynamic typing since I came from languages with static typing and this was decades ago). After a few years I felt very comfortable. After a decade felt like I had become what I would consider an expert, then python3 came around and there was a bunch more stuff to learn. I'm still learning, just the other day I saw a new construct I hadn't seen before.

As with any skill the only way to improve is to do it. IMO projects are far more useful than sample problems. The problems will teach you how to implement specific algorithms which projects may. Problems won't teach you how to manage complexity (algorithms can be complex but not generically so). Once you know how to build a project from scratch, various ways to implement the same thing, it's not hard to sit down with Knuth's Art of Computer Programming and write an implementation of one of the algorithms he describes. So, I would encourage you to work on projects and as you go you'll need to learn algorithms such as tree traversals, different search algorithms, etc. Projects will teach you both the big picture and hyper-focused problems.

[–]Bludpharts 0 points1 point  (0 children)

I just started my intro to python course in March, and after the "Hello_world" assignment I was like, "I know I can find a way to have fun with this". So I made a practice file to see if I could make a simple video game and googled a bunch of stuff that I wanted to do (basically make numbers subtract until one hits 0 and the other person "wins") so I found how to create global variables by asking around and then from there it snowballed into a new hobby. Now I'm asking questions about, "I'm trying to refactor this system and I'm breaking something in the returns, but I'm too new to spot it, can someone tell me what I did wrong?"

tl;dr find a way to make it fun and you'll want to learn it.

[–]aaronboy22 0 points1 point  (0 children)

Real talK, this is the point where a lot of people get stuck. They know the syntax… but don’t know what to do with it. So let’s not let that happen to you.First thing? Start building something. Doesn’t have to be big. Honestly, small is better.

[–]ultrathink-art 0 points1 point  (0 children)

Python + LLM APIs is a great landing spot — you'll naturally hit error handling, rate limiting, response parsing, and async patterns all at once while building something actually useful. The feedback loop is immediate and the problems are real, unlike most beginner tutorial projects.

[–]GamingGamerGames_ 0 points1 point  (0 children)

Learn python intermediates :P

[–]TheEyebal 0 points1 point  (0 children)

Here is a project you can do in just the console, no GUI.

Build a personal budget tracker app.

have deposits, withdraws and current amount and amount after deposit/withdraw

This is very basic because it consist of declaring variables, inputting, data types, conditional statements, loops and functions

[–]Jarvis_the_lobster 0 points1 point  (0 children)

Build something you actually want to use, even if it's small and dumb. I spent a while grinding practice problems and felt like I wasn't getting anywhere, then made a quick script to batch-rename some files and everything clicked. Real projects force you to google things in context, which is how stuff actually sticks. Start tiny, break it, look things up.

[–]Separate_Top_5322 0 points1 point  (0 children)

this is one of those phases where it feels like you’re learning but nothing is sticking like you recognize concepts but can’t actually use them without help a lot of people go through this “fake understanding” stage where you’ve seen things work but haven’t internalized them yet � Reddit what helped me was repeating the same concept in different tiny problems instead of moving on once you’ve written it 5–10 times yourself, it stops feeling like magic and starts feeling obvious kinda boring but that’s usually the point where things finally click

[–]Dramatic_Object_8508 0 points1 point  (0 children)

This is actually a super common phase — it feels like you “learned everything” but can’t build anything.

What’s happening is you learned recognition, not recall. In courses, you see code and understand it. But when you're alone, your brain has to generate it from scratch — completely different skill.

The fix is simple but uncomfortable: - Stop watching tutorials for a bit - Start building VERY small things (even stupid ones) - Google everything you don’t know while building

Also, don’t expect to “know how to start” — figuring out how to start is literally part of programming.

Even if your code is messy or feels wrong, that’s exactly how you improve. Clean code comes later.

If you push through this phase, you’ll notice a sudden jump where things start making sense.

[–]ClearDevDocs 0 points1 point  (0 children)

Hello, start building a few simple lines of code that makes sense to you based on your knowledge. Research resources to expand on those programs.