By Kevin Juhasz for Hack Reactor
The software engineering world is one of constant and sometimes quick changes that make continuing education a critical part of any developer’s career. Communities can be a big help with many issues, but there are also books that can take a philosophy or issue and help bring focus.
This list of books that software engineers should be reading right now is a combination of the Amazon Bestsellers in Software Design & Engineering list, the Required Reading for Software Development Professionals section on Goodreads’ Listopia, and input from several software engineers we spoke with.
by Gayle Laakmann McDowell
Ranking number one on Amazon’s list and the most mentioned among engineers, Cracking the Coding Interview is a guide to help make your coding interviews more successful. The 6th edition features 189 programming interview questions with walk-throughs and hints on how to solve the problems you’re given; five strategies for algorithm questions; and a guide on how companies handle developer hiring.
“Whiteboarding and algorithmic questions can be quite different than what you've been doing in your day-to-day work, especially if you haven't job searched in a long time,” said Biron Clark, a former tech recruiter and founder of CareerSidekick.com. “This book prepares you to succeed in a coding interview, with example questions and solutions.”
by Robert C. Martin
Clean Code is another popular choice of books, ranking second on both Amazon and Goodreads, and it was also popular with developers. Martin’s book teaches how to recognize bad code and turn it into good code. It is divided into three parts – the principles, patterns and practices of clean code; case studies; and all the discoveries made while creating the case studies.
“This book explains the importance of organized and well-written code by providing readers with real examples and case studies, as well as theoretical knowledge,” said Vladlen Shulepov, CEO of Riseapps.
By Andy Hunt and Dave Thomas
The goal of The Pragmatic Programmer is to teach the core process of software development, including career development, personal responsibility, architectural techniques, and adapting and reusing your code. The book examines the best practices and biggest problems software engineers might face.
“This book helps the reader to reach a new level of development understanding without spending years on it,” said Shulepov.
by John Outsterhout
Ousterhout’s book looks at the complexity of software design and the problems encountered in trying to manage it. The book also covers philosophies in design, principles to apply during the process, and explains how to identify problems that occur during design.
“It’s not super long, but there is a lot to unpack and digest,” said Nate Tsang, founder of WallStreetZen. “It contains a lot of tidbits that I might have picked up instinctively over the years, but I’ve never seen articulated and laid out as well as it’s done here. Ousterhout’s idea of software as a fight against complexity really nails the essence of good software design, and it's a must-read for junior engineers.”
by Steve Krug
Krug’s book explains that humans using software or web sites lean toward accepting the first solution that is presented to them, so software engineers should take advantage of this and consider it when it comes to designing. The book focuses on simplicity, brevity, and common sense.
“An essential book for any software engineer,” said Mike Gilfillan, Technical Lead at Edge of the Web. “It really is the best book out there for helping you to understand UX, and to change your way of thinking so that UX is always the driving force behind your decisions.”
by Frederick P. Brooks
In the Anniversary Edition, Brooks adds to the original advice and opinions in the original book on project management in the software engineering world and his philosophy that adding manpower to a late project will only make matters worse.
He covers items such as scheduling failures, the second-system effect, irreducible errors, and more.
by Eric Freeman, Kathy Sierra, Bert Bates, and Elisabeth Robson
This Head First book looks at design pattern issues that software engineers might face. Software engineers can learn about patterns that are the most important, how and when to use those patterns, and when to avoid the patterns completely.
There are hundreds of books on just about any subject you can think about related to software engineering. If you’re looking for books more specific to your career, with some reviews and feedback from your fellow engineers, then Goodreads is a great place to start in your search. In addition to searches in different categories, the site also offers targeted lists in its Listopia section.
Other suggestions from software engineers:
by David Le Blanc, John Viega, and Michael Howard
“24 Deadly Sins of Software Security is an easy to follow book that shows common examples of security mistakes developers tend to make and ways to fix them or avoid them altogether. A software developer who is known for writing secure code can earn a lot more money if they can market that aspect of themselves correctly.”
Mark Soto, Software Developer, Cybericus
by Christopher Davis
“Often new developers are trained in the technology without helping them understand what their managers are looking for. This book helps bridge the gap.”
Robert Brink, Partner, Project Iris
by Obie Fernandez
“I've now read all three of them and feel it is a must-have reference for any Rails developer. The code samples are production-quality, the author covers topics that developers face in their real-world applications, and it is clear that the author has an in-depth understanding of the framework while still delivering the content in a very appropriate manner. It is the ONLY book I'd recommend to anyone wishing to learn or improve on their Rails development skills.”
Kurt Maine, Senior Software Developer, DeveloHost