I've been reading a thick programming book on C++, trying to dig deeper into the language. I've been taking notes, using a Evernote like program with syntax highlights. I have lots of different notes, titling each one with the name of programming syntax/technique of using the language, but it's really hard to go through it all and figure out exactly what I need when figuring out a programming problem. I want to master the language.<p>What is the best way to take notes reading a programming book that you spend months reading off and on?
There's a fairly simple annotation technique we teach all of our high school students.<p>- Underline big ideas you come across.<p>- Circle important words or phrases.<p>- Write any questions you have in the margins, as you read.<p>The goal is to have a "conversation with the text" in your head. If you do this well, the process of annotating fades into the background, and just becomes part of how you read. When you go back to that book or section later on, you can quickly get a sense of what stood out to you the first time you read the text.<p>The long-term goal is that people develop their own coding system for reading. It doesn't matter if you underline or highlight, circle or box, etc. What matters is that you develop a system that works for you, that lets you think about the text in different, specific ways as you read.
I find it hard to learn programming that way (though for other stuff I use post-its). My approach is first to skim the whole book, making a mental note of interesting features or ideas I haven't encountered yet, but not really learning them deeply. Then I take a small project and make sure to use all of those features, even if I have to shoehorn them in a bit just for an excuse to use the feature. I will use a programming book more as a reference. Most of these are throwaway projects and don't really end up as useful code, and I don't do this all in one sitting, maybe over the course of two or three weeks here and there.
Honestly. Pencil.<p>Every single programming book I own, that I've actually read, is covered in hand written notes.<p>I also tape post-it notes onto important pages with more notes as bookmarks.<p>It's free. Easy. Random access. Read/write friendly. "No sign-up required".