Programmers Don't Read Books -- But You Should

You are prematurely optimizing your learning experience. Please step away from the keyboard.

http://tailguard.blogspot.com/2007/10/please-buy-some-books.html

The trend that I notice is that as one becomes more adept, the required reading becomes more abstract. You move from “Beginning C++” to “The Pragmatic Programmer” because when you’re a nooblet, 95% of “Beginning C++” is new and fresh and only 5% of “The Pragmatic Programmer” even makes sense in application. Eventually only 5% of “Beginning C++” (if that) exists outside your brainpan, but 95% of “The Pragmatic Programmer” really resonates.

http://mitpress.mit.edu/sicp/

I only read books when I am bored or have downtime between jobs. Some have substance others, once read, lose their value and begin to take up valued shelf space.

Internet search whatever you want to learn and you’ll have resources for any topic right at your finger tips. Want a book about it, buy a printer and a stapler.

I’ve started including my favorite books in my resume. I think it really helped me get my last job. It really lets them know your serious about what you do. Here’s what I have in my Resume within my Technical Proficiency section.

Influential Books

Code Complete, The Pragmatic Programmer, Lean Software Development: An Agile Toolkit for Software Development Managers, Implementing Lean Software Development: From Concept to Cash, Don’t Make Me Think: A Common Sense Approach to Web Usability, The Non-Designer’s Design Book

Hummm, programming books…

  • Mike Abrash books help a lot to understand how to deal with CPU caches, pipelines, etc. Even it was about old Intel processors, it still apply for ARM CPU, modern multiple cores CPU issues, GPUs, and good old 6502 for the NES homebrew game coders :slight_smile: Just a matter of a way of thinking.
  • The “Red dragoon book” is also a old but yet good book to learn how to put together a lot of theoretical stuffs (finite state automatons, grammars, data structures) to make a working software. And by the way, good to discover data structures.
  • Some books about LISP (can’t remember the titles, somebody ?), that behind LISP, teach the functional programming. As object programming, functional programming help to have organized and solid code, just choose your weapon. The more weapon you know, the more armed you are to fight real-life beasts.

Alex

I prefer books over the Internet; however, I usually use the Internet simply because it’s cheaper. I don’t want to spend $80+ on a book when I can get nearly the same content for free. Granted, I like the organization and formal learning from a book.

I do own several programming books, but I usually only purchase a programming book when I know nothing about the language I’m investigating. Once I have a firm grasp of it, I ask Google for anything else.

The other advantage of having the books on your resume is that it gives you something to talk with the interviewer about, as they always seem to notice the list and bring it up.

Of course that only works if you’ve actually read the books :stuck_out_tongue:

What, no “More Programming Pearls”?!

Books are good.

I tend to use both the WEB and teaditional books. What doesn’t work fer me are “books on the web” - such as O’Reilly Safari (which I subscribe to). I tend to use that service as a paid for preview service. If I like the bit I see on-screen I shall buy the book.

There are some really poor books on code development - unfortunately - and I have spent a small fortune on a pile of obsolete books I found were very poor - AFTER I had purchased them. I usually invested in them since I put my trust in the publisher. The publisher plays a big role in this - I expect aggressive quality control and editing to keep up standards. Trust is hard won and easily lost.

What, no Programming C by K R?

I have taken to grouping these texts into two categories. There are “programming books” and there are “development books”.

Programming books are those that focus on actual code and almost invariably about a single language. Development books are about techniques, practices, and management. These are the books that are universal, that know creating software is a lot more than just writing code.

Programming books are useless. Development books can be priceless.

first there was dialup access I had to pay for per hour (aol, prodigy…)

I was very glad my university gave me free access

then there was flat-rate per month, or “AOL FOR 200008475 free hours for the first month”

then, BROADBAND - YAY!

Now everyone has access to everything. First, programming books. Tomorrow, ALL BOOKS! hehe

Books are definitely not useless - they are just not as important and/or necessary as they used to be. However, one thing books make possible ( other than the benefits derived from their portable nature ) is that they can lock your focus. Trying to learn stuff on the Web or even via PDFs and whathaveyou is a challenge in fighting off distractions.

A collegue at work let me borrow Head First Design Patterns. I found it an enjoyable read (which where dev books are concerned is rare!) and patterns are now a fave subject of mine.

Nice to see it on your shelf Jeff.

Jeff,

Despite your past comments, I bought the book you co-authored. I’m still relatively new to ASP (spent much more time so far on the raw C# and Winforms) and I thought it was great. Sure, you can do web-searches for stuff, but it’s rare to be able to dip into a blog or other resource that makes you want to try and improve aspects of your coding. Plus, I really like to be able to have some time away from the computer screen just absorbing new stuff, so books win there for me…

So don’t be so hard on technical books!

Nij

I’d like to add a book that every programmer should read, How Not to Program in C++. They say you learn the most from mistakes. I’d rather learn from someone else’s. I wish they would release similar book for other languages.

I have a lot of programming books but I will admit that I buy very few anymore - mostly for the reasons already mentioned in the blog post. I didn’t see one key reason though: any given language/framework/technology book is quite likely to be out of date within six months to a year, yet online info often stays much more current. I still occasionally go back to even out of date books for reference, but once I am up to speed I rarely pick it up again.

I do sometimes pickup language/framework books when I want/need to get up to speed on something, but I am fairly picky about what I choose and I often buy used copies instead of new copies. I am much more likely to buy a good book on design or best practices than I am to buy a book on specific technologies.

One of my favorites hasn’t been mentioned:

Object Oriented Design Heuristics by Riel - very academic sounding title, very down to earth content applicable to most OO languages.

Another that I think I am going to buy is “Design Patterns - Simply”. I like their online content and their approach:

http://sourcemaking.com/design_patterns

I do have Code Complete, but most of it seems to be practices I have already learned - I wish I had read it first before having to learn them the hard way. It is the 1993 version, but I don’t see the passage mentioned (it might be there somewhere - I am too lazy to do more than a cursory search, another benefit of online material).

Finally, I am sure someone has already mentioned it, but just because we don’t buy many books anymore doesn’t mean we don’t read - there is plenty to read online. Also, actually getting your feet wet with a technology is superior to just reading about it - and necessary.

This has probably already been said but I don’t have time to read all the comments first. To “learn programming” you have to have some continuity in what you’re learning, you don’t get that with 500 word How To’s or posts, or at best 1000-2000 word tutorials on-line. The internet is by nature a huge source of fragmented information that requires a lot of time searching in order to knit together in your brain a cohesive, unified (and useful) bundle of information. I find I get a lot more of the basics, background, fundamentals in my books. I use the net for the surgical precision I need to fix my problem du jour, one-off exceptional-case solutions, problem resolution, da da da, it was made for that. But to find a single place to sit down and learn in one (maybe two) book what would take you 100 web site hits is well worth the $39, $49 I pay for a book. Besides, I’m relying more on the net for answers these days I find I’m losing my sharpness. It’s like being given the answer key to those math problems you slaved over in middle/high school. I see more and more the wisdom of witholding that, you have to think. With the answers, err Web, I don’t have to think, I find someone else who thought for me and copy their code - it’s great! and bad. Not sure if books fix that problem, but I know with the web at my fingers, less thinking and more copying is happening, not just me, ask around.

To learn C, even as a first programming language “C for Dummies” is brilliant. He even offered free extra chapters online because they wouldn’t fit in the two volumes (and claimed he wanted it bound sold as one book but couldn’t publish that). It’s what I learned from, and I’ve had offers from the big players with infamous hiring practices fresh out of school.

It does have some concepts that are widely applicable, too, but the focus is on learning how to make C go. Not how to make C go efficiently, not how to make sound architectural decisions (beyond a certain point). It’s a bit dated, with sample code that only runs in pure DOS with compilers using long-deprecated functions and formats that aren’t valid C99. But it does what it advertises and it does it well: read it and you will know C thoroughly (and have a very minor grasp on what C++ adds/changes) and will be able to understand strange edge-cases and and the strangest, most convoluted code; fake classes like a champ; understand common data structures and fundamental algorithms like quicksort. I have never found pointers in the least bit confusing; maybe I’m far more brilliant than these Internet people, or maybe this guy just explains it well. Or both. I think both :).

I would never claim that every, or most programmers should read this book. It’s not anything close to Code Complete in importance. But I would definitely recommend it for somebody trying to learn C, despite the datedness. And it’s far more entertaining than any of those other books.