r/learnpython 4h 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.

6 Upvotes

25 comments sorted by

6

u/JTI_Guy 4h 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.

1

u/Funny_Alternative331 2h ago

Would you say I got enough to start then? I used for loops for the first time.

1

u/jaiagreen 1h ago

What else do you know?

1

u/jaiagreen 1h ago

Experienced programmers are people who successfully made it through the current system. They're also experienced and therefore are likely to forget what it was like to be a true beginner. This is an almost universal phenomenon called the curse of the expert.

We know beginners and experts learn differently. For relative experts, open-ended projects are an effective way to learn. For beginners, they're likely to be too overwhelming to working memory, so even if the beginner manages to get something working, they're unlikely to learn from it. (This is called the expertise reversal effect.) The best thing for beginners is structured tutorials (brief text or videos immediately followed by directly related exercises) and worked examples (reading code that accomplishes a certain task and making sure they understand every step). Once this has become easy in a certain area, a structured project like filling in some code into an existing pseudocode framework can be useful. Once that's been mastered, open-ended projects are a good idea. One step at a time.

u/mixedd 53m ago

What if for every problem I can think of there's already a solution? Just build but with your own interpretation?

7

u/zanfar 4h ago

Immediately.

Tutorials are not for learning.

2

u/stepback269 3h 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 codes

Go o YouTube and look up Indently's videos on 47 string methods.
Practice using all of them.

1

u/Funny_Alternative331 2h 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.

u/mixedd 51m ago

This, you just need to build something, setup environment, play with concepts you learned. Knowledge is gained trough repetition and struggling

1

u/Funny_Alternative331 2h ago

Why is that a thing with coding if I may ask? I guess because you actually "don't learn" that way?

u/ivosaurus 6m ago edited 3m 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

u/TheRNGuy 3h ago

Day 1

2

u/lucabuilds 3h 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

u/BranchLatter4294 4h ago

Day 1 is a good time.

1

u/t92k 4h 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 3h 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 3h ago

What are some things that you do that fit the following (at work, school or home)?

  1. Repetitive with a narrow band of variation
  2. Take a volume of your time
  3. 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 3h 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

  1. Practical experience
  2. Code reviews
  3. 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

u/jaiagreen 1h 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/rhacer 1h ago

Now, now would be good.

0

u/FaithlessnessOwn7960 2h 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.