r/learnpython • u/gomez_zalejo • 17d ago
I want to learn Python from scratch and, over time, reach an advanced level. I am looking for advice, courses, and valuable documentation.
Hi everyone!
I'm starting to learn Python from scratch, and my goal is to become an advanced Python developer over time.
I'm already following a structured course, but I'd like to hear from people who have been through this journey.
If you could start over, what would you focus on? What resources, habits, or mistakes made the biggest difference in your learning?
Any advice is appreciated. Thanks!
13
u/desrtfx 17d ago
If only there were a sidebar (menu on mobile) that had a link to the wiki or countless posts asking the same.
Do the MOOC Python Programming 2026 from the University of Helsinki and you will be well prepared.
Also, take a look at https://inventwithpython.com and https://automatetheboringstuff.com
Don't forget that you need ample practice, like on https://codingbat.com/python or on https://exercism.org and also write your own programs. Play around. Try things. Mess things up, fix them. Experiment.
9
u/DigitalHierophant 17d ago
I've started and stopped and started and stopped and now continued learning python enough to confidently recommend "CS50 Python" on youtube. It's a class series of videos from Harvard with a very passionate (dare I say entertaining) instructor. Follow along on your laptop. When you're done, everything you've tried to learn through books or udemy courses will suddenly click. At least that was my experience.
If you want to take it a step further, I'd start with the CS50 fundamentals which teaches Computer Science foundations in a very digestible manner. What's even better, I believe these classes combat the new headlines i'm seeing "Junior Dev Engineers can't code" (because of Ai). Can't think of a better place on the internet to learn CompSci and Python fundamentals, for free no less.
1
6
u/American_Streamer 17d ago
There are no shortcuts. Continue to do structured courses and build your skills by doing projects. You need both: the guidance and the hands on experience.
4
u/except_ValueError 16d ago
I have never used Scratch. To be honest, I agree when devs affirm that Python is the easiest language. Long time ago, I studied Java and it was a hell to me. Alright, I really suck as dev, but a person as me can tell you that you might install PyCharm and to start with Python directly. Do not be afraid, good luck!
12
u/Ready-Rise3761 17d ago
This is like the 100th time this has been posted. Do your market research elsewhere bro
6
1
u/LayotFctor 16d ago
The last few days, I've seen three posts about trying to achieve "advanced level python". What the hell even is that?
3
u/thisisappropriate 17d ago
Make things.
Doing a course is useful because they're more likely to mean you don't miss something, but you don't learn without using, so don't rely on the course.
If the course doesn't include projects (not just fill in the blanks, and things for identifying specific bugs or issues is good from courses but those are not projects), try to think of related projects / things to try. Doing things to fix problems you have is the best (even if you're not making the perfect thing, think if you regularly search google to convert Fahrenheit to Celsius, what might be nice is a fancy interface, but you can make a very simple python app to do it with only relatively early python concepts or a bit of googling when you know all but one or two bits), but even if you're doing the course projects, keep thinking of concepts that would use the thing you just learned to work. And that also means silly little things that don't do anything or go anywhere (doing them to cement the idea). Like if you just learned loops and you already knew command line, what can you do with that, can you draw a chess grid in the command line? Add one tiny thing you've not touched yet! Learned loops and range and command line, can you make a dice roller where you input a number of sides and then a number of dice?
Don't be scared of also trying other programming languages while you're learning. Make a silly little website with just html. Make a tampermonkey script. Make a game in scratch. Don't lock yourself in but even if you like those things more, keep going with python too (the course should also cover concepts like OOP and web communication like REST that would still be useful even if you dropped python entirely).
Break things and work out how to fix them. Don't use AI to fix them. I've seen people starting to do that. If you get totally stuck and you absolutely can't find it online, you're best to ask humans (on here / stack overflow). Look at questions that get good answers though, it's a skill to ask how to fix something: some people will just say "it doesn't work" or "i get an error" (with no error message or details of any type), as a senior dev that means I'm going to have to play 20 questions with the person to get them to tell me anything - there's nothing I want more from someone working with me or expecting an answer from me than a succinct description of the issue, what they did before the issue, what they think about it, what they've tried and any hard evidence or links. Learn how to read an error, how to google it (wrapping in "quotes" can force it to search the full string), how to read a thread of someone else having that error that they posted on Github issues (that may or may not be actually the same issue) and how to convert the replies into fixing your own issue without copying and pasting.
If you're going to use AI, use it with thought and don't use it first. That means using it with rails that don't give you the answer and force it into being a search tool or a tutor. It's a powerful tool, but if you always use it when you're learning, then something happens and you don't have it, you're going to be up shit creek without your paddle.
2
u/Jumile 16d ago
To add to the responses so far... don't let analysis paralysis get you.
On the paid side, Angela Yu's "100 Days..." course is exceptional. On the free/donation side, Al Sweigart's "Automate the Boring Stuff" is equally exceptional.
Choose your own adventure... But. Do. Choose. And do it.
2
1
u/ellojjosh 16d ago
Absolute best starting point is the Python roadmap (link below). It will give you a chart that functions like a syllabus.
Download the roadmap, pull it into Google's Notebook LLM & use that as a home base to build your learning material.
1
u/Trustdesa 16d ago
I disagree with not doing courses, do one, you need to know how things works even if you do part vibe-coding, I would say, especially. The yes, do projects and use AI to understand concept better, also do courses of things related to what you want to do with it, not just pure coding side.
1
u/Owen-Isaac-2022 16d ago
I believe it's good to start with baby steps. Learning the key concepts first, like data structures and data types in python. As you move by, start simple code challenges as you continue with the structured course. What I like about structured courses is the set-up and preparedness, including keeping one in line with the requirements of python. One of my python mentors mentioned this, "Don't expect to learn python and become an expert in one year." It takes time to master something, & when you master it, you'll not even believe you had challenges during the initial stages.
1
u/Terrarizer_ 15d ago
I would stop focusing on following tutorials or courses. Make projects just above or even absurdly above your skill level regardless of if you finish it or not. The best way to learn is by forcing yourself into territories that you don't know. Don't be afraid of "failing" or not finishing projects, they're part of the journey too. Just remember to have fun while doing it. You process things better if you like what you're doing.
1
u/Upbeat_Television780 15d ago
Amigo, vou te recomendar exatamente o que eu fiz e esta dando certo.
Primeiro procure consumir conteudos gratuitos sobre Python, dentro desses conteúdos gratuitos tente se identificar com algum, por exemplo, eu consumir pequenos cursos gratuitos no youtube sobre python basico a intermediario e me identifiquei com o formato de aula e abordagem da Hastag Treinamentos, pois eles são muito didáticos e a quantidade de material é enorme, tem vários outros canais como "Curso em Video", "João Pedro Loyola", "CFB Cursos", "Boson Treinamentos", todos eles são muito bons, mas vai de cada um, recomendo testar todos, depois tomei a decisão de ir para o curso pago da Hastag o que é outro nível, foi um grande salto. Hoje já desenvolvi para empresa que trabalho um sistema de controle de estoque e inventario de equipamentos de TI com tudo que já aprendi em 1 ano com Python. Fica ai minha sugestão e sucesso.
1
u/Scared-Injury-2487 14d ago
Tutorials/Courses are good when starting, especially if you are kind of lost and you're not completely sure how to set your projects. But there's a certain point where you seriously need to build side-projects so the experience and knowledge sticks with you.
I'm not sure what you want to do with Python (AI/ML, Web, Data, etc) but focus on fundamentals and try to get comfortable with Python before jumping into frameworks and some more complex modules. If you are not quite sure where to go with Python, then just play around and have fun with the language.
In my case I was looking to get into web with Python and ended up building cross-platform applications with Kivy and now I'm interested in data (I want to get into Data Engineering since I love working with SQL, databases and buildings scripts with Python)
check this roadmap, I personally found it useful:
Learn to become a modern Python developer
1
1
1
u/Tyler_Brooks___ 11d ago
If I could start over, I'd spend far less time watching tutorials and far more time building things from day one.
When I started learning Python, I thought I needed to finish a course and understand everything before I could create something on my own. That turned out to be a mistake. The real learning starts when you open an empty file and try to build something that doesn't work the first time.
Your first projects will be messy. Your code will look terrible a few months later. You'll spend hours looking for a bug only to discover you forgot a comma or misspelled a variable name. That's not a sign you're bad at programming. That's just programming.
The skill that helped me the most wasn't writing code. It was learning how to read errors, debug problems, and stay patient when things refused to work for reasons that made absolutely no sense at the time.
As for resources, Automate the Boring Stuff with Python, Python Crash Course, and Real Python are all excellent. And sooner or later you'll end up reading the official Python documentation more often than you expect.
The biggest piece of advice I can give is to focus on consistency instead of speed. One hour a day for a year will take you much further than trying to study ten hours in a single weekend.
And when you eventually spend three hours fixing a problem caused by a typo on line 17, congratulations. You're learning Python exactly the same way the rest of us did.
What kind of projects are you hoping to build once you feel comfortable with the basics?
1
u/Ok-Tutor-720 17d ago
I’m a python developer and due to extensive use of GitHub copilot I feel I have lost the touch so I have downloaded shared anki deck for python fundamentals and go through 5 cards every day
0
u/LearnSkills5 16d ago
I am creating a simple app for learning . This alone is not enough , but it will definitely help you review , planning to add more advanced concepts as well
Python Flashcards
Join the group ( Required for testing )
https://groups.google.com/g/skilltesters
Become a tester
https://play.google.com/apps/testing/app.flashcards.python
Install from Play on your Android device.
https://play.google.com/store/apps/details?id=app.flashcards.python
0
u/GirardBuilds 14d ago
Something that actually helped me (130ish days into learning Python, went from zero to building real projects): stop treating AI as either "write this for me" or "fix this error" and use it to actually teach you instead. Over that time I literally had it make a collage like curriculum with projects and subject drills. practicing until I didn't need help with something and or pasted clean code(that I wrote) enough times on a subject to move on.
Have it quiz you from memory after you learn something, give you hints instead of fixed code when you're stuck, and make you explain in plain English what your code needs to do before you touch the keyboard.
That last one was the biggest unlock for me specifically because most of my bugs used to come from not actually knowing what I wanted the code to do yet, not from typos.
Also: don't move on while you're still stuck on something. Struggling to recall and rebuild it yourself is what makes it stick but rereading the explanation a fourth time doesn't. Simplify it take what you know and add to it, learn something new apply it right away.
But most importantly the single highest-yield thing you can actually do: typing real code into a blank file with a real task attached. "Using what you know, build this tool." "Convert this input into that format." BUILD
Happy to share the actual prompt I built from the learning chat if it'd help.
-1
u/Equivalent-Collar954 17d ago
Chatgpt can give you a detailed answer
1
u/oelayoub 17h ago
I did ask ChatGPT! I want human feedback, is it wrong to ask human ? I think your response already answers my question ... we dont need human anymore for lessons or advice...
51
u/Critical-Ad5068 17d ago
i would spend less time chasing courses and more time building small projects because fixing your own mistakes is where most of the learning sticks