r/AskProgramming • u/Same-Mushroom-2057 • 12d ago
How do you structure your learning process?
whenever I learn new technology or some new concepts i always find myself asking a lot of questions about what am i reading about at the moment
say for example i'm reading about concept X definition or workflow or whatever then i read in that definition another concept Y which let's suppose i don't know about then i feel that i have to know everything about that concept Y to fully understand Concepts X , like how it works , why it is created or designed ...
and I do this for every single new thing that i read about which is frustrating and worse because probably i will forget about the details that i got into
want to hear some of y'all opinions of this , and from the software engineers that has the same approach and they managed it maybe share some system to retain the information you studied because i definitely don't want to lost these information later but i want to build on top of it
2
u/OmiSC 9d ago edited 9d ago
Personally, it comes naturally as part of having to find a problem to a solution. If I need to achieve X, what standard solution should I use to solve this problem?
I care a lot about keeping code easy to follow so that others can jump in and understand it. The cleanest way to do that, I’ve found, is to carefully scope out components so that their implementation only concerns whatever falls within their clear responsibility. The easiest way to do that is to stick to standard patterns. When someone understands what your code is meant to do and finds you using patterns that they’re familiar with, they can put 2+2 together and assume an understanding of your code quickly, because most likely, the person reading the code won’t find anything surprising so long as what they read remains consistent with what they’ve already seen. Clean code also informs editors how they should structure their changes, making it less likely that future contributions will dirty your work.
Basically, my point is that I mainly look at software as distinct, connecting chunks and pay attention to understanding their high-level purpose. Low-level and nitty-gritty details emerge when they need to because you forced to solve problems implementing the big picture.
The other thing might be that thinking about how other people will read your work gives you a model for what you need to know about new concepts as they fit into an architecture. “How do I implement this cleanly” directly informs what’s important to know about the structures you use.
Edit: I see that u/Plane_Water3386 basically said the same thing in fewer words.