Reading List

General Software Engineering Link to heading

  1. The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition - This is the first book every software engineer and aspiring software engineer should read.
  2. Clean Code - I would not follow this book dogmatically. However, I feel it has some insights valuable to everyone on how to structure code.
  3. Modern Software Engineering: Doing What Works to Build Better Software Faster
  4. Domain Driven Design: Tackling Complexity in the Heart of Software
  5. Working Effectively With Legacy Code
  6. Refactoring: Improving the Design of Existing Code
  7. Extreme Programming Explained: Embrace Change
  8. Design Patterns: Elements of Reusable Object-Oriented Software - Very heavily OOP. As I primarily write go it is not as useful to me, however, worth reading for everyone at least once.
  9. Code Complete 2 - Somewhat dated, however, the core principles have held up well.
  10. Accelerate

Advanced Topics Link to heading

  1. What Every Programmer Should Know About Memory
  2. Operating Systems: Three Easy Pieces
  3. Computer Systems: A programmer’s Perspective
  4. SQLite Database System Design and Implementation
  5. The Art of Computer Programming

Go Books Link to heading

  1. Let’s Go
  2. Let’s Go Further
  3. 100 Go Mistakes
  4. Data Structures and Algorithms with Golang
  5. Writing an Interpreter in Go
  6. Writing a Compiler in Go

Side Note Link to heading

These are just books I would recommend reading. To learn Go for example I would mix in many web resources such as Go By Example and Learn Go with Tests. I have decided not to include some popular Go books as they are outdated compared to Modern Go. All of the older books I have included are those with timeless knowledge that transcend language.