Top 5 Books for Software Engineers and Software Architects

Unlike many other professions, software engineers need to keep learning, continuously to be successful at their job. However, there is only so much you can learn on the job so your approach to learning needs to be proactive and strategic.

In this article I will share with you the 5 top books for learning and improving your software architecture and software development skills.

I consider those books a must-read for any software engineer who’s serious about their career progression, especially for those who aspire to become software architects or technical leads.

It’s also never too late or too early to read them. So whether you just landed your first full-time job, or have been in the industry for many years, you are guaranteed to learn something new and valuable from those books.

Software Engineering and Software Architecture Books

Why Those Books?

The 3 criteria for choosing this list of top 5 software engineering & software architecture books are:

  • The credibility and experience of the author(s)

  • The impact those books have made on the community since they were published

  • The practicality and relevance of its content to our job as software developers or software architects

By reading those books, you will get the biggest return on your investment and learn from some of the best thought leaders in the industry.

And if you want to support the tremendous effort these authors took to shared their knowledge with all of use, you will find links to where you can purchase their book, in each section.

So without further ado, here is the list of top books any software engineer and software architect needs to read:

  1. Software Engineering at Google: Lessons Learned from Programming Over Time

Authors: Titus Winters (Senior Staff Software Engineer at Google) and Hyrum Wright (Staff Software Engineer at Google)

Description:  This book is one of for most comprehensive guides to software engineering. By drawing a distinct line between programming and software engineeringthis book illustrates the challenges of managing a living and constantly evolving codebase. In addition, the others also share a lot of their experience, architecting and developing software on a Google scale.

Some of the topics covered in this book include technical topics like Code Review, Continuous Integration / Continuous Delivery, Build Systems, and Testing 

As well as Software Architecture and leadership skills such as Leading Teams at Scale, Managing Development Productivity and Effective Knowledge sharing.


Author: Martin Kleppmann - Senior Research Associate and Affiliated Lecturer at the University of Cambridge Department of Computer Science and Technology, co-founded Rapportive (acquired by LinkedIn in 2012) and Go Test It (acquired by Red Gate Software in 2009).

Description: In this practical and comprehensive guide, Martin Kleppmann helps software engineers and software architects navigate through a wide landscape of tools and technologies for building highly scalable data-intensive applications.

This book will help you make informed decisions and trade-offs around consistency, scalability, fault tolerance, and complexity.

Some of the topics covered in the book include Designing Reliable, Scalable, and Maintainable Applications, Data Models and Query Languages, Data Storage, Distribution, Encoding, and Processing.


3. Refactoring: Improving the Design of Existing Code

Author: Martin Fowler - Software Developer, Author and public Speaker

Description: “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” 

When we talk about “good code” we often think of efficient algorithms or optimal data structures. However, since the majority of developers’ time is spent reading code and not writing it, there’s another equally important aspect to programming, and that is code readability

This book focuses on this human aspect of software development and talks about the important topics of refactoring, detecting code smells, and testing.


Author: Chris Dotson - IBM Distinguished Engineer and an executive security architect for IBM Cloud

Description: Security is a top priority for any company, and cloud-based public-facing systems are particularly vulnerable. 

This book is the most comprehensive, hands-on cloud security resource for any software developer, software architect, or security professional working on AWSMicrosoft Azure, and IBM Cloud.  

Some of the topics covered by this book include Data Management and Protection, Identity Management and Protection, Network Security, Detecting and Responding to Security Incidents, and Recovering from Security Incidents.


  • Erich Gamma - Swiss Computer Scientist and co-creator of JUnit

  • Richard Helm - Former IBM Research Staff member

  • Ralph Johnson - Research Associate Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign

  • John Vlissides - Former researcher at IBM's T.J. Watson Research Center

Description: If you develop and architect software in an Objected Oriented Programming language, such as Java, C#, C++, or Python, this book is an absolute must-read. 

It contains a catalog of 23 simple and succinct solutions to commonly occurring design problems that any software developer or software architect needs to know.  

The patterns are split into 3 categories: 

  • Creational Patterns

  • Structural Patterns

  • Behavioral Patterns

Each pattern describes the unique circumstances where the pattern is applicable as well as the consequences and trade-offs of using the pattern within a larger design.

Since the publication of this book, these design patterns became the #1 skill expected from any experienced software engineer and architect, and very often come up in job interviews.


Want to Learn More?

If you are a highly motivated software engineer and want to learn more advanced topics like:

Make sure to check out these top-rated and best-selling hands-on online courses, designed specifically for busy professionals who want to take their careers to the next level.

No time is wasted. All the topics are hand-crafted to bring you the most value.

No fillers., no lengthy introductions, and no-holding back!


More Articles

Previous
Previous

The 5 Reasons Why System Design Interview Questions are Hard and What to Do About It

Next
Next

Python Multithreading vs. Java Multithreading - Important Considerations for High Performance Programming