views:

681

answers:

17

I was reading a couple of books on programming in python. I found that annotation helps me keep track of useful information and other thoughts. I was hoping to find out how others read the books:

How do you read books, especially books that teach you a new technology (and, if you read physical books at all)? Do you grok it (along with programming), or just go through it and start programming and look up?

+5  A: 

I think you open the book up (start at page 1) and simply read top down, left right, absorbing in useful bits of information until you understand it all.

Hope this helps.

Jobo
lol, this what happens when old technology starts becoming obsolete, people forget how to use it. ;)
Sekhat
what if the book is written in RTL?
Tom Anderson
In Japanese you read Top-Down, Right-Left, so your advise is too specific for it to be valid ;)
Robert Gould
As this is an english website, I assumed the book would be in english and that the audience posting questions, are english speaking and read english. Maybe thats just too much too assume seeing as though the author of the question did not specify a language.
Jobo
Thanks for defending an useless answer. This isn't reddit.
Shrivara
what happens if it's in Talmud??
melaos
then make sure you put on your tallis and tefillin.
Jobo
whats next ? - "what it the book is in brail?"
Jobo
what if the book is in brail?
Bedwyr Humphreys
then dont even bother, download the audio version and listen to it.
Jobo
what if there is no audio version?
slacker
+1  A: 

First read through super fast speed reading basically getting a "summary" of the content.

Second read through slowly while working at my computer working through the samples.

This works for me anyway.

Tom Anderson
+3  A: 

It depends on the book and my familiarity with the topic. With most programming books I find myself skimming the first few chapters, just to get the diff from what I already know. I gradually slow down as I get into topics I'm unfamiliar with. I do the exercises if there are any, just to make sure I'm getting it.

I find it helps to read any exercises or quizzes at the end of each chapter before I read the chapter. This gives me a good idea of what concepts are the most important to pay attention to. As I'm reading I can focus on finding answers to the questions, and this speeds things up considerably.

Bill the Lizard
+2  A: 

Depends on how the book was written -- tutorial or reference.

Most are tutorials, designed to build on what was taught in earlier chapters. So cover-to-cover is best for these.

But, check the Preface -- it should explain how the book is organized.

Jonathan Lonowski
+9  A: 

When reading programming books, I always try to do things in this order for each major topic or chapter:

  1. read
  2. understand concepts
  3. and play with code!

That way you will never be bored, and actually coding and playing with code samples, makes understanding concepts much easier!

There's nothing like reading physical books for your eyes, but you will really miss Ctrl+F and Ctrl+C :-)

CMS
5. ..., 6. Profit!
DaveDev
DaveDev
+1  A: 

For reading don't read too much at once, stop if you feel like something isn't clear to you and pick it up later from a few sections back. And jot down notes, the best quick guide I've seen for taking good notes is here: http://www.ehow.com/how_9258_reading-notes.html

alxp
+2  A: 
  1. scan table of contents for context
  2. read front to back
  3. use an envelope as a bookmark & take notes on the bookmark of anything I won't think to look up.
  4. code when inspired
John MacIntyre
+3  A: 

I hate reading programming books. I cannot read one for more that ten minutes.

While I read I feel like I should be trying the stuff out I'm reading. (Most would agree) However I find it extremely redundant to have a book in front of my nose and access to google at the same time. I have never found a book more helpful than anything I can find with google.

Thus, If I am ever using a computer without internet (god forbid), then, hell, give me a book and I will read it front to back! But otherwise I'll stick to the internet.

In other words, I read programming books very poorly.

jjnguy
Searches are great for tackling a very specific problem, but the benefit with books (IMO) is that they can structure the material, presenting it in a way that one chapter builds on the previous one etc. The web doesn't *tend* to work that way.
Jon Skeet
I struggle to read too, and rarely need more than three words in a search to find what I am looking for. However books to tell you things you might never have thought to look for
David Sykes
@David I agree with that for sure. But now, from just browsing SO I have learned things I have never thought to search for.
jjnguy
+1  A: 

I don't really like to read physical programming books, as usually they're too bulky and most likely slightly outdated by the time you read them anyway. I usually prefer to google up some basic information on the topic such as useful short summary, tutorial or articles which are brain and attention span friendly.

Then only after i feel i have some basic ideas on what the heck i want to do or learn then do i approach the book, look up for the exact chapters, go through all the heading and usually i read the first introduction paragraph and the summary to understand if this chapters have what i need.

Only then do i take the time to slowly digest the materials. But i usually prefer ebooks as you can easily copy and paste the examples code to test it out. Without breaking your current flow :)

melaos
+1  A: 

For reading any textbook (and many programming books are like textbooks) you can use the SQ4R method given here http://www.wvup.edu/academics/learning_center/sq4r_reading_method.htm (and at a variety of other websites too with slight variations). But basically it all comes down to don't just sit there and passively read, do something.

For a programming book I would think it is more fun to "just do it" as the commercial says. Especially if they include study questions and exercises.

Also for most books I prefer a physical book. For programming books it depends. I tend to read more conceptual books. For learning the syntax of a language I tend to use online manuals + playing in the language.

Cervo
+1  A: 

It depends on the book. I use them as a reference while I code, skim them to get an overview of a language/technology and/or read particular chapters carefully when I need help on a more narrow topic.

Don't be afraid to write in your books. I use thin colored markers or pens that don't bleed. There's some books that I know I'll keep for a long time (e.g. anything by Knuth) but with others (Programming Language X y.z) I know they'll be obsolete in a few years so I mark them up. It helps me remember things and keeps me focused. Markers and pens work better than highlighters since you can make notes to yourself. There's also often a few blankish pages near chapter breaks so you can make more extensive notes there.

Dana Robinson
A: 

Honestly, it depends on the language. If it's a language I am familiar with, I tend to read just enough to get an idea of what's going on, copy the code example, run it to make sure it works, then start branching out and trying different things with it.

If it's an unfamiliar language, I read the book the "right way." IE: Slog through, word by word, dissect any accompanying code example, look up unfamiliar terms, etc. Then I'll start playing with the sample code until I feel I have a handle on what it's doing.

It can also be a matter of needing to find information quickly. If that's the case, I tend to go with option 1 above (copy code example, pray that it works, fiddle with it a bit to make it cooperate, and then move on). In a hurried situation, complete understanding isn't always required, and sometimes a physical book is faster for me than trying to track down a good example on the internet.

JustinT
+1  A: 

I read through Code Complete cover to cover then went back and took notes on the end of chapter concepts, then reviewed the checklists and took notes. Anything I didn't

grok

the first time I took notes on. This helped engrain any new concepts. I will start it again after I finish my books on Silverlight and Analysis Server.

How do I read books? Constantly. Software development is fun stuff.

A: 

I read a chapter a day during lunch break. I hate reading books and I won't read them at home so lunch break is the only time I can motivate myself (because I have nothing better to do).

too much php
A: 

While I enjoy sitting down with a good paper programming book and reading it, I find that I really don't gain much knowledge from doing so. Sitting down and trying things, with the book handy as a reference does much more for me. I've tried the online book/google approach before and it's even worse for me. It's harder to absorb information and easier to get distracted by irrelevant shiny objects... :-)

Brian Knoblauch
A: 

I read books cover to cover. If get bored - skip to the next chapter. Some chapters are really boring, so its better to skip it and read another one, rather then putting the book off completely. You can always go back to skipped chapters - it's a technical book, not a novel :). If I skip too many chapters, it means the book is not as interesting as I hoped, so I skip the entire book and read another one. Again, it's not a novel. It's better to skip a book and read another, then forcing yourself reading a book you don't like. Not all books will match your learning style. Find the ones that match.

I don't code or do exercises when I read though, despite overwhelming advice to do it. I am generalist who likes to read books on lots of different subjects to have a high-level view of the technology describing in the books. When a real need arrives to know the details, I remember where that detail is in the book and then I read and do examples just of the relevant section.

LikeToCode
A: 

Page by page...

Tom