Screen Shot 2015-01-22 at 4.39.07 PM

in Development

12 Books Every Software Developer Should Read

Screen Shot 2015-01-22 at 4.39.07 PMOnce upon a time, long before the first computer monitors entered the atmosphere, there were pages full of text, bound by the hundreds into individual units, separated by the coder of the text and the subject matter. The humans who used these strange masses of code called them books, and they were the primary recorders of information for hundreds of years.

Okay, so books aren’t that old. Maybe you, my developer friend, even own one! Maybe you have a stack of them. Are they holding up a lamp in your living room? Or maybe a nice potted plant…

Anachronistic jokes aside, while the meteoric rise of information held within the internet continues, there are still good old-fashioned books on programming and software engineering holding significant information that can help us as developers grow in our craft.

Consider one of these favorites the next time your eyes need a break from the screen.

1) 4-Steps to Epiphany 

Steve Blank is considered to be the godfather of the lean methodology. His customer development methodology has helped thousands of developers better understand who their customers are and how to iterate the product quickly so meet customer needs.

2) The Lean Startup

The Lean Startup is the latest craze in Silicon Valley. Eric Ries outlines a more scientific approach to product development. Similar to Steve Blank, Ries promotes a method that stresses frequent testing and quick product iterations.

3) The Pragmatic Programmer: From Journeyman to Master

pragmatic-programmer

The practical wisdom offered in this book makes it one developers will turn to again and again. Considered one of the most often recommended books among programmers, Andrew Hunt’s guide is an excellent resource for continuous growth and refreshing of programming knowledge. Every time you pick this book up, you’ll take away a new piece that you can apply toward your current work in a fresh and unique way.

4) The C Programming Language, Second Edition

If you didn’t read this book back when you first learned to code—drop everything, turn around, and go and pick it up now. As the developers of C, Brian Kernighan and Dennis Richie are the original source for all things classic coding. As such, this guide is hailed by many as the golden standard of the genre for more than twenty years. The tricks and tools offered in this manual are applicable not only to the C language, but to the entire skill set of a qualified computer professional.

5) Code Complete: A Practical Handbook for Software Construction

Written by programmer Steve McConnell, this 900-page bible is a must-read for those who want a deep understanding of the roots of coding. Widely considered an encyclopedia for best practices in software, this book deserves not only a first read, but to be referenced by developers again and again throughout their careers. The first edition covers classic programming, while the second edition also includes chapters dedicated to C++ and Java.

6) Introduction to Algorithms

Considered the seminal text for those interested in learning algorithms, this text is used in computer science courses at universities the world over. In depth and efficient, it is a great resource for those seeking algorithmic knowledge to reinforce programming skills. While the book requires deep mathematical ability in order to be effectively understood, the same skills required for mastering this text will likewise boost any developer’s overall coding ability.

7) Leading Lean Software Development: Results Are Not the Point

Along with all other texts by Mary and Tom Poppendick, Leading Lean is a must-have for team leaders and project managers within the development sphere. The Poppendicks take their material beyond the theory level, offering practical examples and application for implementing lean processes with existing development teams. Whether you’re a manager or just a team member, this book will give you insight into the endgame and overall processes of the lean development model.

8) Essential Scrum: A Practical Guide to the Most Popular Agile Process

essentials-scrum

A must-have for newcomers to the Scrum development model, this book provides essential insights into this agile process speaking to each role in the team. Included in this text are the history of how Scrum came to be, as well as sections covering core concepts, roles, planning, and sprinting.

9) The Mythical Man-Month: Essays on Software Engineering

Intertwining fact with fascinating opinions and ideas about development, Fred Brooks draws from his experience as an IBM/360 project manager to share insight for all levels of software engineers. Brooks comforts project managers, showing them that what can feel like unique problems faced in development are actually systemic issues that can be traced through a great number of eventually successful projects. If not for the information, pick up this book for the camaraderie of a fellow engineer who has been there and done that in the world of software development.

10) Growing Object-Oriented Software, Guided by Tests

Being a significant technique in the world of product development, Test-Driven Development (TDD) is something that every senior level programmer should have in their repertoire. This book by Steve Freeman is an excellent introduction to the unique attributes of Test-Driven development, including examples of how the process can be applied to a wide array of projects.

11) Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation

There’s learning to code, and then there’s learning to develop a product from start to finish. If you want to leverage your programming skill into a product development role, this text is an excellent resource for understanding and overseeing the start to finish process of development. The book covers how to automate the building, integrating, testing, and deploying of software, as well as how to improve collaboration between programming team members and developing product infrastructure.

12) Rapid Development

Another excellent resource by Steve McConnell, this text aims to help product development teams get their timetables under control. If you’re a project manager working within the agile or Scrum systems but you continue to struggle with on-time delivery, this text offers tools for improving processes as well as bettering time estimations.

There you have it, our favorite 12 reads for software developers. Do you have a favorite text that we left out? What is your most recommended software development text? Share your ideas with us in the comments below!

[Featured Image Courtesy of Viktor Hanacek]

[Pragmatic Programmer Image Courtesy of Mark van Venrooij]

  • Brandon

    Interesting post! You also might want to consider “Clean Code: A Handbook of Agile Software Craftsmanship” and “Soft Skills: The software developer’s life manual”.

    • http://jixee.me/ Jesse

      Thanks for the tip Brandon! I’ll fire up the Kindle now and check them out.