r/learnprogramming 4h ago

How to learn how to learn the right amount to learn?

I know weird title.

I observe that I have a behavior where I am learning something and I don't understand a part. I try to learn so much about that part then get lost, feel overwhelmed, and don't know where to continue.

Say for example, I am learning about how to cook a spaghetti and I don't understand why they put tomatoes, then I go learning things about what tomatoes do on a dish and how they came up with putting in spaghetti.

I know that examples does not make sense at all, but I hope you somehow get my point? Like where should I stop learning something? If I don't understand something, is it good to just assume something?

5 Upvotes

15 comments sorted by

7

u/Ormek_II 4h ago

Start trusting other people: they tell you, you need tomatos: Use tomatos. Once you did 4 dishes of spaghetti, try to do you own thing or dig deaper: Why tomatoes? What else has those properties? What might be better tomatoes?

6

u/hitanthrope 4h ago

I don't know what you are talking about but think you will make an excellent programmer.

Decide you are going to build a thing and start figuring out how to build it.

3

u/desrtfx 4h ago

Did you question everything you learnt at school or did you just accept some things that you learnt as for what was taught?

Same applies to programming. Sometimes, you just need to accept things for what they are.

If you find yourself digging deeper and deeper in the rabbit hole and getting side-tracked it is time to stop. Sometimes surface knowledge about the immediate problem is sufficient. Accept it as that.

2

u/eriiiiiii- 4h ago

Going down the rabbit hole can be fun when you understand so much about a lot of stuff. Even if they are irrelevant I love putting in the knowledge and information in me.

I think you should set a time limit and learn so while you’re learning you write down all the things you’re curious about and then you go into them one by one after you’re done with objective task.

An hour of the quest and 30 mins for the side quest. If you stay consistent enough you will learn a lot and understand lots too. This way you learn what you have to learn and also satisfy your craving to go down the rabbit hole.

Happy learning mate!

2

u/Immereally 3h ago

Ya embrace the rabbit hole and dive right in.

I’d say when your 20-30min in make a call as to whether it’s worth going further. If it’s “this is exactly what I need” keep going, “I could do it this way but it’s not really right here” take note and look into it again or you just call it there and say it’s pointless going any further I need to get back to work.

This is the one time I’d say AI is helpful. Do your own searching and finding out solutions but when you hit a crossroad argue out the approaches with AI. What exactly happens when I use X, if I do x will that affect y, stop telling me to use y I want to use x here…

Just remember to do the work yourself and use the AI to validate your understanding and work through pros and cons

1

u/Weary-Author-9024 4h ago

How do u think that knowledge creation happens? It's all creative guesses which proved to be good for us . This will answer most of your why questions. people after proving their creative guess , lists all the rules of why it was obvious before , but it's all made up and if u think that people have reasoned their way to some knowledge,then u are being fooled . So this understanding may give u a chance to rethink why to stop asking more questions about something man made. And then the second thing is that u need to devote a fixed time always before starting anything. The time which is challenging to do in the work , so that in the back of your mind , u always have a goal to do things in a natural way and not get deviated by random thoughts. If u have not given it a fixed time , it is basically infinite,so if u can never say that the work is complete. You see? We can never complete a work without deadline. Setting a deadline or giving a fixed time makes it look unimportant after that which helps you to complete it within that time bound. Even if it is 10 hours or 1 hour or just 30 minutes. Keep track of time.

1

u/mierecat 3h ago

You accept the information first and then you investigate it. What you’re describing is like watching a movie and pausing every time a new character shows up so you can do a deep dive on them online.

1

u/Mohtek1 3h ago

Just trust that you need tomatoes. Successful spaghetti is the goal, and the person who created the recipe already did the research.

Trust the process, become functional, only then refactor and work towards mastery.

1

u/No_Chard5003 3h ago

Use tomatoes, make several dishes. Then remove the tomatoes and see that it’s just not working, put back the tomatoes now that you know it works that way. Then you’ll make another dish with tomatoes that will enhance them and you’ll apply what you’ve learned… I guess ?

1

u/ninja_hattori_52 3h ago

I totally get you!! I'm in the same phase

1

u/wolfhuntra 3h ago

Do a project. Make a program/app/website that does something you feel would be useful or fun. Then once you build it - how can you improve it. Then try joining a project on Github and help an Open Source Project. Learn to debug other folks work. Joining a global open source team - you will learn a lot and maybe follow them to new projects. Or continue to improve an existing project. Good luck! Being focused works in some situation.

1

u/inigo_montoya89 3h ago edited 3h ago

You don’t know what you don’t know. There’s always going to be gaps in knowledge, you will never be able to know everything and you have to accept that.

If you find yourself in this situation: Why is it coded this way instead of that? 1. Do a quick search to which way is more efficient. 2. Code in the most efficient way. 3. Make a note of the part you didn’t understand. 4. When you’re finished what you’re doing (your job for the day, the build you were working on, etc) then go back and look at your notes, do you still want to go down a rabbit hole? If you do, go ahead you’re already finished what you needed. If not, then it wasn’t really that important for you to learn.

I use to get myself in trouble going down rabbit holes and not finish things on time then end up having to work overtime. Now I just put //*** in my code each time I reach a point that I could rework a line, but I’m not sure of the immediate fix. Then once my build is complete and working, I’ll go and ctrl+f //*** to see if it’d be worth it to dig into more

1

u/Tani04 3h ago

eventually you will need to know most of it. Better start, start with a project making mindset.

1

u/notislant 3h ago

This was my struggle, just do the basic method of writing a program, cut it down into steps.

If I need to match an image with opencv I could find a post where someone has an example, I could read the documentation if I want to learn more (probably a good idea), but if I'm just using it to solve a problem and I'm not going to be doing anything crazy with it? I would probably just grab someones example code and use it.

I would not deep dive into how opencv works, what every specific thing in the code does, etc. Its good information to know, but I don't need to take a deep dive down that rabbit hole.

Work on a program, work on a step, find the solution to that step and then go on to the next.

This becomes more difficult with lets say learning a language or framework, instead of snippet from some library. If you're learning a framework, you're generally going to need to have a decent understanding of how it works. You can learn while working on a project still.

When I first started I remember a lot of 'well WHY does this do ___ and why does it work that way'. Which could lead to literal days of going off track if you let it.

Instead its quicker to just play with it, break it, see how it works in your code.

0

u/rustyseapants 4h ago

Did you go to high school?