Programmers Don't Read Books -- But You Should

If you can’t afford to purchase books, check your local library. Most libraries can borrow books from Interlibrary Loan or WorldCat. See http://www.worldcat.org/. An example, Code Complete is showing in 850 libraries world wide. Usually you can borrow these for little or no cost.

By declaring that you will never read Knuth’s The Art of Computer Programming, you declare yourself to be a hack coder, not a programmer and certainly not a hacker.

The details of your “damning with faint praise” comments about Progamming Pearls confirms this.

You see, computer science is what makes the difference. Without it, you’re technician-class.

(The notion that all important “low level” algorithms are already available in libraries is nothing but a thin rationalization, BTW.)

The Art of Computer Programming is a must for anyone who wants a deeper understanding of structures and efficient (as in O(x)) algorithms.

If you are doing CRUD and using libraries for anything slightly more complex, you can skip it. But the idea, I thought, was becoming a better programmer.

“Employ your time in improving yourself by other men’s writings, so
that you shall gain easily what others have labored hard for.”
– Socrates

I love reading but it takes so much effort and time - but there is no better alternative.

The problem I think, is that most programmers have this ‘nobody can teach me anything’ mentality.

Personally I like to approach a subject and immerse myself from a higher level into the nitty-gritty details over time, to get an overview first and the philosophy behind the thinking - as was mentioned, the Why? and not just the How?

I also enjoyed Code Complete and I am busy with Booch’s OOAD book as well as Watts Humphrey’s Managing the Software Process.

It is tough to find the energy to read after a hard day in from of your IDE, so I have resorted to reading in the mornings before work. It works well for me and it gives me a sense of achievement, even before I step out of my house!

You are not at all interested in computer science (as you have explicitly declared, which is understandable since you are a self-taught coder).

There’s nothing wrong with that, in itself.

There is something wrong with you pretending to be some kind of hotshot pundit about programming, when you have already declared yourself to be a mere coder.

Your blog seems to have very wide appeal; apparently there are a zillion CRUD coders out there who view you as God of hacks.

Does that help your ego? You know the truth.

You know in your heart of hearts what is, and is not, true of you: your technical expertise is zero compared with the real experts.

All the books that you mention are relatively old, not of course to imply that they are any less relevant. I was wondering which books from say, the last three years, you would recommend?

Is this a joke question? I’m concerned. I can’t tell.

Actually this was a serious question, perhaps not well phrased.

The top five books that you have listed are all at least 3 years old;
– Code Complete 2 - 2004
– Stop Don’t Make Me Think - 2005
– Peopleware - 1999
– Pragmatic Programmer - 1999
– Facts and Fallacies of Software Engineering - 2002

I was enquiring as to whether there are any books that have been published recently (2006, 2007, 2008), that you would recommend which may have the potential to be timeless classics.

Surely the whole computer book industry has not put out complete drivel since February 02 – 2004.

I ask this question, as my sorting the wheat from the chaff reading time and money over the last couple of years has been significantly reduced. As a result, I am always looking for good recommendations for new books in the field to read.

You and I share a lot of the same books. I see many that I own, in your collection. I have about 7 or 8 shelves worth here. In your collection, I HIGHLY recommend the following for everyone:

Peopleware - You’ll read this and swear it was written about your company

Code Complete - Absolute must

Applying UML and Patterns is fantastic

The Head First Design Patterns book is pretty good, and the Gof book is classic but a little more academic so a harder read for people

Rapid Development is great

Showstopper was a really enjoyable read

And I’m laughing at the “BASIC Computer games” and “More…”. I used to have both of those; and all games were input onto my Atari 800, and my school’s PDP-11. Yikes! :slight_smile:

Also recommended, but I don’t see on your self is Feature Driven Design. Interesting project methodology book.

hmm, do i buy code complete or do i buy call of duty 4? decisions, decisions…

Funnily enough I’ve bought way more programming books recently - now that many of them are coming out of my own company’s revenue - than I did when I worked for a corporate. Spending money was too much hassle in the big firm!

One “classic” book that I don’t feel fares as well as the others is the Pragmatic Programmer. I own it and have read it, as well as Code Complete and some of the others on your bookshelf but PP just doesn’t seem to hold up on re-reading as well as some of the others. I need to maybe read it again and figure out why.

To the person who was asking about good .NET books, I’ve had good results with several of the Apress books - CLR via C#, Pro C# and the .NET Platform and the Windows Forms and Custom Controls one is quite good too.

“The market for books on programming topics is miniscule compared to the number of working programmers.”

At $50 or more for a good book, many working programmers must make a purchase decision where not buying the book is a valid option. At $20, you would see more books being sold…

Robert S. Robbins See http://www.codinghorror.com/blog/archives/000117.html

Anyways back on topic. I have held for a long time that the best way to pick a new tech employee is in the interview ask them the last technical book they read, or are reading, and the 2-3 blogs or magazines they read regularly.
If they actually read them they should not have any problems to quickly answer it and if they actually reading then they are probably better then most of the population and are at least interested in learning new things.

Your recommendations have yet to be wrong, so you can enjoy more commission coming your way :wink:

I like the functionality to be able search “My library” via:
http://books.google.com/

Granted not all (or many) books are indexed, yet. I consider this to be a free version of Safari, using books that I own:
http://safari.oreilly.com/

Let’s have an annual social gathering to burn our obsolete technical books. Imagine the size! Call it the programming pyre.

I’ll bring the marshmallows.

I used to buy a lot of books… Now that they cost 40-50 bucks and it’s coming out of my pocket I don’t anymore… I wish I could afford them but it just doesn’t work at those prices…

-jfc-

A really good book is an excellent way to become familiar with a new technology.

For example I found “Developing ASP.NET Server Controls and Components” http://www.amazon.com/exec/obidos/ASIN/0735615829/nikhilkothari-20 invaluable for getting a really good understanding of ASP.NET 1.0.

And I would be interested in books of similar quality and depth for new technologies such as WCF, Silverlight, etc.

Jeff,

Actually, “For Dummies” series quality has increased to the level of other “beginning/intro to language X” book.

Now on the topic of “Sams Teach Yourself”. I like those books because I can pick up a new language (in a nutshell) pretty fast and advance faster than buying the best introductory books.

I wouldn’t buy either series. But I’ve been borrowing a large number of those from a public library near my house.

For example: I don’t know CSS. I borrowed Sams Teach Yourself CSS in 10 minutes. The book is small and thin. I learned the basic intro of CSS in a nicely structured way. It’s not enough to be a professional, but it’s good enough as a starting point.

I see you have lots of books in that shelf. I’m guilty of having tons of books too. I have tons of .NET books (most of them I got it for free during my internship at Microsoft). I also have several J2EE, Perl, Ruby, PHP and Python books. I’m in the process of selling them for cheap price.

At one time, I got stressed out for having to catch up with these technologies. But lately, I realized that most of the books I have don’t give much value. I have GoF Design Pattern book but I rarely use most of the DPs. I probably only use few of them. I have Refactoring book (from Fowler) but yet I failed to see a significant value out of it. These books teach us how to patch C++/Java/C#.

What we’re missing is tutorials/books on how to design tools like “ls”, “echo”, “cat”. Tools that are usable and live forever (if engineers forbid them). So since last week, I decided to get back to the root. Start reading old books. Luckily, my university has these old books so I can borrow them with no hassle.

These books are thin, but they teach me more than any software engineering books out there. They do this with less complexity, less noises and to the point.

  1. The UNIX Programming Environment (Kernighan)
  2. The Practice of Programming (Kernighan)
  3. Software Tools (Kernighan)
  4. The Elements of Programming Style (a 1978 book)
  5. Effective Java (partly because it is work related)

After interning at MS (on the Oslo team), I lose my appetite of doing any .NET (or, to some extend, Microsoft tools) stuff unless if it is work/highly-paid/consulting related. I know I’ll have to learn new technologies, but I chose to learn them on the job.

Sorry if some readers think that I’m doing disservice to the IT field. I’m not the guy who decided to buy another J2EE app-server, or yet another CMS/CRM from Microsoft while simple open source software out there work fine.

Got to say I love programming books but it is a case of finding the time to read them especially when it’s learn a new programming language (in detail), a book like that will take you maybe between 5 and 10 times as long to read page for page compared to a novel. Especially if you are doing the excercises and so on.

Maybe companies should offer personal development time where you can do this kind of thing. They get a better programmer, you improve your skills without eating into what free time you have (which you probably spend a lot of on the computer).

To know “how to” - Google
To know “why”… - blogs of all those egg-headed software devs!

Those suckers spend precious hours of their lives reading voluminous books and spit out the very essence in effortless pills in hope of luring more ad-cash generating traffic with their wisdom;)

Cheers

One other thing that may be quashing the sale of books is the speed at which the industry changes. The lead time for good books is really long, and the length of time the books stay up to date may be short.

Apple no longer publishes their SDK through Addison-Wesley, as they did years ago with the Inside Macintosh series. Instead, it is all web / PDF documentation and is updated three times a year.

Call me old fashioned, but I do still like books. You can cover a lot of material in a book, and high-speed visibility to a lot of information. That’s harder with screen-based documentation.