Ask HN: Do you also feel you retain nothing after reading a technical book?
Lately, I have been trying to follow the habit of reading a lot, be it books, articles or blog posts on the subjects I would like to improve myself in.
That said, the more I read, the more I get this awful feeling of not memorizing anything and creating a mess in my head.
I try to use some simple tricks like explaining a concept to another person or even to myself, but that doesn't seem to help a lot.
What are your tricks and methods to maximize the mental output of technical literature?
52 comments
[ 3.6 ms ] story [ 108 ms ] threadI go to stack overflow and look for poor questions in the new technology then I figure out how to answer them. This gives me an unending stream of micro-tasks to accomplish and introduces pain points in new tech.
Now, I read tech stuff only at the conceptual/architectural level. Stuff not typically asked by noobs.
If I don't plan to use the knowledge then I take away an over simplification of the topic and any thought provoking key points.
Now, however, with more experience and the necessity to deal with these issues at work, I keep revisiting DDIA on a regular basis and this is when the book truly shines for me.
It just bothers me at times that even though I read quite a lot, the amount of information I can confidently restore even within a few days is not even close to 50%.
Taking notes is definitely something I should try, in addition to organizing a handy set of bookmarks in Raindrop whenever I encounter something useful.
Put another way, go back to your college or high school years. We didn't just read. We had to study. We had tests. It was about repetition. Being an adult doesn't change that process.
Great example: when was the last time you had to look up how to append an item to a list in your favorite/most used programming environment? You probably don’t remember when that was, because you use it so often, but, there was a time when you did have to look it up (when you were first learning).
——-
[0]: https://news.ycombinator.com/item?id=30047675
Anki is great for foreign languages, chemical names, country flag to name mappings etc.
Take notes. Make sure you read them again a week later and reorganize them into smaller meaningful notes.
Those "Cards" can be re-read very quickly. And the simple notion of the few words a month later will replay and refresh the full context in your brain.
Works well if you don't have the time nor occasion to apply it
I can’t emphasize the value of handwriting notes enough. It was that “one weird trick” that got me through college. I actually never looked back at my notes, but, I got the benefit just by writing them.
Oh, and, one thing to note here: highlighting stuff in the book or paper you’re reading is great for when you come back and read the material again, but doesn’t do much for retention on the first read. Write that shit down if you want to remember it.
you go back to it, reread a bit to refresh your memory and it all somehow clicks.
at least that's been my experience so far so i don't bother with retention too much. perhaps information you ingest simply needs to age a bit to mature and develop.
It was also discussed on HN in the past [3].
--
[1] Learning How to Learn: Powerful mental tools to help you master tough subjects
https://www.coursera.org/learn/learning-how-to-learn
[2] https://twitter.com/nivertech/status/1441657387325145096
[3] https://news.ycombinator.com/item?id=15092707
Unfortunately this isn’t easy. It takes physical effort and will power to resist just reading over the words and feeling you’ve internalised something vs actually forcibly mentally thinking through the steps.
If the subject is something like math or physics, do some related ‘homework’ problems.
If it’s programming, actually implement something in that language or framework.
If it’s foreign language, try putting together useful sentences with the words and language constructs in question instead of just racking up points in Duolingo. Better yet talk to a friend in this language.
If it’s philosophy or history, well then it’s less clear. In that case your idea above may be the best you can do, either explaining to someone or even pretending you’re explaining to an imaginary newbie.
This is just my two cents but what I found works for me over the past few years. Personally I don’t understand how people here on HN claim they can learn a math topic (eg quaternions) just by watching a YouTube video, or understand functional programming just by reading thru SICP but not doing a single exercise. Maybe they can, but in my case I need to work through some actual pencil-on-paper or hands-to-keyboard examples myself to really grok the subject.
I came to say that also. I find that just reading a technical book is the fastest way to get drowsy, while retaining nothing (or so little, it's a negligible amount).
I find that to learn anything I must have a project. Then, when I inevitably strike a roadblock, I refer to that technical book for the answer to my lack of knowledge so that I can move along with my project. If I subsequently forget that knowledge, I know that I did have an answer previously, and that I found that answer in a particular place.
Also, I find myself buying fewer and fewer technical books these days. Once upon a time, the only way of obtaining knowledge was via technical books. I used to buy dozens every year. Currently it's easier and faster (and less expensive!) to use Google or similar websites.
That said, for better or worse, software engineering is not as strict and formal as mathematics. There are a lot of opinions backed by somebody else's experience or, just, reputation (say, books like Clean Code or Clean Architecture).
Recently, I have been reading mostly not about programming languages or algorithms. It's easier to understand these by practicing, writing code yourself, etc.
When it comes to more abstract subjects, however, it's more challenging. For example, clean architecture, domain-driven design, different solution approaches in distributed systems.
It's not that one has to memorize, but rather internalize the principles. It doesn't help that there is plenty of opinionated advice on the Internet with mutually exclusive approaches and recommendations.
If you are doing some combination of (1) reading textbooks, (2) attending lectures, and (3) doing problem sets, I'd say (3) is essential and the others only supporting.
My son and I were talking about probability yesterday, he was calculating odds with mental arithmetic, I was writing algebra on the blackboard. He never really "got" algebra and so he looks at math really differently than he does. I keep one formula in my head
and with that I can derive any trigonometric identity, angle addition formula, etc. that I want. What could look like a mountain of facts can look like very little when you've got the underlying fluency to disturb things.When it comes to programming languages and frameworks (say Spring) I tend to read and re-read the manuals while doing cardio, reading the bus or something like that. The goal is not to memorize information but to develop familiarity with the manual. In a language with a good manual, say Java or Python (but not Clojure) there are many arbitrary things you need to know such as how to look up the length of a string, where to find random numbers in the standard library, etc. You are really doomed if you are looking up these things in Google or Stack Overflow
Then there is the "technically interesting" stuff I read which is often about electronics and energy technology. This stuff I read nonlinearly and repetitively and I suck it quickly and can fluently talk about many fields that I've never worked in. When I really get down to doing something, say for Arduino projects, I find my difficulties often are in a few areas like (1) converting voltage levels, and (2) connecting and fastening parts in a reliable way to form a whole.
I have been doing an art project for the the last 18 months and found so far that I've learned most things the hard way and usually had a hard time looking things up in the literature or really incorporating what I read into my practice until after I 'discovered' the answers.
I am doing an extensive reading project that covers literature, psychology, sociology and related fields and there I read books cover to cover. The limiting factor is the emotions that the books stir up and how that affects my ability to do the practical work that goes along with that reading. For instance I finished this book
https://en.wikipedia.org/wiki/The_Collector
this morning and was shook up by it. I had a subproject where I had rewired my emotions and motivations for a 3 month period which vastly improved my artistic output but reading one Morton Hunt book caused the spell to break over the course of 48 hours and I saw it come apart exactly the same way that the book I learned the spell from said it would come apart.
In the practical work I sometimes think I am an idiot such that it takes me three tries to learn something I really should have known 30 years ago but that's the reason why I am doing this project. Based on consolidated book knowledge, however, I'm starting to talk a very good game on this subject and can sometimes say more in a few sentences than practically knowledgeable people can say in 1500 words.
While grinding is looked upon as silly. Yes doing the same thing multiple times seems the only way to master it.
If you want to learn maths - best way is to solve equations by hundreds - solve math assignments by hundreds.
My latest approach to cyber security is just like that - while I do know how most of the attacks work theorethically going through the movements to pop simple box on HTB is quite a task for me. So only way to get better at breaking boxes is not reading about kinds of exploits and understanding them - it is simply bashing keyboard all the time until all the tasks are muscle memory and until I can get through iterations of ideas of how to pop a box as quick as possible.
Then you also start to build intuition which approaches work for which type of math assignments or boxes because you physically did the work to have working memory of what works and what not.
Which gives you specialization and possibility to skip stuff that you know won't work and being much more productive than people who are "theoretically" understanding things.
While reading about stuff you get pointers like "how to bake a bread", but you get slightly different oven, you get slightly different wheat each time and it is only your internal intuition that can adjust for unknown factors.
As for retaining the info, it's all spaced repetition now https://fs.blog/spacing-effect/ .
It's a challenge to find material at the frontiers of your knowledge, but the effort pays off in efficacy.
I still feel lost sometimes when I encounter something new but now I actually have the confidence that I would be able to understand it if I keep going at it and have a pen/paper with me.
Use the "socratic method" of asking questions. You don't actually neede Socrates around, you can just ask questions yourself. Before you start reading, ask yourself questions about the subject, and try to answer them yourself. Although you might not have any answers, trying to come up with some will make you far more receptive to whatever the contents of the technical book are.
As an example, suppose you were reading a technical article describing the state of the art in searching for twin primes. Such as this: https://www.emis.de/journals/SMA/v12/p12_17.pdf
I am bored to tears by the very idea of reading that article and despite its abstract promising to make it more lively (the article starts: "The purpose of this paper is to gather as much results of advances, recent and previous works as possible concerning the oldest outstanding still unsolved problem in Number Theory (and the most elusive open problem in prime numbers) called ”Twin primes conjecture” (8th problem of David Hilbert, stated in 1900) which has eluded many gifted mathematicians. This conjecture has been circulating for decades, even with the progress of contemporary technology..."
Rather than just read, think for a moment and try to solve the twin prime conjecture yourself in your mind right now! Obviously without even being a mathematician, you're not going to solve an open area of mathematics that tens of thousands of actual machematicians spent a combined hundreds of thousands of hours on. What you will do, however, is after you give up after a few seconds, be far more open to actually reading the article. You'll actually get way more out of it than if you had never asked yourself a question on a subject you didn't know anything about.
If I read a technical book, I work more toward familiarization than memorization — I can just look back at the book or Google for reference.
When I was younger, I was able to memorize *. I can’t do that now, perhaps due to age, or because of experience. Now, I work toward mastery of the absolute basic fundamentals, and rely on looking up everything else.
A big part of why memory works the way it does is because experiences are what get processed and catalogued when you sleep. If that experience is lacking, i.e. simply reading by itself, then the only thing you get are the words-"memes" running through your brain. What you need is that lived physical experience to be imprinted into memory.
Like recently I wanted to learn HTTP/2 and gRPC, so I wrote some PowerPoints explaining those concepts and know I grok the fundamentals of those topics. My core mantra nowadays is "You don't know anything until you can explain it".
If I forget something I can always go back to my presentations, that are now the same as my notes.
Its a challenge to break down a complex concept into suitable "parts" and create a good story, but as time goes you get better and better at it.
Thanks for ask the details though, it’s given me a lot of food for thought…
1. "reading a lot", don't read for the sake of reading or learning for the sake of learning. Choose what you find interesting and read that.
2. "feeling of not memorizing". Read slower, know what it is that you're learning. Try to internalize every little 'oh' and 'ah' moment. Read critically thinking along the edges, wondering if it does or doesn't apply to similar cases. Think them through and decide if you feel it should or shouldn't apply. Learning is not about remembering. It should be about connecting new information to information you already know. Take the time to find and make those connections as you're reading. It's not likely that this will happen on its own--perhaps if you read the same material before and after a related experience, but that can't be planned.
Sometimes I just can't connect with the author and their way of explaining things.
I read multiple times. First time, I skim quickly over everything to see if it's worth it and I want to dig into it. Second time I read a bit slower and take high level notes on areas I want to dig more on. Third time I read but make it an emphasis to pay attention to the areas I took notes on and dig into those with more references if I need to.
I expand my notes. I don't expect my head to retain it all. Make it easy to search. Figure out what works for you. If you go written on paper, figure out how to organize things.
I figure out a project in which to try new things and I try them. This goes back to, I don't read everything or for the sake of reading.