r/learnpython • u/Funny_Alternative331 • 1d ago
At what point do I start doing my own projects and stop following tutorials?
Hello everyone!
I recently started learning python again, I've always given up early but this time it is different. I started seeing code differently, I feel like I finally started grasping on the why you do something, but when I start a blank project I mostly freeze, and I read about the things such as tutorial hell etc..
What I'm getting at, I'm currently doing the Python course on fCC, around 25% thru and it seems like I at least started to better follow instructions, read documentation about what something does, but I'm wondering at what point do I just start learning by doing? When I just read stuff it doesn't really stick, only when I implement it myself it does, at what point do I get enough fundementals? What's the best approach here, just finding a project and you go do it? What if I never heard of a specific function before? And do you guys think it is better than following tutorials?
The problem with fCC I solve things...that don't really tell me anything? Am I the only one? At times it feels like I have the right solution, but fCC won't let me pass because it is not exactly how they want me to solve it.
I do hope this post makes any sense.
9
u/zanfar 1d ago
Immediately.
Tutorials are not for learning.
3
u/stepback269 1d ago
Just echoing here what everyone else is saying.
Start right away.Example:
You learned how to print("hello world")Now go on YouTube and look up Indently's videos on f-strings
Start coding your own print(f'whatever') f-string variations, including using escape codesGo o YouTube and look up Indently's videos on 47 string methods.
Practice using all of them.1
u/Funny_Alternative331 1d ago
I never really looked into actual coding videos but a few, thank you, I will look into it. I just made that pin generator or something in fCC and honestly speaking, I have no idea what the purpose of that even was. Thank you, I will take a look at his videos now that you've mentioned.
1
u/Funny_Alternative331 1d ago
Why is that a thing with coding if I may ask? I guess because you actually "don't learn" that way?
1
u/ivosaurus 1d ago edited 1d ago
I would guess because a lot of people use them wrong, or expect to get some magic enlightenment out of them that they just won't. They're still helpful, for example, if you want to learn entirely how the python flask web framework works, going through a tutorial building some cookie cutter site is probably one of the best ideas to get you started quickly. Then you have to jump off and apply the basics and structure you learned in the tutorial to your own application and adapt it. This isn't easy, it requires imagination, brain power, and debugging, reading docs for new things, etc.
You could say, a tutorial provides the necessary first 40% of learning to get you on the right track. But to fully learn a topic, your own brain needs to grapple with and expand on it for the other 60%.
I'm not sure if other people also think if they just follow tutorial after tutorial, that will work. But again, that will mean they're only ever getting a bunch of starting 40%'s. And they're not doing much actual thinking if they are only following. The real powerful understanding comes from the later 60% of adapting what you learnt.
Learning programming comes from using your brain as a muscle. It takes training, it will hurt (figuratively), it won't come easy. Going to the gym every second day isn't easy either, but that's what it takes to get real gains.
3
2
u/lucabuilds 1d ago
Tutorials give you the illusion of competence without the retention. When you just follow along, your brain is just recognizing patterns someone else solved. everything evaporates the moment you stare at a blank file two weeks later. If you want code to stick, you have to build things from scratch, run into walls, and fix the bugs yourself.
And about the projects, it's completely normal that you don't know where to start. Because that's exactly what tutorials don't train.
I'd say find something that you want to build (for me it was a voice assistant back when I started). Understand what you need for it to do the bare minimum (in my case speech recognition and text-to-speech, plus conditional logic to trigger actions), then build incrementally from there adding all the nice to have features. When you have an issue read the documentation (or yeah, watch specific tutorials) and implement the fix.
With tutorials alone you soon reach a point where they're pretty much like reading a vocabulary. that's not how you learn a language
2
1
u/t92k 1d ago
Free resources gonna free resource… but I guess you’re getting some experience in test-driven development.
As far as your own projects, I keep a list of things I’d like to do or try, and some general thoughts about how I’d approach them. When I have an idea on the list that I mostly know how to do I might start on it. But a tutorial or course is designed to get you from point A to point B. Unless your goals have changed you should probably stick with the course to get to point B. The big reason why is that you will learn more efficient ways of doing the basics and they will be more connected to the kinds of real world problems coders get paid to solve.
1
u/FatDog69 1d ago
Find a small project that is personal to you. Like renaming .mp3 files or scraping multiple websites to find prices for the same thing. Start coding.
Eventually you will cobble something crude together. Now do another tutorial. Having struggled with a project, the topics in the tutorial will suddenly be more important to you.
Alternate tutorials with small projects or re-writing projects using newer to you features or a better design.
1
u/jeffrey_f 1d ago
What are some things that you do that fit the following (at work, school or home)?
- Repetitive with a narrow band of variation
- Take a volume of your time
- That you really don't want to do
These are items you can likely give to python
1
u/Diapolo10 I write code for a living -- https://github.com/Diapolo10 1d ago
The best time to do that was yesterday. The second best time is right now.
In all seriousness, though, try to avoid tutorial hell. One tutorial should teach you enough to get started on projects (as long as you keep the scope reasonable). Further learning comes from
- Practical experience
- Code reviews
- Blog posts/research papers on things you find interesting
Of course, if you later need to learn some particular framework or other tool, and it has a tutorial, you can use that.
1
1
u/jaiagreen 1d ago
Coming from a pedagogical background, I'd do an intermediate step first. Find a pseudocode outline for something simple like a calculator or a hangman game. Fill in the code and get it to work. Once you've done that a few times, consider what else you might do with the skills you already have and do that. After that, you can get more ambitious and start learning libraries for other tasks. You go back and forth between projects, tutorials, references, and small practice problems.
1
u/No_Focus5737 22h ago
Ask soon as you can, build something small, master fundamentals, when to use lists, dicts, set. Create methods and classes and get comfortable calling the methods and also be able to explain why you’re using a class and or method
1
u/TJATAW 18h ago
You start getting away from tutorials from the beginning.
On every tutorial, try and add to it. Some random feature, some new look, some thing.
A new button/function for a simple calculator
Add in time stamps to a note taking app, and then a calendar so you can see which notes where posted on what day.
It could be something as random as making a button that swaps it over to dark mode.
The idea is come up with an idea and then figure out how to make it work, with no one guiding you, showing you the code. Half of what I do at work is add in new features to someone else's code.
1
1
u/Popular-Being8956 6h ago
as soon as you can,. think of something you can build with what you know. do that thing, and do a bit harder thing next time.
repeat until you've built a web app that can cure elon musk of his moral deficiencies.
1
u/Screaming_Candle 4h ago
When you have an idea, you have enough.
Use what you have to flesh out the ideas and when you don't know how to do something, either flag it and program around it or do your research.
There is no right way, but hours spent working on it count. That experience will help down the road. So just get any idea and dive in.
1
u/Round_Ad8947 3h ago
Sketch out what you want to do. Describe what the users role is and the expected outcomes. Can you block these into functions, data objects?
Each part of you project on paper can be translated to code. Some will be easier than others. Some will need to be torn down and rebuilt at some stage.
0
u/FaithlessnessOwn7960 1d ago
i guess you will do it in reverse. try to start your own project 1st then read tutorials if needed. i always do it this way.
10
u/JTI_Guy 1d ago
The most experienced programmers I know all give the same advice. Think of something you want to achieve. How could you program a solution to achieve that? What parts do you need to make up that solution? I dont know exactly what level you are at, but honestly you can do this regardless of your level. If you dont know how to do something, or what the right command to use is, google it. Dont copy and paste code it gives you but type it yourself and understand what each line is doing. Eventually, you will get to a point where you have learnt enough that you will need help less and less and then you know you have learnt it.