4 ms·
I do a form of this when I want to learn a new codebase. I force myself to write out on paper every class/datamember/method declaration in the file and give a o
by porknubbins 4y ago
I do a form of this when I want to learn a new codebase. I force myself to write out on paper every class/datamember/method declaration in the file and give a one line summary of what I think it does, as well as I can from the code itself. I am often completely wrong about what the function does but still get huge benefits in understanding the scope of the whole thing.
- lioeters 4y agoWhen I'm learning a new programming language, I force myself to type in lots of example code. I've found that it helps to drill in new syntax and way of thinking on some sub/unconscious level, maybe even physical - like muscle memory of fingers. I'm way too lazy to write anything by hand though.
- porknubbins 4y agoI just find that paper slows my thinking process enough that I am forced to focus on the details. When I have a keyboard in front of me my brain is in production mode and just wants to get stuff done not stop and reflect. It may have to do with growing up without laptops in school though.
- raffraffraff 4y agoThere's probably something in all of these methods but everybody is different. I don't know if actual pen and paper is required, perhaps typing is just as good. The benefit of typing is that the data is preserved in a useful format. If I write it out simply to learn it, what do I do with the paper? Crumple it up and throw it out? My process is to open about 20 browser tabs on a subject and cull them off one by one as I create flashcards from the information (process it, write bite-sized chunks in my own words). I learn via flashcards for about 15 minutes per day for a while. Nothing strenuous. That cements the 10,000ft view into my head before trying trying the hands-on stuff, so that I don't give up out of frustration. From there I try to use the information for real.
- suprjami 4y agoThis is one of the tips given in Zed Shaw's "Learn C The Hard Way". I've also found it invaluable, and make my mentees do the same thing.
- more-coffee 4y agoI have done this too for familiarizing with large/complex codebases (i.e. for a C++ game engine). Afterwards I usually felt like it was a waste of time (and paper) as I didn't reach back to those notes often. But that's because they had already served their purpose.
- drivers99 4y agoI recently ran across a “How to Self-Study Math” video[1] which mentions the same idea, that you can throw out the paper after. I think I’d want to keep them. [1] https://youtu.be/fb_v5Bc8PSk https://youtu.be/fb_v5Bc8PSk actual study method starting at 4:04. What to do with the papers around 6:16
- willjp 4y agoThis is brilliant, I might try this at work.