Posted January 6th, 2015 by adminguy
Is it me or have programmers stopped reading books? You may still find The 4 hour week in the hands of a wishful programmer, or you might steal a glance upon someone reading The Lean Startup and tell yourself this person has a startup idea up his sleeve. But you will rarely see developers reading books like Code Complete, The Pragmatic Programmer, The Mythical Man Month, or Effective Java. These sort of books which programmers, a decade back, loved to read and discuss by the water cooler seem to have disappeared from the horizon of younger developers. No, I don't think it's just me. You can read Jeff Atwood lamenting on the same issue, here.
Some programmers have blogged
about why they don't read programming books, and the reason at first glance seems to be a good one; programming books get dated real fast, sometimes as soon as they are published. A book on some LoggingFramework 1.0 is certain to get dated the moment it is released, however that's not true for all programming books. Classics like the ones I have mentioned above have a really long shelf life - they are relevant to all programmers of all ages and and platforms - it's the books on specific technologies or libraries, that date fast.
I think the real reason why many programmers don't read is because they have stopped thinking of themselves as software craftsmen or craftswomen. Books like The Pragmatic Programmer, or The Mythical Man Month really address the craft of programming. Developers have become more interested in a quick fix solution which will take care of the problems they are facing for this Friday's release, and you don't need a book for that, you need a net connection and StackOverflow. Now I don't have anything against StackOverflow, I think it's a great idea and an awesome community, but StackOverflow should be used to fill in the gaps of our knowledge, not acquire knowledge in gaps.
To really excel in our craft we have to know what the experts in our field are saying, we have to know what they think and how they think. Sitting at the feet of a master is the fastest way to learn. A good book has the power to teleport us thousands of miles at the feet of the masters of our profession.
If you don't read much but have always wanted to someday, then the following list of timeless software development classics are for you. I've made a small list of just six books, so you will be able to read them even if you read a book every two months. If you have always wanted to read, then now's the time to start.
Like all areas of expertise, software professionals have gathered a lot wisdom over the ages. But unfortunately this wisdom is not at university CS programs, nor is it properly codified anywhere. This book is an attempt by its authors to codify and share the wisdom they have acquired over the years writing code and designing software. This book is a must read for anyone who wants to raise the bar of their programming skills.
This book is an encyclopedia of programming best practices (along with tons of code samples) gleaned from academia and industry. The only downside of this book is it's size of 900 pages. But them again it's 900 pages of extremely useful stuff.
Robert C. Martin, popularly known as Uncle Bob has written a masterpiece which I will describe in his own words - Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. I don't need to say more. This is a problem that is plaguing our industry and only promises to get worst. A must read for everyone who wants to learn how to write clean code which doesn't collapse like a pack of cards with the slightest breeze.
I remember a time when our team was running a few features behind schedule for an important release. When the manager found out, he grumbled and shouted, let's add more people to the project. If any of you are smiling and nodding their heads, you are right, adding more people a few weeks before the deadline only served to delay the project even more. How I hope he had read the Mythical Man Month. Just like The Pragmatic Programmer contains programming and design wisdom the authors learned over decades of work, this book contains hard earned management wisdom the author learned over the duration of his work. This book is a must read for all software developers, whether you are a manager or not.
And finally this book is a masterpiece by Joshua Bloch on writing good Java code. If you are a Java developer, this book will give you a wealth of information which will not only make you a better programmer but also promote you to become a team lead.