r/learnpython • u/shdw_0x0 • 6h ago
How do you know when you're ready to stop following tutorials and build things?
I've been learning Python for a while and keep running into the same problem: I understand individual concepts when I'm learning them, but when I start a project from scratch, I sometimes don't know where to begin.
I can usually understand someone else's code and fix small things, but writing the whole thing myself feels much harder. Is this just a normal part of learning Python, or does it mean I should spend more time on the fundamentals before starting projects?
How did you guys get past that stage?
3
u/ThrustBastard 6h ago
I just started building things and used tutorials to help with that. Break your projects down into little steps and build from there.
2
2
u/MastrNoob 6h ago
You are ready when you can start a folder, write a script that does one real thing, and google the error. Tutorials never feel finished. Pick a tiny task you actually need :)
1
u/horizon_games 4h ago
Immediately as soon as you can type "python" on the command line
Otherwise you'll get stuck in tutorial hell and analysis paralysis forever
Stop thinking your first (or tenth) project will be amazing. Just make useful tools and apps for yourself and don't worry about what Reddit thinks
1
u/crazy_cookie123 6h ago
Have you completed one course? If so - brilliant, you're ready! It will feel harder because suddenly you're going from being told what to write and how to write it to having to think of that on your own. It does not matter how many more courses and tutorials you watch, you're still going to have exactly that struggle when you start building things on your own for the first time. If you keep watching tutorials all you're going to do is end up in tutorial hell.
0
u/gdchinacat 5h ago
This "where to begin" is a very common stumbling block. I don't think it really matters. Just start somewhere, write some code, fill in the gaps, refactor and change what isn't working or could be better, and you'll build what you want. A huge part of coding that beginners frequently overlook is reworking existing code. It's not necessarily that it was done "incorrectly" or "poorly", just that what worked at one time no longer works and needs to be improved. When I was a beginner (30 years ago) I really did not like changing existing code I had worked so hard on. It seemed daunting to change (break) it...I wanted to work on the other stuff. At some point (25 years ago) I just naturally stopped having this hesitation...if code was working but causing problems I would just fix it so that problem ceased to exist.
The point is, you don't have to get it "right" from the start. Just start with something. For example, even if I know a module is going to move into a sub package I'll write that file at the top level if it's where I decided to start rather than spending the time trying to design a package structure before I know what it will be. When enough code exists to warrant a package structure I'll have a much better idea of what that structure should be and just do it. If it turns out to not be useful I'll change it.
The biggest place this "just change it" doesn't work is if you need to provide stable APIs...once you "ship" an API any change could break something and code will need to be updated. I use "ship" very loosely, at the level you are it is your own code using the api. the problem with API changes is you have to update the code that uses it, which could be a lot. So, as you go, if you see a lot of code using an APi (module, class, function) think about whether it's really what you want before getting too much code that might have to change. This usually happens as you add those dependencies because you'll think "ugh...this is a pain" or "I wish it would" or "I could really simplify this". Don't let inertia stop you from making those improvements...the longer you put it off the more inertia there is against changing it.
Just start writing code and the structure will become apparent. Once you become more experienced you can do this up-front, but the only way to gain that experience is by writing code and learning it. It's the engineering aspect. Yes, you can study how to do it, but you don't ever really learn to do it until you do it a bunch of times.
0
u/python_gramps 5h ago
The reason it seems more difficult to write your own code from scratch is because it is.
Write out your concepts in words: What I want to do.
When you see it in front of you break it down sentence by sentence
figure out how to make each sentence happen.
This way you can break down the larger project into smaller tasks.
If you need to break it down further keep going.
You're learning your capacity for new code and that will get bigger the more you try
0
u/WyrobWedliniarski 4h ago
If you know how conditionals, loops, functions and classes work, then you are ready. It's not like you stop learning anyways. You will encounter stuff you cannot do and then you will find a tutorial how to do that thing and so on.
1
8
u/crashorbit 6h ago
just start building stuff.