Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I read a book or article about something new, I have two main concerns:

  1. Retaining the new knowledge I just acquired
  2. Being able to access the new knowledge efficiently later on

What are some methods you folks use to annotate what you learn?

I recently read Pragmatic Thinking and Learning and one of the things I'm trying out is making notes from books in mind-map format.

Another method I'm trying out is tagging important passages in books with labels such as: definition, feature, remember, usage, caveat... It's too early to tell how these will work for me, but I'd like to know what works for you and how you use it.

There are other questions asking what tools people use, but I think process is more important than the tool, so that's what I'd like to learn about.

share|improve this question

closed as off-topic by Ixrec, MichaelT, Snowman, durron597, gnat May 20 '15 at 5:04

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Ixrec, Community, Snowman, durron597, gnat
If this question can be reworded to fit the rules in the help center, please edit the question.

The process defines what you'll learn, but the tool enables and suports the process. +1 for a nice question. Though I think you could change the title to make it more generic with simply "How to improve knowledge retention and efficiently lookup knowledge". – haylem May 30 '11 at 0:56
Please feel free to update the title if you feel that's more appropriate. Thanks for your very thorough answer! – pthesis May 30 '11 at 1:29
sorry this question could apply to any activity – Steven A. Lowe May 30 '11 at 2:24
@pthesis: you're welcome. I edited the title a bit, hope it's fine. Let me know if my suggestions worked. – haylem May 30 '11 at 8:06
@Steven A. Lowe: I agree it's a bit too generic, actually, and could work just as well on most StackExchange websites. However I think it's an interestig question as we do need in our daily jobs to remember a lot of things and to lookup data quite often. I tried to look for another StackExchange website where we could forward the question, but apart from SuperUser (for the "storage and indexing" aspect of the question), I don't really see a good home for it. – haylem May 30 '11 at 8:09
up vote 8 down vote accepted


My Method

  • lots of post-its to mark pages for re-reads or write annotations,
  • re-writing flash-cards for review (which I might start scratching out on a real notebook),
  • looking up definitions I marked for review online (Google and Wikipedia are good friends),
  • re-reading articles a few times never hurts, to get a deeper understanding and let it sink in,
  • re-reading a book by flipping through pages helps a bit.

Some Things to Remember

Types of Learners

There are different types of learners. It's very important that you figure out which one you are. For instance, I am a visual learner: I remember best things I see, and more importantly that's by visualizing them mentally (as in really visualizing words, pages, ordering of lists, etc...) that I bring the memories back. I used to a fairly good short term memory in high-school and uni because of this, because I'd just look at pages and pages of check-lists and be able to remember the ones at the end by starting from the beginning. Other try to remember their lecturer's actions, or to remember what they saw at the time. For me, sequences work wonders, which probably explains why flashcards are my thing: I can write them so that the bullets flow naturally and introduce each other as much as possible, and that makes it easier.

Which brings to the next kind of learners: the auditory learners remember best what they hear, and refresh their memories by trying to recall the sounds. Like I was trying to remember my items in order, some people try to remember their voice and its rythm and sound when thinking of something.

There are other kinds, like kinesthetic/tactile learners. Less practical, in my opinion... :)

For more information on learning styles, read about the Representational Models, Neuro-Linguistic Programming and the Fleming VAK/VARK model.

Learning Theory

Knowing your learning style is one thing that helps, but obviously educational methods have approved over time. It's been shown that - especially in our field - contructivism is very effective. Try to learn by doing as much as you can.

Also keep the following in mind. According to a study originating from the University of Texas (though already slightly dated and a bit rough around the edges in the quoting and sometimes taken a bit too literally by people: as mentioned above, some people learn differently), you remember:

10 percent of what you read
20 percent of what you hear
30 percent of what you see
50 percent of what you see and hear
70 percent of what you say
90 percent of what you do and say

I actually learned about this when I was learning to become sailing instructor in my teens, and this was part of the pedagogical module. It has helped me a lot ever since, both to learn and to teach, and I came around that formula often since then (in other classes). It's too bad this stuff is not mentioned to kids directly at school, or they would understand and see that they can trigger their learning abilities with a bit of a push.

So try to follow that and force yourself to read to get a good understanding, but then to go beyond that. Doing and saying is great. Once you talk to someone about a topic and exchange ideas about it and put it in practice, you'll remember it for a long time.

Spaced Repetition

Combining these tips with spaced reptition is a gateway to remembering everything you learn and read. In a (very rough) nutshell, spaced repetition is a method to train your memory by regularly refreshing your memory with the same material, increasing the intervals over time as your answers get better and your remembrance time improves. You train your brain to fetch the items from memory and you improve the retention by repeating things. There used to be a learning "trick" taught by my teachers in primary school, which was to read a text we had to memorize 7 times, and then read it one time a bit later again. It wasn't perfect but it was going for the same idea. Spaced repetition has become very trendy and you can find a herd of tools doing this (for instance Mnemosyne or Anki), the precursor of which being SuperMemo (Here's a great WIRED feature article on spaced repetition and SuperMemo's author, Piotr Wozniak). You also find software for smartphones. However, their quality varies greatly as some of the algorithms and techniques are patented, unfortunately.

Plus, the material you create for those spaced-repetition/flashcard software can reference hard-copy materials with page numbers, and then be backed-up and indexed for search (see tools below).

Alternatives & Anecdotes

For books, my grand-mother (who was an historian and history teacher) would usually simply take a lot of notes by flipping through a book first and do a speed-reading. She'd then do a fully-focused reading, and then re-read the book by taking time to lookup her notes and research with other books on the side. This is from a time where the web didn't even exist or was not a commodity. She never had a computer. She'd take tons of notes, annotate them in folders and small notebooks.

Personally, I tend to read normal books only once, though lately my memory isn't as good (a result of ageing maybe, but most definitely a lack of focus and fatigue: I work a lot more than as a kid, and I am interrupted a lot more often during my reading). However when it comes to technical books, I'd flip through them a few times to remember important tidbits. Some books are well designed in this matter, and do include excerpts for "quick learning", with pre-selected "highlights" in each sections. Or a "review" page at the end of a chapter, to make sure you got what you read and just don't fool yourself thinking "yeah yeah I got that fine, moving on..." (This is spaced-repetition put to practice, though not that strictly.)

When I was preparing for high-school or uni tests, I used to just read my courses, then re-write them as notes, then re-read the notes, then do some exercises, then re-read the course, then see if I can re-write the notes. It's not just about memorizing but understanding. Something better than that would have been to try to present or explain my course to someone, but hey, I was a kid, I was lazy. I do that now however for presentations at work, or for new material I try to learn. And I teach on the side and that puts me to the test quite often. Teaching is the best way to learn (if you're not obtuse and so stubborn that you'll never change your techniques and listen to some students who might actually unearth secret areas you previously ignored, or might actually know some stuff better than you). Plus, it's humbling.


If you write articles or papers or just some notes with a list of references or bibliography, I urge you to try Mendeley. It's great to automatically build a list for you, import references, and not too bad either to sort them out by groups. Makes it quite easy to build a list of reference material found via Google Scholar or Google Books, for instance, or from any online publication.

I like Google Docs for the search, simplicity and sharing. Google Notebooks was great for dis-organized thoughts to type in quickly.

OneNote is quite nice for a lot of things: screen captures, hand-written notes, typed notes, sharing, hyper-linking between documents... Like a portable notebook, it's an amazing software if you have a tablet PC with stylus (too bad they haven't caught up with real tablets or produced a mobile version though).

TiddlyWiki is a wiki in a single file, which works pretty well to package quick notes on a USB stick.

For mind-mapping, I use FreeMind. It's simple yet has a ton of features, and can be edited almost entirely using only the keyboard. It's not completely perfect and I would like to find web tool, if possible. If Google Docs could support mind-mapping with keyboard shortcuts in its diagram editor, it would be awesome. Does anyone else have a suggestion?)

Finally, you could have a look at Emacs Org-Mode. It's great for taking notes for TODOs and checklists, and works well as well to maintain knowledge. And because it's entirely plain-text, you can index it easily on your desktop using any indexing software (Google Desltop, Windows Search, Beagle...) or upload it to Google Docs as well.

The point of storing them in the cloud is that I can access them from anywhere and can easily share them or do a search on them. It allows me to find easily find things when I need them (for instance, if I remember a nice article a student sent me).

I haven't found a perfectly laid-out software solution with everything built-in (bookmarking, notes, annotations with hyper-linking), but with these it gets pretty close.

share|improve this answer

Write a summary of every chapter of the book or the article.

This the easiest and most effective method I know. It will force you to deconstruct and understand it. You need to write the summary with your own words.

Write it for you, like a letter you send to yourself that you will read ten years later.

Or... Write a blog post about it!

share|improve this answer

You could take notes and I've seen some people actually take notes in the margins of the book.

One thing that has helped me though is, at a stopping point, quit reading and think a few minutes about what you read.

share|improve this answer
That works in the moment, but how do you store than info for future reference? Do you record it electronically somewhere with some classification system in place? – pthesis May 29 '11 at 22:27
That seems to work for me and I've been able to recall some stuff from books I haven't read in years. If it currently works, I would stick with it. – Jon May 29 '11 at 22:36

I use the "bump it up" method. Which is simply reviewing the information a few hours after you learn it, and even a few times after that.

Shortly after you learn something, you almost immediately start to forget it. If you graphed your retention of that information over time, you'd end up with a negative slope. If you review that same information a few hours later, before the retention line has a chance to decrease much, you can effectively "bump it up" to its original level. Supposedly after doing so, the slope wont be as severe, meaning you will retain the information longer. Every repetition decreases the severity of the slope, allowing you to retain the information longer each time.

It's nothing new since this is how long term memory works, but giving it a name helps you remember to "bump it up" a few hours later.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.