Take the 2-minute tour ×
Personal Productivity Stack Exchange is a question and answer site for people wanting to improve their personal productivity. It's 100% free, no registration required.

I'm wondering, how do you read programming books? I always don't do the exercises, I just read the book.. Do you read while sleeping or you really take the book and study like you do in high school and highlight words ?

share|improve this question

9 Answers 9

up vote 10 down vote accepted

It's up to what I expect from that book.

If I read it because I want to know how to do something I never know it before, I will read and try to code all along (and also do some exercise). That give me some taste of that thing.

If I read it because I want to know some concepts behind something, often when I try to learn something new, I will focus on why they do these and those.

So I think it up to you. You should set your goal before read those books (in fact, you should do this before do everything). Then try to reach that goal, instead of just read it without direction.

share|improve this answer
    
When I read a book to learn a new concept, I sometimes try first to solve the problem myself. Then the book makes more sense to me, because I understand better why is author doing some things. If I didn't try to solve the problem myself, some steps in the author's solution seem arbitrary. But if I did try, then I may be aware that my first simple attempt caused some problems, and this author's code is a solution for them. –  Viliam Búr Jan 7 '13 at 14:24
1  
+1 for setting a goal for what you want out of it before starting. Like choosing what (chocolate) you're going to buy before you get to the store... –  ataulm May 8 '13 at 11:02

All great answers here - just want to add my own. Always read the review of the book from Amazon or somewhere else BEFORE starting reading the book. People generally recommend certain sections of the book, other better books etc. If there is a better book out there, then why study this particular one.

share|improve this answer

There is a great book that describes that problem (and many others) - it's called "Pragmatic Thinking and Learning: Refactor your wetware" by Andy Hunt, author of Pragmatic Programmer (another great book!). He writes in a general manner but his book is addressed to software developers.

Basically Andy proposes a process of deliberate reading as a way of making reading more effective. In particular he describes a process called SQ3R that is an acronym for the steps you need to take:

  • Survey - scan the table of contents and chapter summaries for an overview.
  • Question - note any questions you have.
  • Read - read in its entirety.
  • Recite - summarize, take notes, and put in your own words.
  • Review - reread, expand notes, and discuss with colleagues.

It's all about making reading a conscious process instead of reading random books and forgetting them quickly.

For example let's say you are Java developer and want to read a book about C#. You could:

  • start by flipping through the table of contents and familiarizing yourself with a book
  • become curious about content, ask yourself questions like: "what's are differences between Java an C#", "what is this LINQ I heard so much good about", "what are conventions of standard library" etc.
  • now read this book in it's entirety, parts that are not interesting to you are worth at least skimming through - so you can know what you do not know :-)
  • than important - try to use information from this book, try to write a program in this language from scratch - preferably different from book exercises. During that processes you will get back to different parts of this book, you can make some notes, highlight important parts etc. It's all about turning this book into practical knowledge instead of pale memory.
  • at last you can talk through content of this book with some friends or on some internet forum, check what other people think.

I also agree with other comments that you have to read book with certain goal in mind. If your goal is to use certain language / framework / tool at hand in your next project or to get a job than technique I've described above is great.

On the other hand if you just want to familiarize yourself with some concepts without going to deeply into details I believe quick reading through it and taking some general notes is good enough. When need arises at least you know what you do not know and can easily catch up with your knowledge. For example I've done so with "REST in practice" as at the moment I didn't need to create any REST services but now I'm well aware of concepts, practices and how to put pieces together if opportunity arises (and I can understand what are all this flame wars on twitter all about ;-).

share|improve this answer

Personally, I hate the way most programming books are written. But regardless, as much as I'd like to be able to just read them like other books, I generally don't get much out of one unless I'm using it next to the computer and poking around the software actually trying stuff.

share|improve this answer

You don't.

But, if you are reading a programming book, you should ONLY do the exercises and read the material afterwards.

You should use Google & documentation to build what you want to build in tools of your own choosing. Books won't teach you much: building real applications will.

When you build real applications - you learn how to FIND information - instead of fill yourself with mostly irrelevant information that you'll probably forget (unless we're talking about fundamental programming constructs - in that case - it's ok).

Programming itself is very simple: what's hard is building real-world applications in various languages and platforms.

Teach yourself programming in 10 years.

share|improve this answer
    
I'd say material is useful, but as a complement to explain the exercises. Similar to captions on a picture. IMO, the best programming book I've come across was Learn Python The Hard Way, which cut out all the fat, and got to exercises, answers, and a quick explanation of the concepts after giving the exercises. –  Muz Jan 8 '13 at 9:10

I don't read programming books at all i prefer it either verbally or a video tutorial and practicing it side by side

share|improve this answer

Disclaimer - I'm writing this from the point of view of someone who can already program, if you were learning your first programming language the answer would be very different.

I avoid doing the exercises because I believe that the structure of programming books hasn't really updated to reflect the rise of the internet (oh they put their source code online and such but...) So the books are trying to give you the history, the philsophy, and the syntax and the semantics all at the same time.

When I read a programming book I make sure that I've first learned to do at least "hello world" and hopefully a few of the Project Euler problems in it. Then I go though the book to get a sense of the history and philisophy of the language - because that's really the great value of the textbooks - so that you know not only that, to give a silly example, Java doens't have explicit pointer arithmatic, but also why it doesn't, and the approach that the language would like you to take.

I think that the textbook is a vital tool for getting one from a basic familiarity with the lanugage to a deeper understanding. But for exercises and help and understanding at the low level - they have nothing on resources like Rosetta Code, Stack Overflow, Project Euler, and even Wikipedia.

So yeah, my short answer is: read it like a novel. Admitedly a boring one.

PS - to avoid controversy, if I read something in the textbook that I don't understand, or that I want to check - I certainly run and play with the code samples...

share|improve this answer
    
+1 For "But for exercises and help and understanding at the low level - they have nothing on resources like Rosetta Code, Stack Overflow, Project Euler, and even Wikipedia. " I also try to compare the code in a language I know to the code in the language I am trying to learn. –  Wishwas Jun 12 '13 at 9:06

Learning a programming language is similar to learning any language - you can't learn well from reading a dictionary or textbook on grammar. You learn by doing it.

The brain is a pattern recognition machine, not simple data storage like a computer. It's difficult to learn it without applying it somewhere.

share|improve this answer

I am always trying to extend examples from the book; imagine you just got a huge box with a construction set; will you read the manual until you are asleep or will you try to build something right away?

I consider this to be the one of the best things about programming - even after 25+ years of development I am still enjoying doing it ;)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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