Essential Books for Modern Software Engineers

3 Minutes reading time

Behold the masterpiece that AI hallucinated while reading this post:

"Mirko's Little Bookshelf"

(after I fed it way too many marketing blogs and memes)

Created using DALL-E 3

AI-Generated: Mirko's Little Bookshelf

Core Software Engineering Fundamentals

These foundational books will help you build a strong base in software engineering principles and practices.

Project Management & Process

  • The Mythical Man-Month. Essays on Software Engineering. Frederick P. Brooks

  • The Deadline: A Novel About Project Management. Tom DeMarco

  • The Goal: A Process of Ongoing Improvement. Eliyahu M. Goldratt, Jeff Cox

  • Software Estimation: Demystifying the Black Art. Steve McConnell

  • Peopleware: Productive Projects and Teams. Tom DeMarco

Software Craftsmanship

  • Clean Code: A Handbook of Agile Software Craftsmanship. Robert C. Martin

  • 97 Things Every Programmer Should Know

  • Knigge für Softwarearchitekten. Peter Hruschka

  • Infrastructure as Code. Kief Morris

  • Die UML-Kurzreferenz 2.3 für die Praxis. Bernd Oestereich

  • Spring in Action

  • Lucene in Action

  • Hibernate in Action: Practical Object/Relational Mapping

  • Programming In Scala, Second Edition. Martin Odersky, Lex Spoon, Bill Venners

  • Version Control with Git: Powerful tools and techniques for collaborative software development. Jon Loeliger und Matthew McCullough

  • JavaScript: The Good Parts: Working with the Shallow Grain of JavaScript. Douglas Crockford

Requirements & Architecture

  • Software-Architektur kompakt: – angemessen und zielorientiert. Gernot Starke

  • Requirements-Engineering und -Management: Professionelle, iterative Anforderungsanalyse für die Praxis. Chris Rupp und die SOPHISTEN

  • Specification by Example. How successful teams deliver the right software. Gojko Adzik

Design & Patterns

Deep dives into software design principles and patterns that shape great systems.

Domain-Driven Design

  • Domain-Driven Design Distilled. Vaugn Vernon

  • Domain-Driven Design: Tackling Complexity in the Heart of Software. Eric J. Evans

  • Implementing Domain-Driven Design. Vaughn Vernon

Design Patterns & Architecture

  • Design Patterns. Elements of Reusable Object-Oriented Software. Erich Gama, Richard Helm, Ralph E. Johnson, John Vlissides

  • ReleaseIt!: Design and Deploy Production-Ready Software. Michael T. Nygard

  • Reactive Design Patterns. Roland Kuhn, Jamie Allen, Brian Hanafee

  • Reactive Messaging Patterns with the Actor Model. Vaughn Vernon

  • Real World Java EE Night Hacks. Dissecting the Business Tier. Adam Bien

  • The Java EE 6 Tutorial 1: Basic Concepts (Java Series)

  • Java EE7 Essentials. Arun Gupta

Technology & Programming

Specific technologies and programming paradigms for the modern developer.

Java & JVM Ecosystem

  • Effective Java : Third Edition. Joshua Bloch

  • Real World Java EE Patterns. Rethinking Best Practices. Adam Bien

  • Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions. Venkat Subramaniam

AI & Machine Learning

  • Deep Learning (Adaptive Computation and Machine Learning). Ian Goodfellow, Yoshua Bengio, Aaron Courville

  • Reinforcement Learning: An Introduction (Adaptive Computation and Machine Learning). Richard S. Sutton, Andrew G. Barto

  • Genetic Algorithms and Machine Learning for Programmers. Create AI Models and Evolve Solutions. Frances Buontempo.

  • Deep Learning for Search. Tommaso Teofili

Game Development & Graphics

  • Creating Games, Mechanics, Content and Technology. Morgan McGuire, Odest Chadwicke Jenkins

  • Game Coding Complete, Fourth Edition. Mike McShaffry, David Graham

  • Real-Time Rendering, Third Edition. Tomas Akenine-Möller, Eric Haines, Naty Hoffmann

  • Game Engine Black Book: Wolfenstein 3D. Fabien Sanglard

  • Game Engine Black Book: Doom. Fabien Sanglard

Computer science

  • Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement. Eric Redmond and Jim R. Wilson

  • Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers). Bruce A. Tate

  • DSLs (Domain-specific languages) in Action. Debasish Ghosh

  • Engineering a Compiler. Linda Torczon, Keith Cooper

  • Writing a C Compiler: Build a Real Programming Language from Scratch. Nora Sandler

Beyond Code

Essential knowledge that goes beyond pure programming.

Professional Development

  • The Secrets of Consulting. A Guide to Getting and Giving Advice Successfully. Gerald M. Weinberg

  • Technisches Schreiben (nicht nur) für Informatiker. Peter Rechenberg

  • The Back of the Napkin. Solving problems and selling ideas with pictures. Dan Roam

Scientific & Mathematical Thinking

  • What If?: Serious Scientific Answers to Absurd Hypothetical Questions. Randall Munroe

  • infinite powers: How Calculus Reveals the Secrets of the Universe. Steven Strogatz

  • Alice’s Adventures in a differentiable wonderland: A primer on designing neural networks (Volume I). Simone Scardapane

  • The Science of Why: Answers to Questions about the World Around Us. Jay Ingram

Others

  • QualityLand. Marc-Uwe Kling

Git revision: 7db0b92