How I remember what I learn
vasilishynkarenka.com
vasilishynkarenka.com
This matches my experience very closely. In fact, I find that programmers (and STEM people in general) tend to look down on remembering things since "you can just Google it".
However, after working with some very smart people I have a newfound respect for memory. The problem with "I'll just Google it when I need it" is that often great ideas and solutions are based on information that you remember, but you won't get any of those ideas or come up with those solutions if the building blocks aren't there. It's like trying to build a house with half the foundation missing. Remembering things allows you to build new theories and solutions to problems that you could never come up with if you didn't remember those things.
Not remembering what you can look up is the beginner's shortcut, not looking up what you can just remember is the advanced tactic, and is what gets you to fluency in any subject.
In reality, the things you tend to google every time you need it are precisely things you don't actually use enough to memorize. When you do memorize them, enough time elapses each time to where you forget.
My take is that there is value in putting in deliberate effort to remember the key takeaways from our readings or talks we've listened to (among other things), as the original comment pointed out. The blog post is then on how to go about doing it.
I think the trick is to take a problem and "see" the higher-level patterns in the solution rather than the specifics.
As you continue programming in a given language, you automatically memorize low-level things like syntax and idioms. That's not something that everyone needs or wants to practice explicitly with flashcards or whatever (that's not how I learn, anyway). But memorization of syntax is absolutely critical to achieve "fluency" in the programming language, just as in human language.
Imagine a monolingual English speaker learning German and scoffing at their classmates' attempts to internalize the grammar rules. You can Google or look all that stuff up in a few seconds! But having to pause and look up every conjugation or word ordering is exactly what prevents the learner from actually communicating clear ideas at a useful speed in their target language.
Java is especially good for that, though. You just add a point to a variable and choose what you want (out of 1000 methods).
I thought so too. Then I ended up with having to write a lot of tSQL. And even though I used them quite regularly, I always had to look up the syntax for things like MERGE, or PIVOT. So I made flashcards, and it has increased my productivity enormously. Not so much because looking up the syntaxes took particular much time, but it always interrupted my train of thoughts. And before I know the syntax by heart I always felt this slight resistance to use these constructs because I knew I had to look them up and would probably make some small mistake somewhere et c.
I'd be surprised if I met someone who saw themself in your comment.
Watch Jeopardy and ask yourself if any of the questions are particularly hard or complex to memorize. Perhaps that's not why you don't know them.
I've implemented bubblesort at least 10 times in uni. I remember a few of the sorting algorithms I had to impl, but I forget which one is bubblesort. It would take me 10 seconds to go "oh right, that one" if I ever need to see it. I haven't had to in the 15 years since uni. Remembering that bubblesort is algo A vs algo B without googling it the one time I need to know is worthless. Knowing higher level concepts of sorting and perf trade-offs, on the other hand, is not.
Having a set of trivia that you consider essential is itself trivia. As I could have my own arbitrary list of easily googleable essentials, like the wall socket voltage in every country in the world. No matter how handy I claim that knowledge is, it doesn't even pay its rent in the grey matter is takes up when you can just google it.
I still think problem solving with newly gained knowledge is the way to go for retaining things longterm, but if you aided that process with something like Anki for meaningful connected information, you'd certainly be better off compared to someone who just does the former
The most obvious conceptually is insertion or selection sort (depending on the person).
But that's something you wouldn't think about if you didn't know how bubble sort was implemented. Do you see how memorizing this can lead to creativity?
I suppose it is besides the point, but you shouldn't be reaching for a specific algorithm but rather using your language's library sort algorithm.
Creativity comes from knowing what’s possible. A good clear map is fantastic for creativity.
Google is for implementation. What’s the syntax for strpos in JS vs PHP? How do I leftpad in this project? Stuff like that.
You gain creativity points from knowing leftpad is a solved problem, not from memorizing its details for today’s particular case.
This is a really unfortunate outcome, as getting base facts and figures into your memory is actually hugely beneficial. There’s no other way to rapidly pick up a new spoken language, for example.
It's okay to memorize things - but I think if you teach the 'why of the equations' instead of just memorization of them - the memory would lock in with 'forced memorization'
I have a simple but great example of that: A decade of schooling and I could never remember the formula for volume of a sphere. And then, one day when I was bored at my part-time job, I pulled out a piece of paper and used what I'd just learned in calculus to derive it. It's stuck with me since, now that all the parts of the equation have meaning.
Early in the learning process you'll have to be able to remember the basic facts of a topic, as this is necessary to develop deep insight, but once learnt, deep insight doesn't depend on perfect recall of the particulars.
It's reasonable for an exam on language theory to expect a student to know that deterministic finite automata are represented as 5-tuples, but students learn about DFAs in order to develop understanding; little is lost if they later forget that particular detail. The ability to apply the concept is what's really valuable.
[0] https://cft.vanderbilt.edu/guides-sub-pages/blooms-taxonomy/
At university a lot of my friends would be able to regurgitate answers to questions, but if I tried to talk to them about the "why" behind a methodology they would basically respond with "uhh, I don't know I just do it like this".
I'm really interested in this. Could you please point me towards any reading about the efficacy of such individual attention and/or scaling it with tech?
The core problem with multiple choice and other trivial tests is that a person understanding the concept will find the correct answer, but people not understanding the concept (and just memorizing, guessing, cheating, ...) will also be able to find the correct answer. You have many false positives (and depending on test quality also false negatives).
The only real solution is a combination of complex problem solving settings and individual evaluation by a teacher or similar role. You have to find out what is going on inside the person's brain, why they chose this or that answer - essentially by talking to the person.
You'd need AGI to tech that.
A step in the right direction would be to abandon single-number scores and introduce more differentiated numbers for different properties of learning, knowledge and so on.
Even better would be assessment of individual learning progress instead of objective result, though this is a hard sell as long as there is a labor market. Employers will want to have an easy metric for comparison of different candidates. Objective scores produce perverse incentives: Say I'm bad at math (school grade E level) , but I am motivated to improve. I work my ass off trying to learn after school etc., and after 3 months I'll write another test. Now I get a D. Objectively still a bad result, almost guaranteed to demotivate me after months of hard work, despite the relative progress being substantial. A grade reflecting the relative progress would reward effort, which usually is what educational settings want to foster.
I've been trying to find literature about this, but am not sure where to look.
It's clear to me that the actually smart people don't need to recall someone else's clever solution, they just figure it out on their own from the observables.
You gotta be able to make connections. If you have to figure out everything from observables, you're gonna be very slow at anything that isn't truly uncharted territory compared to others.
If your memory is lacking, you won't be able to make the leap from "here's what I'm seeing right now, here's a vaguely similar pattern from that past, what does that suggest?"
That's where "just google it" breaks down too because if you don't know that the symptoms you're seeing are characteristic of a race condition, say, you won't know to google for "race condition"!
In my own career, I've spent the last 15 years working in finance technology. Many of the systems involved in this industry are legacy (with lots of patches), complex and distributed with all of the attached problems that come with them. Multiple times over that, I've seen people with excellent memories and understanding of the system be able to pinpoint problems just by taking a couple symptoms and deducing the root cause in a few minutes. It really can be a superpower.
The one down side of course is that you build this great mental model for a system that only ever exists at one firm. This can lead the situation where you become more valuable to the firm over time as fewer people remain who understand the system. In turn, your opportunity cost of leaving goes up because you would have to start from zero at your next job.
[0] - https://amzn.to/3lkSfmu
The downside I find is that some people who can do this assume everyone can do this. If complexity is not difficult for you then simplifying (code, architecture, etc.) is not a priority and it becomes harder for other people to understand and maintain.
It would probably take me a decade to build such a detailed mental model at another company or agency. And that's even assuming I could get hired. One consequence of working on an idiosyncratic, one-off architecture is that my mainstream tech skills have atrophied significantly. I definitely could not pass a leet-code interview at a FAANG anymore.
If life put you into a completely different system, you could build this familiarity and mental map faster. I bet you could—with careful thought—learn in 3-4 years what you learned in 10, and in your first year what you learned in your first 5.
As the article says learning progresses from what to how and finally to why.
Starting with why is just a way of deciving ourselves into feeling smart.
I would say in areas like language learning asking why question isn't even possible generally.
Knowing stuff cold makes you incredibly fast. Doing a lookup of a problem you've solved in a personal project / elsewhere you have the code for is also very quick, but not as much. Having to perform lookups is akin to having to go out to RAM. Having to ask a coworker is slower still. And the slowest is having to learn something entirely from the ground up before you can process what you are seeing.
It all makes a difference to your throughput, and as you say your creativity!
Even BBS were available only to the selected few that could afford bloody expensive long distance calls.
But, you can retrieve and memorize just patterns from the information and forget the details. This is my way of thinking, I believe. Still far from optimal, because you can miss important patterns before forgetting the details.
I grew out of it and the truth is similar to Sturgeon's Law: 90% of everything is crap! So, why waste my time on trying to memorize stuff I don't really need, just to satisfy my own superiority complex and to feel like an erudite man? Now I'm using Just-In-Time approach: If I don't know or can't remember something, I will look it up.
Because if there are no important topics, yes, I would stop to ponder.
- [0] https://www.youtube.com/watch?v=w-I6XTVZXww
EDIT: Sorry to all facepalming mathematicians who happen to read this comment.
You don't become a surgeon by watching Dr. House or a historian by watching the history channel. Don't expect to understand math by reading a wikipedia article. To really get it, you need to dive deep and get your hands dirty.
My favorite quote in Axler's linear algebra done right was that if you take less than an hour per page, your doing something wrong. I agree with him.
Don't get me wrong, learning math is definitely worthwhile, but please don't think you can skim some books and gain profound insights without hard work.
It's much easier to just get frustrated and blame some humans. That makes the time between an incident and simply looking something up even longer. Some people might never simply look something up as their frustrations exceed their lifetime.
I think it's messed me up a bit, tbh. All I really remember now is the conclusion/result of a previous multi-hour/day learning quest. Why or how I arrived to that conclusion, I don't know. I just know that at the time I deemed it to be the correct answer ¯\_(ツ)_/¯
Some knowledge must also be tied to real world experience. It took me a while to get the hang of navigating with the sun, but now I do it subconsciously.
The same can be said about programming, cooking, gardening, woodworking etc. You can't Google it when you need it, because it's a collection of techniques you pick up over time, with practice.
You can Google knowledge, but not wisdom.
When learning programming, I had a book on Java; ended up reading the first two pages and doing the exercises, after that everything was a quick google away. So much Javadoc.
10-15 years on, pretty much the same. I feel like I've forgotten more than the renaissance men had learned by the time they got to my age. I think it's easy to underestimate how much you know now, compared to the romanticized 19th century fellows. And we're fairly common people, whereas those people were often in the higher circles of society (I mean a lot seemed to spend their time taking long walks to chat or write letters to their peers, doing science and philosophy and shit without having to worry about income. That may just be the romanticized view / biographer's fault though)
well, going back to the Renaissance men they might have known a greater percentage of available knowledge, but I don't know that anyone has figured out how much of that knowledge is wrong - obviously if someone is a polymath with a deep knowledge in alchemy, that deep knowledge should perhaps count as something of a negative.
> If I forget everything I read, I can’t apply my knowledge to the problem at hand. I can’t transfer it.
Which is true, but I'm not really sure your solution is the best way to solve this problem. When you learn react, you are not trying to memorize the full book, you are trying to learn to be able to code in react which is a really different thing. The world champion of french Scrabble doesn't speak french [1]
To me you are over engineering the learning process. Learning benefits a lot from forgetting, there is no point trying to memorize a full book so that's normal to forget most of it
There are benefits from memorizing a full book but not for the case you are showing as an example (learning React or js)
[1] https://www.npr.org/sections/thetwo-way/2015/07/21/424980378...
Recently, I've been reading "The memory code" by Lynne Kelly and found that most of the ancient cultures faced the problem of memory and used memory spaces (aka "method of loci").
I tried it out recently to memorize the timeline of evolutionary history while walking in city streets. I found I could memorize 1-3 items per minute, which very high recall hours and days later. The structure between items was readily apparent, so that I could, for instance, easily estimate that there were ~650 million years between the first terrestrial eukaryotes and first appearance of sharks.
The streets have acquired new meaning and the process was really quite enjoyable. With this tool, I actually want to learn the structure of many more things.
Also, you don't need to use a whole street, you can encode a lot in just a room or two!
-- Relatedly, I know some people say that they don't have visual imagery: https://en.wikipedia.org/wiki/Aphantasia . I'm really curious how navigating spaces works for them. Do they have a problem with directions? Could they use memory spaces, but without visual imagery?
I don't have a car license, despite growing up driving vehicles on farms and years of trying to get my car license, I can't comfortable drive a car because I cannot hold in my head the physical size and shape of the car. I have a full motorcycle licence and no problem with a bike, but as soon as I step up to a car I just can't estimate distances or space. (This cost a lot of fence posts on farms and could be deadly on a highway).
Navigation I'm mostly fine, because I can remember lists reasonably well. To get from my house to my sisters is left, left, right, left (straight for 30km), right, left, right, left. Do I turn the final right at the 4th or 5th street down the road? I never remember until I'm in the intersection and recognise it.
I've tried a memory palace, and it only works for me with a space I know really well and a limited range. For example the 10 rooms of my house I can use, I've lived here for 15 years. I couldn't use different parts of the rooms because I just can't visualise them. But since I can generally remember short lists pretty easily I don't find a 10 room memory palace helpful.
Lastly I, like most people I suspect, remember songs and rhyme better. Want to know the periodic table? I can sing it at you (Thanks ASAPScience).
The worst part about aphantasia is trying to explain it to someone who hasn't got it. I can recognise my favourite places instantly in a picture, but ask me to describe them and be preparted for a cubist impression. Heaven help anyone who is relying on me to complete a police identikit...
Interestingly, I started doing spaced repetition more recently (2 years ago), and I found it more effective than the method of loci or anything else in his book. Yes, I may remember things using the method of loci days, or even months later, but usually not longer than that. Spaced repetition is a system that forces you to recall things later. Probably one could couple the two, though. Maybe if a SR system forced me to recall something I learned with the method of loci, I would claim the latter to be effective.
I really did like the "phonetic alphabet" method in his book, though. I use it occasionally to remember things for the short-medium term.
On HN, I often take a look at the comments first, to get a feel for whether the linked material is likely to be informative or thought-provoking. If there is an interesting discussion starting or if there is a submission that is getting lots of upvotes yet few comments (as this one was when I first saw it this evening) then that's usually a good sign.
FWIW, I've just spent well over an hour reading the article here all the way through, following some of the links to further pieces by the same author and others, and thinking about the ideas. It was probably the most interesting material I've seen all week.
When I was at the university I had all the time in the world for learning, and I was (artificially) incentivized to learn and retain a lot. Therefore my learning method was really different, rich, deep, optimized for the available time and the broad task.
Since I started working, my free time has shrunk by ~90%, and all the incentives for understanding deeply anything have gone to nearly 0. Now I can't afford having a big time slot just for learning, and I changed myself from being engineered to learn and retain theoretical knowledge in bulk to just be able to learn on the fly only the things that I need to use (this has been a positive change, actually. It was a painful change but I realized university had me optimized for something useless for practical purposes).
More and more I'm not even trying to retain in any way the small bits of knowledge, documentation, etc., that I encounter. I just read something up, I use it, and I forget it. For example, sometimes I program in programming languages that "I don't know". I just read up the syntax for the constructs I need, search stuff on stack overflow, and then forget everything.
Before being able to consider applying your method as a learning method, one has to overcome the time scheduling problem of finding 3 straight hours. Your blog has a "Why I wake up at 5 a.m." entry. I suspect that's what makes it possible for you in the first place?
I'm curious! :)
Then I read Erich Fromm's "To Have or To Be" - and it changed me. It made me question if I was just "having" all that knowledge or really "practicing" it.
It felt good to know lots of interesting facts of chemistry, physics, geography and code. But I just "had" them - never "enjoyed" them.
Will highly recommend the book. For a moment, pause and re-think, why do we need to remember everything?
For me, there is a bit of effort required in creating the card. That alone makes me only put in things I think are meaningful to me. Lots of times I learn something interesting and think to myself "I should make a card out of that", but it's too inconvenient. As such, most of my cards are for things I am intentionally studying.
I strongly suspect you are a packer... and wow, that's a lot of work.
My approach to getting a skill is to dive in, recklessly, and pound away, until I've beat the technology into submission, and it does it exactly what I want, how I want.
I strongly suspect this approach wouldn't work for you. (Unless you did it a lot, and become a mapper if that is even possible)
I have one major gripe that I think is worth pointing out: it may behoove you to be more selective in applying this rigorous treatment, if you aren't already.
You sort of touched on this with your ideas about sampling books before committing, realizing that most stuff is probably not worth reading. Similarly, most knowledge is not worth running through a high friction retention process.
Every unit of time you dedicate to a particular learning task has an opportunity cost. There's a roughly multiplicative factor applied to this cost per task with every additional layer in your retention process. You really want just enough process to get close to an optimal point on the tradeoff between 'exploiting' particular knowledge versus 'exploring' other things.
The above is also why I've started to conceptualize the learning process as a funnel. At the top end is inbound content in the form of books, blog posts, videos, etc. The bottom is what becomes indelible learning and enhances understanding. There are several stages in this funnel and what flows through each stage should narrow (both naturally and as a consequence of process) as you progress. With this in mind, I would argue that there should be at least one or two intermediate funnel stages between inbound content and the process you've described.
Its also good for things you cant be bothered reading. This morning I listened through the H1B visa thread this way. (and heard some interesting bug in the HN site where the posts started to be "one million minuets ago" then "buffer overflow minuets ago" ..)
I think a few commenters are missing the point or just skimming over the post. It's not about memorising a 'book' or subject by rote, it's about being able to consume, rearrange and remember the subject in a way that's more suitable to how you remember or think about things. It not only clears your thoughts as you study (allowing you to move through the material quicker) but aids in recollection with better organised note taking. Cheers
I invested a bit on physical tooling and I doubled down and studied learning earlier this year.
I just created an online course on learning and it was released today!?
(Full disclosure I'm the author of said course) if you are interested in a course that has a bunch of overlap with this article, check it out.
I built this simple web app to help me keep track of what I learn, and later opened it up to the general public. I've gotten good feedback so far - interested to hear more: https://wyl.today
It seemed to work for Organic Chemistry.
I've never used Drafts and I'm curious about how do you keep your files organised after a session. You write a sort of recap of what you've learned, that's clear. But how are the other 3 files grouped together? Only by date or timestamp? Do you ever go back to or search through your old files?
Also, another curiosity:instinctively I would keep my study material on the iPad and take notes on the laptop. What's the advantage in doing it the other way around?
And thanks again!
Maybe there is an easy way to digitize these later? Take a picture with an ipad and continue to add to them?
Nothing judgmental about telling folks that?
Knowing when you need depth and when it's enough to just mimic someone/something is a career skill.
Write your thought in a structured, bite sized chunks and you'll be able to recall it quickly.
It's not about memorizing useless information, but about how to remember all the ideas you've learned so you can actually use them later. Especially if you're learning a lot all the time