If you follow us on Instagram, you might have noticed that as a company we take great pride in being fans of both reading and development - of software and self. Henry Ford said, “Anyone who stops learning is old, whether at twenty or eighty. Anyone who keeps learning stays young.”
We take this principle of continuous learning and improvement very seriously.
Which made us think about the fact that many software development companies and startup studios out there could benefit from learning what we have - or at the very least, having a shortlist of resources they can use to replicate our growth.
In our compiled list below, you’ll find our recommendations for the software development books you should be reading. And make no mistake, while there are some classics below you’ll also find a couple of wildcards that might change your perspective on the future of SaaS.
Clean Code: A Handbook Of Agile Software Craftsmanship By Robert C. Martin
One of those handy guides that should be on the shelf of every developer is Clean Code: A Handbook Of Agile Software Craftsmanship by Robert C. Martin.
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 if your developers are following the principles laid out in this book.
Noted software expert and author Robert C. Martin has helped bring agile principles from a practitioner’s point of view to tens of thousands of programmers, and has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of software craftsman, and make you a better programmer―but only if you work at it.
Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code―of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies.
The result is a knowledge base that describes the way we think when we write, read, and clean code. This one is especially useful for organizations where there is a lot of pair programming or a goal of selling the company.
Buy your copy of Clean Code here.
Refactoring: Improving the Design of Existing Code by Martin Fowler
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
–M. Fowler (1999)
For more than two decades, experienced programmers worldwide have relied on Martin Fowler’s book on refactoring to improve the design of existing code and enhance software maintainability, as well as make existing code easier to understand.
While the original might be older, new editions of the book have been released which explain explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use.
Some of the other things that developers are bound to learn from this book are:
- How to understand the process and general principles of refactoring
- How to quickly apply useful refactoring to make a program easier to comprehend and change
- How to recognize “bad smells” in code that signal opportunities to refactor
- How to explore the refactoring, each with explanations, motivation, mechanics, and simple examples
- How to build solid tests for your refactoring
- How to recognize tradeoffs and obstacles to refactoring
Fowler himself is a developer of note, as well as an author and international public speaker on software development, specializing in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.
This one is truly a can’t-miss - get yours here.
The Mythical Man-Month: Essays on Software Engineering by Frederick Brooks Jr.
Another timeless classic in the field of software development, this book by Frederick Brooks Jr. should be next on your TBR list. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. Its central theme is that "adding manpower to a late software project makes it later."
Now, 20 years after the initial publication of the original book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time.
The revised version contains a crisp condensation of all the propositions asserted in the original book, including Brooks' central argument in The Mythical Man-Month: that large programming projects suffer management problems different from small ones due to the division of labor; that the conceptual integrity of the product is therefore critical; and that it is difficult but possible to achieve this unity - including his thoughts on his original proposals and the way forward.
Brooks comes from a strong legacy as a developer, having been a computer architect, software engineer, and computer scientist, best known for managing the development of IBM's System/360 family of computers and the OS/360 software support package.
This book straddles the line between software development and project management, a combined approach that will serve even modern developers well.
Purchase your copy of The Mythical Man-Month here.
Programming Pearls By Jon Bentley
A favorite of many developers, Programming Pearls discusses how just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers.
With origins beyond solid engineering, in the realm of insight and creativity, Bentley’s pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that Programming Pearls has been so highly valued by programmers at every level of experience.
Perhaps most valuable of all is the focus on the hard core of programming problems and his delivery of workable solutions to those problems.
Bentley is also the author of several other software development books, many of which are highly rated by the community.
Get your own copy from Amazon.
Soft Skills: The Software Developer's Life Manual By John Sonmez
As a software developer, you probably find your most productive, enjoyable time at work in those quiet coding times without interruptions. But the reality is that being a developer is about much more than just coding - there is also dealing with clients, peers, and managers, staying productive, achieving financial security, keeping yourself in shape, and many other priorities to keep up with.
Author John Sonmez is a successful software developer and coach, who shares the message that technical skills alone aren't enough for a successful career—or life.
In the tech world, it’s common for employers and your peers to put a lot of stake into your hard skills. Don’t get us wrong, these remain important for you to be a good software developer. On the other hand, however, many people forget about the importance of soft skills in tech.
According to Sonmez, by focusing on "soft skills" like the ability to communicate clearly and lead by example, the mental resilience to bounce back from failure, and even an improved level of personal fitness, software developers can break through their own limitations and achieve new heights.
Soft Skills: The software developer's life manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important "soft" subjects like career and productivity, personal finance and investing, and even fitness and relationships.
Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. A Taking Action section at the end of each chapter shows you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.
You can get your copy here.
Ghost In The Wires: My Adventures As The World's Most Wanted Hacker By Kevin Mitnick
Remember we mentioned a wildcard? Well, here you have it.
If you don’t know about Kevin Mitnick, you’ll want to.
Kevin Mitnick is a computer security consultant, author, and convicted hacker.
In fact, Mitnick was the most elusive computer break-in artist in history. He accessed computers and networks at the world's biggest companies -- and no matter how fast the authorities were, Mitnick was faster, sprinting through phone switches, computer systems, and cellular networks.
In one way, Ghost in the Wires is a thrilling true story of intrigue, suspense, and unbelievable escapes -- and a portrait of a visionary who forced the authorities to rethink the way they pursued him. In another, it is the story of how he forced companies to rethink the way they protect their most sensitive information.
That last point is why this book makes our list. While not strictly about software development, Ghost in the Wires does offer insights on security practices that are still relevant today. With the help of many fascinating true stories of successful attacks on business and government, he illustrates just how susceptible even the most locked-down information systems are to a slick con artist with the right technical and social skills.
Make sure you grab this page-turner here.
Making the time to improve understanding of both the development field and inner self is key for developers to reach new heights.
As a studio, we have ultimately found that the best developers are the ones that live the most well-rounded lives. They care about their work, but also about improving themselves personally, which gives them a holistic approach to what they contribute to projects.