How to learn a new programming concept?
Posted by zainulabdin100@reddit | learnprogramming | View on Reddit | 12 comments
I'm a beginner programmer, and I'm curious about how experienced developers learn new concepts.
For example, when you encounter something like recursion, OOP or even just a new function/library, what process do you follow to make sure you actually understand it?
I'm looking for a framework or checklist. How do you know you've gone from "I read the explanation" to "I can confidently use this in a real project"?
A few things I struggle with:
- Visualizing what is happening step-by-step.
- Can follow a tutorial but unable to implement things in a new scenario.
- Understanding the flow of inputs and outputs.
- Knowing whether I truly understand a concept or have just memorized an example.
- Deciding how deep to go when learning something new.
That last point is a big one for me. If I try to learn every concept in depth, I never make progress on actual projects. But if I only learn things superficially, I worry that I'm building on weak foundations.
How do you decide when a concept deserves a deep dive versus when it's enough to learn the basics and move on? What does your learning process look like?
OnYaBikeMike@reddit
For something non-trivial.(e.g Huffman coding, Forward Error Correction, Fast Fourier Transform...) the process usually it is :
reading about the problem
thinking about it
research how others have solved it
trying it out for.myself
failing, due to a lack of understanding
Then repeat a few times till I develop enough of an understanding that I no longer fail.
For anything of moderate difficulty it usually takes three times through this loop:
Fist.time to understand the problem
Second time to understand the solution
Third time to implement it properly
Sometimes you just got to keep trying till it clicks - and get enough sleep between attempts.
ParadiZe@reddit
pretty much this, repeated exposure and tolerance for being lost seems to be the key
Astronaut6735@reddit
Sleep/breaks are crucial. Your brain needs time to digest what you've fed it, usually when you're not doing anything that requires concentrated thinking. That's why the a-ha moments come in the shower, mowing the lawn, etc.
iMagZz@reddit
Using Python Tutor really helped me with certain areas of Python, like recursion, OOP and list handling. It also makes it much easier to figure out why your could throws errors, because you can sort of see every step along the way.
zainulabdin100@reddit (OP)
This is not the real question. It is which framework do someone follow to understand a new programming concept. Such that now you are 100% sure you know this and can solve problems related to it. Recursion and OOP were examples.
iMagZz@reddit
I get that, but there is not one answer for that in my opinion. It changes, and also changes depending on the topic or problem one tries to learn. I just wanted to point out one tool which I find incredibly useful for a lot of things.
JGhostThing@reddit
It took me several weeks to really understand recursion. This was in LISP (Lots of Irritating Little Parentheses), thank goodness. I later took this knowledge into more traditional languages such as C and Java.
Object oriented programming (OOP) took me only a couple of weeks to understand the syntax in Smalltalk, but it wasn't until I really started working professionally in Java that I understood *why* OOP was useful.
Now, when I come across a new concept, I can usually deal with it in two weeks (part time -- I'm retired and have lots of things to do) or less. Some things are more complex, like in rust's lifetime model. Most things are easy to learn, now. I was a professional for decades, mostly in Java, though there were C and C++ at times. The first program I was paid for, was a Latin tutorial (Latin Skills Program) which was a set of five programs written Tutor (a spaghetti code language) to be translated into Apple II BASIC.
Now, I'm 68 years old, and have seen many things in my career. I may not know a new language, but I can learn it quickly. New concepts cause more learning, but I've coded long enough that I've been there, done that, for almost all concepts.
DutyCompetitive1328@reddit
It’s actually using concepts in real projects that makes a concept click.
Practice, cause suddenly you understand how it works and why it’s used.
tiempo90@reddit
Honesty, it's 2026 - just get AI to do it.
SalamanderUnited9293@reddit
Well then he's not getting hired in this economy.
7YM3N@reddit
I mean the only way to know that you can use it is to use it. Try writing a minimal application or script that implements whatever you're trying to learn
AutoModerator@reddit
To all following commenters: please, do not bring up the old circlejerk jokes/memes about recursion ("Understanding recursion...", "This is recursion...", etc.). We've all heard them n+2 too many times.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.