My Reading List

Books I've found useful to improve how I write code

This is a list of books I've read or intend/need to read. Most of the books I've read snippets from, but have not dedicated myself to reading cover to cover or deeply. Items in Bold are books I've read all the way through.

Domain Driven Design

  • Domain Driven Design
  • Implementing Domain Driven Design
  • Patterns, Principles and Practices of Domain Driven Design
  • Domain Modeling Made Functional
  • Functional and Reactive Domain Modeling
  • Reactive Messaging Patterns with the Actor Model
  • Hands-On Domain Driven Design with .NET
  • Secure By Design

Functional Programming

  • Get Programming with F#
  • Stylish F#
  • Grokking Simplicity
  • Data-Oriented Programming
  • Algebra-Driven Design
  • Thinking With Types

Event Sourcing

  • Versioning in an Event Sourced System
  • Enterprise Integration Patterns - Designing, Building, and Deploying Messaging Solutions

User Experience

  • Constructing the User Interface with Statecharts
  • Effective UI
  • About Face
  • Don't Make Me Think - A Common Sense Approach to Web Usability
  • Rocket Surgery Made Easy - The Do-It-Yourself Guide to Finding and Fixing Usability Problems
  • The Non-Designer's Design Book

Testing

  • Writing Great Specifications
  • Specification by Example
  • Growing Object Oriented Software Guided by Tests
  • Working Effectively with Unit Tests
  • 4 Rules of Simple Design

Requirements Gathering

  • User Story Mapping
  • Introducing EventStorming

REST

  • REST in Practice

Soft skills

  • What to look for in a code review

General Design

  • Living Documentation
  • Refactoring - Improving the Design of Existing Code
  • Clean Code
  • Clean Architecture
  • Data on the Outside versus Data on the Inside
  • Language Implementation Patterns
  • Pragmatic Programmer
  • Patterns of Enterprise Application Architecture
  • Analysis Patterns: Reusable Object Models
  • Working Effectively with Legacy Code
  • Design It!

Niche

  • Domain-Specific Languages
  • The Imposters Handbook
  • The Imposters Handbook Season 2
  • Clean CSharp
  • Analysis Patterns - Reusable Object Models
  • Software Design X-Rays