Maybe you can make a ‘Best Buy Guide’ section or a ‘Must Read’ section where other programmers can vote for their favorite books?
The Tufte books are the best. I noticed they are first on your shelf.
Two of my favorite books that you’re missing are Stroustrup (C++) and Stephens (TCP/IP Illustrated). If you get Stroustrup (3rd edition or later) I think you’ll find it refreshing, maybe C++ won’t be as painful as you thought KR was (from your podcast). It’s more than a language primer, it’s a guide about efficiency and style. I still learn something every time I pick it up.
I have Safari Online; it’s better than books because you can do a full text search. And cut and paste code (good for tutorials). And you can read part of a book; if it turns out to be bad, you only wasted your time, not your money.
I’ve read Code Complete and agree that it is an excellent book with information that you will not find on the Internet–at least not in one easily accessible location. I would like to read the other books from your recommended list too.
I can’t agree with you more. The best way to coding is to actually try it and get your hands dirty.
Programmers, I’m actually reading books when it comes to learning how to program. Its because I’m a newbie, and just started learning OOP languages. And honestly, I don’t understand how to program yet. That’s why I’m still giving my trust to the books.
Is this the right way of learning programming? Because I don’t yet understand the basics of programming that’s why I’m reading books to at least give me the basics on programming.
If you have any suggestions that will help me studying and mastering programming, please tell me… Reminder, I’m a newbie so don’t give me those complicating task yet.
Also being loosely typed is not a feature of an OO language. In fact strong type-safety is one of the benefits of a good OO language since when you pass objects around you always know what class, super-class or interface they implement.
I think you would be better off trying Java or C# as a useful intro to OO.
I think some of those books are mine.
The subject of this article was news to me, since right now I’m knee-deep in Head First Design Patterns and just finished C++ Coding Standards (which isn’t about coding standards at all). I’ve learned most of my programming skills from books (and by actual coding). The Internet is great, but, unfortunately, for programming information, it actually kind of sucks. For every Good Site with useful information, there are about 200 Rotten Ones. And those rotten ones are, for some reason, easier to find.
My favorite book by far is “The Tao of Objects” by Gary Entsminger(sp). Sadly, it’s out of print, but using examples in Turbo Pascal and C++, it presents the core concepts of OOP in a rather unique way.
What’s the book in the picture in the lower right with the white spine?
“The internet has certainly accelerated the demise of programming books, but there is some evidence that, even pre-internet” – the passage you quoted cites its source from 1999 – c’mon dude 1999 is the pre-intenet era? 1999 wasn’t even pre-WWW, let alone pre-internet! Also, why are you surprised that most programmers are aliterate when most college educated people are aliterate.
You can get by writing trivial programs from examples on the web. But when you start developing enterprise-level, robust software, you’ll need to know your stuff better than what a snippet here and there can provide. Not reading is not just a problem in the programming field. It’s a systemic problem across our culture. People don’t read anymore. And we’re all getting dumb and dummer. If you do have the sense to turn off the mental chewing gum (TV) and pick up a book, you’ll seem like a genius to the ditto heads around you. There is a common notion that people from hundreds of years ago weren’t as “enlightened” as we are today. I have news for folks who hold that notion: we are a dumb society! Because we let others tell us what the news is, and how to program.
as a programmer in the newer generation, i learned that the easiest way to learn to program is to take apart a program without any help. this lets me know what is happening, why that code is there, what it relates to, or if it is just a really huge program that could have a lot taken out of it and work better than before, that its made by microsoft.
After reading this, I think I may dispose of some of my own “programming book pornography”. I’ve only been out of college for a year, but I have a feeling I won’t be opening these books again anytime soon. More of a .NET guy now as opposed to C++ and Java then.
I have all those books. I guess I should read them.
Does just having those books on my shelf make me a better programmer?
Is there any correlation between good programmers and books they owned/read?
I had a pleasuring of hiring a person based on his work experience but soon realized that his skills are sub-par.
So I recommended him a reading list - closely matches with your list except my list included ‘Design Pattern’ and ‘Refactoring’. The response I got is pretty amazing - he did not know any of these books. None.
That signaled me two things
- He did not have desire to better himself.
- He treats his employment as a job.
I put ‘Pragmatic Programmer’ as the first book to read but I haven’t yet got any feedback from him so I’m going to assume that he did not purchase or read it. He treats his work as job - come in the morning and push some keys and collect paycheck. I don’t know how many programmers in the wild has similiar attitude.
I personally believe that we need to separate the computer books to two broadly defined categories - a) API-baed b) know-how
API-based books are the one you will throw out in a couple of years. ‘Know-how’ is the one you will keep forever.
One critical point to make is that reward factor of ‘know-how’ books. There is no instance gratification from these ‘know-how’ books because it is timeless advices. So it won’t answer your questions to how to write socket programming. But it will teach you how to design network based program.
BTW - loved the fact that you included ‘facts and fallacies’. It is one of my favorite books but not well publicized. I think everyone should read it.
Great list. Also would recommend:
A Pattern Language (Christopher Alexander), just for the sheer joy of reading it. No need to read it all at once.
Working Effectively With Legacy Code (Michael Feathers). Amazing, life-saving book for those of us who have this challenge.
Wow, all these comments and no one’s mentioned “Structure and Interpretation of Computer Programs” (full text online: http://mitpress.mit.edu/sicp/full-text/book/book.html).
No matter what language or technology you use to develop programs, SICP will make you a better programmer, and critical thinker.
Programmers seem to have stopped reading books.
The market for books on programming topics is miniscule compared
to the number of working programmers.
I would not say that programmers have stopped reading “books”. They are probably reading less “programming books”.
Programming is an activity where it’s increasingly more useful to read “non-programming books”, dealing with subjects that would have been considered peripheral a few years ago.
Think about the importance of communication, organization, process optimization, mental models (ie: refactoring your wetware) in any software project today!
It’s tough to drop down money on some of these books especially when just a few pages into the book you can see that the author never read a book like Code Complete, etc… especially textbooks from college courses.
Pretty annoying having to spend $90 on a textbook for a class when you can see that the writer was just plain awful at their craft.