10 Must-Read Books For All Programmers - InformationWeek

InformationWeek is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

IoT
IoT
Software
News
5/15/2016
12:06 PM
100%
0%

10 Must-Read Books For All Programmers

The road from newbie to professional developer can be long and bumpy. Here are 10 books (plus a few more) that can help guide you on the journey to success.
Previous
1 of 11
Next

(Image: Unsplash via Pixabay)

(Image: Unsplash via Pixabay)

What is programming? Is it an art? How about a craft? I know, it's a profession, right? If your answer is that it is (or at least, can be) all of these, then it's likely that you're interested in writing computer programs for more than just an income. If you want to be a programmer who gets better with time, then there are books that can help you.

I know that reading a book is an archaic activity, but I'm OK with that. There are a lot of archaic activities that still produce good results and in the case of the books on this list, the results can be very good, indeed. The good results I'm talking about have to do with becoming a better programmer -- and I'm defining that as being better at creating better code, being better at getting a job as a programmer, and being better at ultimately becoming someone who can lead teams of programmers.

Now, there are a couple of things you need to know about this list. The first is that it's my list. I asked for suggestions from several folks (and I've given a couple of people credit for their responses) but this doesn't come from a fancy survey or any scientific process at all. These are books that, in my more than 30 years of writing code, managing teams of developers and testers, and running testing labs and operations for four publications, I think people who want to be better programmers should be reading.

[See Top Programming Languages That Will Future-Proof Your Portfolio.]

The next thing to know is that I could have gone on with the list for several more entries. Three books, in particular, didn't make the list, because I thought they were just a little too esoteric, but they had a huge impact on me. I'll share those three with you if you make it to the final part of the article. As it is, there are 14 books here, but they fit into 10 nice packages, and it's my list. So there.

Finally, the order of the entries doesn't indicate any sort of ranking, though the first book (or set of books) is what I consider the foundation document for modern programming. After that, feel free to assign any ranking you'd like.

Although it's my list, I'd love to know about yours. Which book or books do you recommend to up-and-coming programmers or for seasoned coders? Which book or books had a major impact on your career? I'd love to know what the books are, and what impact they had. If there's enough interest, we might even look at putting together a reading list and some sort of group discussion.

Happy reading.

Curtis Franklin Jr. is Senior Editor at Dark Reading. In this role he focuses on product and technology coverage for the publication. In addition he works on audio and video programming for Dark Reading and contributes to activities at Interop ITX, Black Hat, INsecurity, and ... View Full Bio

We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Previous
1 of 11
Next
Comment  | 
Print  | 
More Insights
Comments
Threaded  |  Newest First  |  Oldest First
ClementO702
50%
50%
ClementO702,
User Rank: Apprentice
5/16/2016 | 8:41:49 AM
Missing one
This is the best start for anyone thinking of programming -- How To Think Like A Programmer by Paul Vickers: https://www.amazon.co.uk/How-Think-Like-Programmer-Bewildered/dp/1408065827
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
5/17/2016 | 7:48:34 AM
Re: Missing one
@ClementO702, thanks for the pointer -- I'll check that one out. I agree that a key piece of becoming a developer -- rather than simply someone who knows how to write code -- is learning the thinking process that goes along with solving problems using programming.
erlrodd1
50%
50%
erlrodd1,
User Rank: Apprentice
5/16/2016 | 9:22:25 AM
Brooks' newer book "Design of Design"
Everyone knows Brooks' book "The Mythican Man Month", but few know a more recent book, "The Design of Design". In my career, I was often asked by management, "How can we teach someone to design?" It's a tough question. This book tries to do that. At first read, it seems like a meandering book from a life full of experience. But on reflection, I think it really does start to teach what it is to "design' which is of course, quite different from coding. There is an appendix on OS/360, but also on building a beach house and doing a home extension. These real life examples bring to life "design".
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
5/17/2016 | 7:59:38 AM
Re: Brooks' newer book "Design of Design"
@erlrodd1 I'll take a look at "Design of Design." It seems like the whole world of design is getting a much closer look from software developers -- "Design Thinking" is a term I hear used a lot when companies are talking about their development discipline. Learning how to not just design, but design well, is going to be a critical skill going forward.
Stephane Parent
50%
50%
Stephane Parent,
User Rank: Moderator
5/16/2016 | 10:31:22 AM
Psychology of Computer Programming
I would add The Pyschology of Computer Programming by Gerald Weinberg, to the list. Like Brook's Mythical Man Month, it still provides truthful insight into the psyche of programmers and their art.
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
5/17/2016 | 8:53:07 AM
Re: Psychology of Computer Programming
@Stephane, I'm not really familiar with that one -- would you say that it's aimed more at the programmer trying to become a better programmer or to the manager trying to understand the programmers he or she is managing?
StéphaneP117
50%
50%
StéphaneP117,
User Rank: Apprentice
5/17/2016 | 2:23:07 PM
Re: Psychology of Computer Programming
I read it as a programmer and found it useful to understand my colleagues and myself.

I certainly think managers could also get some insight into cat herding.

I would say the book is targeted at both audiences equally.
jries921
50%
50%
jries921,
User Rank: Ninja
5/16/2016 | 12:10:38 PM
While The Prince is an interesting choice...
...it strikes me as most useful in identifying and defending oneself and one's colleagues against the dark side of office politics.  There are already too many Machiavellian princes in this world; what we need are ways to make the game less profitable.

 
Curt Franklin
100%
0%
Curt Franklin,
User Rank: Strategist
5/17/2016 | 8:57:48 AM
Re: While The Prince is an interesting choice...
@jries921 I agree that too much time is spent (and too much energy wasted) in many organizations playing silly political games. I think the reason I like The Prince is that it helps you understand the game and recognize how others are playing. The game is at its most dangerous when you're in the middle and don't realize that a game is underway.
TerryB
50%
50%
TerryB,
User Rank: Ninja
5/16/2016 | 1:33:15 PM
Must Read?
I guess it depends on how you learned programming and how long you have doing it. But I'm going on 30 years now and haven't even heard of those books, much less read them. Four years of school taught me how to program, after that it was just chasing changes in tech doing it. I was looking at books on my desk, mine are all focused on a particular type of tech that was new at one point in time: Java, The XML Handbook, Webmaster in a Nutshell, Hacking Exposed, Proven Portals, ExtJS 4 Web Application Cookbook, etc.

Most of my reading was focused on the business side (I've always worked for Mfg companies). From the Peter Principle, If it Ain't Broke, Reengineering the Corporation, several books on Lean, etc. To me, understanding what you were trying to apply computer programming to was the challenge, not executing it. The only programming challenge was chasing all the languanges (COBOL to ExtJS/HTML5) and methodologies (green screen to web to Touch) which changed so incredibly over past 30 years.
hho927
50%
50%
hho927,
User Rank: Ninja
5/16/2016 | 8:37:29 PM
Re: Must Read?
Me too :) None of these are on universities' book lists.

I guess these are for script kiddies who took a few programming classes and become 'programmers'. Especially, web programmers, ah ah terrrible codes, spaghettis.
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
5/17/2016 | 9:06:24 AM
Re: Must Read?
@hho927, I'm going to disagree with you. While these might not be on university book lists I think they're useful for developers at different points in their careers who want to get better. Some of them -- the ones that present problems and help you work through solutions -- are for those who want to go beyond the basics taught in the universities. Others, such as those on design, are for those who want to build their skills beyond basic problem solving.

I suppose I'm going to disagree most, though, because no one's ever called me a "script-kiddie" (I was well into my career before the term was coined) and many of these were suggested by professionals well out of the script-kiddie pool themselves.

But I appreciate your opinion and I have a question: Which books have you found to be most helpful in your career?
TerryB
50%
50%
TerryB,
User Rank: Ninja
5/17/2016 | 12:40:58 PM
Re: Must Read?
I don't think @hho927 was calling you script kiddie, Curtis. I get what he meant though, people that go to ITT for two years and get "programming" degree. No question the books you mentioned would be useful to them.

Web programming certainly didn't create spaghetti code though. By far the worst code I've ever seen was the RPG people used to write back on IBM Sys 34/36 midranges. Nothing else compares to that.  I remember having to use the "structured goto" approach in RPG until newer versions implemented LEAVE and LEAVESR opcodes.

Server side web programming was a challenge to organize in the pure CGI days. That was first time I ever applied MVC, just to get some maintainability in the code.
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
5/17/2016 | 3:01:00 PM
Re: Must Read?
@TerryB, I agree that pretty much no one would mistake me for a script-kiddie: The photo, alone, should take care of that!

It may be that I'm unusual in that I like to read books in subjects for which I have some expertise -- from programming to photography to audio production. I think it's a good technique for getting better and getting better is typically a good thing.

And I do think the question of how people who don't go to university can improve will become more and more important as a growing number of people question whether a batchelor's degree is necessary for a programmer. I'm not sure the answer is "yes" and I'm not sure what hiring managers are going to do to replace the credential. I suspect that something like a programming portfolio is going to become more and more important.

Maybe github will become the Linkedin for programmers!
Jocelyn78
50%
50%
Jocelyn78,
User Rank: Apprentice
5/19/2016 | 1:18:21 PM
Re: Must Read?
Thank you for this information.
hho927
50%
50%
hho927,
User Rank: Ninja
5/19/2016 | 3:30:46 PM
Re: Must Read?
Oh yeah I forgot most very old programmers (Basic). Basic , VB programmers.

4 years of college teaches most programmers to write pseudocodes first then clean, clear, methodology, codes.

Not all of them though.

Programmers without college write clean, good codes too. But it's rare. I guess it depends on the first trainers.

If they establish bad habbits is a hard thing to change. Most programmers are very strong and opionated.
vnewman2
50%
50%
vnewman2,
User Rank: Ninja
5/20/2016 | 3:40:33 PM
Re: Must Read?
So here is an interesting tidbit from a study done by Triplebyte, a company that matches engineers with startups, regarding the skill difference between those who have attended college vs bootcamps for coding. They found that bootcamp grads match or beat college grads on practical skills, defined as understanding a problem devising a solution and coding it).  But, college grads do better with algorithms, low-level systems and how a computer actually works.  
hho927
50%
50%
hho927,
User Rank: Ninja
5/23/2016 | 2:51:38 PM
Re: Must Read?
The new timers (bootcamp grads) tend to jump into program it (coding). Works well with Agile software development.

It's fine for a few pages of codes. Beyond that maintenance or debug is painful for somebody else.

Web programming is a few lines of codes here & there. Most websites, mgt don't know what they want before they see it. Since it's changing constantly, it fits agile; young programmers.

Universities taught 'waterfall' method, they barely touch agile.

 

 
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
5/17/2016 | 9:01:45 AM
Re: Must Read?
@TerryB I also learned to program when at least some of my work involved spending time at a card punch machine. I think that I'd put most of these in the same category as the business books you talk about -- trying to understand what you're doing (and, in the context of the organization, why) so you can be better at the craft within the organization.

And I think some of them apply at different levels depending on how you approach programming. I like thinking about things from different perspectives because it helps me be open to trying new solutions to problems. Others have approaches that work best for them -- that's why looking at the books someone finds useful is so interesting!
Somedude8
50%
50%
Somedude8,
User Rank: Ninja
5/20/2016 | 12:07:25 PM
Some additions
Will be checking in to a couple of those books! I was surprised that these were not on th elist:

Code Complete

Design Patterns

Additionally, there is a little known book called Code Craft which I found incredibly useful and interesting. Then one out of left field for this list: SOA: Principles of Service Design by Thomas Erl. "What? SOA?!?!" I found that book changed the way I though about coupling and design quite a bit, and has affected nearly all design work I do, SOA or not.
Commentary
IT Salary Report 2020: Get Paid What You Are Worth
Jessica Davis, Senior Editor, Enterprise Apps,  2/12/2020
Slideshows
10 Analytics and AI Startups You Should Know About
Cynthia Harvey, Freelance Journalist, InformationWeek,  2/19/2020
News
Fighting the Coronavirus with Analytics and GIS
Jessica Davis, Senior Editor, Enterprise Apps,  2/3/2020
White Papers
Register for InformationWeek Newsletters
State of the Cloud
State of the Cloud
Cloud has drastically changed how IT organizations consume and deploy services in the digital age. This research report will delve into public, private and hybrid cloud adoption trends, with a special focus on infrastructure as a service and its role in the enterprise. Find out the challenges organizations are experiencing, and the technologies and strategies they are using to manage and mitigate those challenges today.
Video
Current Issue
IT Careers: Tech Drives Constant Change
Advances in information technology and management concepts mean that IT professionals must update their skill sets, even their career goals on an almost yearly basis. In this IT Trend Report, experts share advice on how IT pros can keep up with this every-changing job market. Read it today!
Slideshows
Flash Poll