I came across this piece by Joel, where he says ”It’s harder to read code than to write it”.
PERFECT. Atleast my programming experience matches with what he says. On the other hand, I do not interpret it as ’so just stop reading code and do something else’. If you have to do real programming, you have to spend time ’understanding’ already written code.
Now, the deeper reasons for why it could be hard to read code could be:
Here I have found my detective utilities (here , here) very handy. It eliminates the futility of reading code as it helps me ’understand’ code relevant to the feature I am working upon as it provides:
With the information provided by detective, I can explain the code in business terms to someone else while pointing to function names. Thats it. I have learnt the lesson the hard way.
So if Joel says ”Its harder to read code than to write it.”, we now have a corallary:
”Never read code without contextual information.”
Till the fifth grade, I read much less by myself, listened more, asked questions, and learnt along the way. So when I entered the fifth grade, my father advised me to attempt to read by myself.
That was a smart way to inititiate me into reading instead of harping about how to read, why you should self-read etc? My initiation was very tough and no wonder that I remember it vividly. We tend to remember our hardships over the happier times! Over the course of time through school and college, I learnt a few things about reading that I would like to share here. Most of these I think I have learnt without being mentioned explicitly.
The most important lesson I have learnt is that reading is a long term activity. It is not something that should happen in isolated, disconnected sessions; which is the way most of us read even without realizing it. What it means if you are reading in this manner, is that you do not link/connect what you are reading currently to what you have read earlier. If you do not make these links, then you really are not improving your knowledge. I do not intend to say here that we do not form any links whatsoever, but that we do not form links conciously by thinking through what ideas and facts we have been exposed to by our reading.
If you treat reading as compartmentalized activity, a task among many of your regular tasks, then what you can end up with at the most is storing facts in your brain. But the links between these will be missing. Then when someone who makes these links comes up with those insights which are often strange and suprising, you think ”Why the hell could I not think of it”? The answer is simple. You did not make those links.
Let me give a very simple example of making the links. I have read 2 books by M.K.Gandhi: ”The Story of my experiments with Truth” and ”The Gospel of Selfless Action”. If I read without making the links conciously, then I will not be able to see how The Gita influenced Gandhi. It is very interesting to find out how Gandhi was influenced by an instruction or a recommendation from the Gita. For example, The Gita does not recommend renunciation of activities; but the reunciation of ’crass materialism / selfishness’. Which is very evident in the way Gandhi led an exteremly simple life and led the freedom struggle. This technique of making links is true for every subject.
Now can you make these links if you read fast? Obviously no. Here I come to the second most important lesson; read slowly. The advice that you often hear ’read with concentration’ I think is a fake one. I believe that concentration is always a byproduct. If you are focused on making the links, then the concentration part will automatically be taken care of. When you tend to stop making the links, it could be either because of fatigue (you have been reading too long) which could be good or because you are reading fast which is bad. 
If you read slowly and treat it a continous activity, you will begin to enjoy it more. As I mentioned earlier, you have to keep making links. . Whenever you are involved in some task deeply; a few breaks or pauses are important. The risk here is if you do nothing in the break, you may lose the rythm. Hence while reading I do take small breaks to make these links thereby making them productive. Finally when I am tried I just bail out, making a note of where I left off. This note is just a few lines describing my understanding till the point where I have read and it allows a smooth resumption of my reading when I come back to it later.
While reading I always imagine as if I am having a one-to-one conversation with the author. It is like the ’author is reading out the material to me’. I do think it could also be because I had been read out to a lot as a child, but I have never tried to verify by asking others if that is the case with them as well. I also find that matter written in conversational style is enjoyed by more people on the whole. This is the first technique that I also use to pick good material to read. Converstation style is not a filter to finalize, but a filter to pick to decide if I should read.
The next technique is to go through some extract of the material you intend to read and try to see how many links you can make? The higher chance is that it is a good pick if it is making you form a lot more links than less. Remember that good picks are those that will extend your links; but even more intereseting (and better) are those that will challenge your current ones. For example; a book that will cause me to think that Gandhi was not ’heavily’ influenced by the Gita; whereas after reading those two books I had made that link. I now think it would be even better to find material that opposes your current links. Of course here the underlying assumption is that you are not starting off wtih an entirely new subject matter. 
But if you are, then (and even otherwise) as a helping aid, I find the online book reviews useful while picking books to read. A pattern that I have seen is that ’hard books’ not because of the writing style but due to the difficulty of the subject itself have fewer review comments. Anyways read the reviews and see what the reviewers say. But note that let this only be something that assists you in making a decision; it should not be the primary reason. Finally, another great help are the recommendations about books and material to read made by those people whose judgements you trust where reading is concerned.
Finally if you can make the links, it may not be a good idea to just store it in your head. This is what I do. I just annotate everything within the physical copy of the book itself. The big risk here is what if you lose the copy? You will lose all your precious notes. As such I take a zerox of the book and store it away after I completely read it and sometimes I read more than once, so each time I take a zerox. You can as well scan the book you have finished reading it. 
Thus overall I think it is more important to form the links between the facts and ideas you come across while reading; so that you can not only enhance your knowledge but also draw valuable inferences. I think that is possible only if you treat reading as a continous activity, read slowly and know how to pick the right material to read. This I think is the essence of critical reading.
 Reading slowly may not be prudent for aptitude exams, which suck most of the times. So if at all you learn all those reading tricks, just be a smart alec and trash them away after you are done with your exam; just the way a child learns and forgets the stupid magic tricks.
 Hence I like bookstores which care about this apsect by providing chairs where you can sit down and go through a book. Makes for a lot of business sense. Alternatively, the online libraries are also a great asset where a subscription allows you access to either a full library or a limited number of books on your virtual bookshelf. Such online libraries can be used to read extracts of a book before deciding to buy it.
 As such ebook readers with a stylus that allows one to make notes that get stored along with the electronic copy of the book could be real replacements for physical copies, assuming that there is an electronic version of every book. Apple IPad (as is with Apple products) provides the most compelling reading experience, which forces you to overlook the fact that it does not use the e-ink technology which is lighter on the eyes.
I am a polyglot software engineer specializing in shipping iOS and 3d scientific visualization applications.