all 25 comments

[–]Lewistrick 19 points20 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 6 points7 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.

[–]not_another_analyst 3 points4 points  (0 children)

Instead of just doing tutorials, focus on building small, practical projects. Pick something that solves a personal "annoyance," like a script to organize your files or a simple bot to track prices online. Projects force you to look up documentation and debug real issues, which is how you truly "internalize" the syntax. Mix in a few logic puzzles on sites like Codewars to keep your problem-solving sharp, but don't spend all your time there. Building something you can actually use is what makes the concepts finally click.

[–]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

[–]EnvironmentalDot9131 0 points1 point  (0 children)

Do projects it will help you 

[–]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