views:

712

answers:

16

There are many technical books that become thinker and thicker and the pressure from the technical society is more and more to read them and remember many concepts described in them. But it's so hard to do it. I have only a few hour a week to read them and when I reach the middle of the book I forgot most of what I've read at the beginning, because lots of time passed. If I go back, I'll just re-read the same stuff over and over, never going past 50% of the book. So, even after I finished reading a thick tech book I forgot most of it. How do you remember all that stuff? I had a talk in my University on how to do it. They advised to use some cards with basic info so that you can remember the details when you look at it. Do you use such cards or do you have other ideas how to do it?

+18  A: 

You put what you're reading into practice. It will sink in remarkably fast.

Generally, technical books come with lots of little example snippets of code or exercises. Do them. But after you've done them, think about where you can apply those concepts in code you've already written. Go back and refactor with those ideas in mind. Once you see how it can work in a real live project, it will be burned into your brain.

Eric
+1 create something that actually works using what you're reading, as you read it. It will stick with you for a long time.
Rex M
Even *typing in* an example verbatim from the book and running it can help.
Kevin Reid
A: 

I'm with Jeff and I think programming is like craftsmanship and since I'm like you, I just try to do my best when i do stuff and when I'm stuck i ask around or on google or here.

Fredou
+5  A: 

I read a chapter, wait a while, and go back through the chapter with a highlighter. Then, if I ever have to go back in the book, I can just read the highlighted nuggets.

It's important to remember that what works for me, might not work for you.

BStruthers
+1  A: 

A really good coder once told me...

If you read something in a technical book you don't understand, do something with that concept 5 times in code.

Make 5 separate, little, non-related one-off projects. By the second time around you will probably understand it, and the other 3 are just to get your fingers used to typing it. Don't proceed further in the book until you do.

routeNpingme
+7  A: 
Sam Saffron
not true I have a photographic memory and so do lots of other "visual thinkers" I can recall pages and re-read them from memory, the more important the page the easier it is to recall.
fuzzy lollipop
RIP Kim Peek...
Scot Hauder
Great photo selection.
fastcodejava
A: 

Best way to learn is by doing. You'll obviously retain something if you read an entire book, but you'll retain even more if you put what you just learned into practice, by writing a little side project - consider it a kind of homework. Even accessing the information in different ways can help you remember. When I go through a book, I'll take notes, longhand, in a spiral notebook. Just the act of writing down the notes is forcing my brain to digest and work with the information, repackaging and summarizing it. Even if I never read the notes again, I'll still remember the material. Other people are big advocates of learning by teaching - write a blog post, or a white paper for your company, or give a stand-up presentation at your next user meeting.

Peter B
+3  A: 

Jotting down the points in a book which u find very important helps u remember things faster .. i've felt when u write u retain !!!

Dharavk
+1 for when you write you retain
this. __curious_geek
A: 

To write a review on Amazon or on your blog might also be a good idea. It makes you think critically about the book, distilling out the good parts and, as a bonus benefit, it may be useful to other people.

santiiiii
A: 

Though I completely agree with learning by doing principle, my experience tells me that it is not enough.

What I remember best are thinks that I do need to use. The motivation behind the practice is essential for me.

If I don't need to use Cobol, I won't remember it even if I've done my homework. If I need to use Objective-C, I will learn and remember it very fast and efficiently.

Moreover, remembering is no longer mandatory. Accessibility of resources is such that finding them is more important than learning them.

mouviciel
+2  A: 

When starting to learn Japanese, I learned the Kana & Katakana (=~ "The Japanese Alphabet") mostly by the way Jaimes Heisig did.

http://www.amazon.com/Remembering-Kana-Hiragana-James-Heisig/dp/4889960724

In essense, short studying time, the use of mnemonics and many breaks to let your brain catch up with what you've learned. Especially since this let you learn stuff the first time, and you do not have to repeat it over and over.

This has worked for me with many other techniques since including programming concepts. Oh, and do the exercises.

lungic
A: 

I can't say anything on this better than Andy Hunt has in Pragmatic Thinking and Learning. It has many very useful tips for all types of learning but particularly so for technical domains.

charstar
A: 

One practice that I find interesting is to do a decent project with the technologies learnt before diving to next book or technology

example:

JSP and ServletProgramming: A mini version of netflix will be cool C#: try to develop a simple but powerful IM software C: a webserver that is HTTP 1.0 compliant and can be accessed by variety of browsers UNIX network programming: An IRC server and client

idea is to select the project and scope it out properly and work on it dilligently to get that small project ... you will end up learning more than book will teach

jsshah
A: 

I agree with others that typing up an example and playing with it is one of the best ways to retain ideas in the long run.

However, if you are a visual learner and do not have instant access to a computer, it might help you to try out concept/mind mapping.

The idea is that as you are reading you create a visual representation of the material.

I usually use an A4 or larger sheet of paper, a pen and highlighters. I write the title of the chapter (the main idea) in the middle and draw a border around it. Then I start reading. When I encounter an important point or an 'aha moment' I write it down then I connect it to another idea on the paper. I sometimes draw things like angry faces or stop signs with 'WTF' written on them.

There are many advantages of using this technique. It makes you stop reading at regular intervals so your brain can digest the information properly. You can glance at the paper at any time in the future and have a pretty good idea of what the chapter was about. If you are visual it helps you remember ideas better. It also makes reading a lot more fun.

c_maker
A: 

If you read it but do not use it, you will forget after a while.

fastcodejava
A: 

When I study anything, I try to not focus on the what, but more on the why.

I need to only roughly remember the reasons or basic concepts for something, and from that I can, when called upon, distill what it actually was. Furthermore, I am better able to transcend the subject matter and apply the reasoning more critically, because I work through the whole process not just applying it like a moronic robot.

For example I can try to remember what the exact chemical reaction is for burning coal, but if I in stead remember that burning is a reaction with oxygen which produces CO2 and whatever is left if any in suitable combinations. I can not only reproduce the exact chemical reaction for burning coal, but the chemical reaction for burning anything...

Oh, and if possible, doing experiments really help letting things sink in... but that's been said by virtually everyone...

NomeN
+1  A: 

You don't need to remember it. You only need to remember that it's in the book. That's what the book is for, so you don't have to remember.

EJP