Skip to content
Charles Couillard edited this page Sep 7, 2017 · 25 revisions

Product Specification & Design

  • Impact Mapping G. Adzic
  • User Story Mapping J. Patton
  • Event Storming A. Brandolini

Project & Team Management

  • The Mythical Man Month F. Brooks
  • Peopleware T. Demarco & T. Lister
  • Scrum & XP From the Trenches H. Kniberg (freely available online)
  • The Art of Agile Development: Pragmatic Guide to Agile Software Development Shane Warden & James Shore
  • Extreme Programming Explained: Embrace Change Kent Beck & Cynthia Andres
  • Lean Software Development: An Agile Toolkit Agile Toolkit Mary Poppendieck, Tom Poppendieck
  • Team Geek: A Software Developer's Guide to Working Well with Others Brian W. Fitzpatrick, Ben Collins-Sussman

Computer Science basics

  • Structure and Interpretation of Computer Programs Hal Abelson's & Jerry Sussman's (freely available online)

Domain Driven Design

  • Domain-Driven Design: Tackling Complexity in the Heart of Software Eric Evans
  • Domain-Driven Design Distilled Vaughn Vernon
  • Implementing Domain-Driven Design Vaughn Vernon
  • Domain Driven Design Quickly InfoQ (freely available online)
  • Patterns, Principles, and Practices of Domain-Driven Design Scott Millett

Code design

  • Clean Code Robert Cecil Martin
  • Code Complete 2 Steve McConnell

TDD

  • Test Driven Development: By Example Kent Beck

Refactoring

  • Working Effectively with Legacy Code Michael C. Feathers
  • Refactoring Martin Fowler & Kent Beck

Career / professionalism

  • The Pragmatic Programmer Andy Hunt & Dave Thomas
  • The Clean Coder: A Code of Conduct for Professional Programmers Robert Cecil Martin
  • The Software Craftsman: Professionalism, Pragmatism, Pride Sandro Mancuso
  • The Zen Programmer Christian Grobmeier

Architecture

REST

  • RESTful Web Services Leonard Richardson & Sam Ruby

CQRS

  • CQRS Documents Greg Young (freely available online)

Languages

Javascript

  • JavaScript Allongé, the "Six" Edition Reg “raganwald” Braithwaite (freely available online)

Ruby

  • The Well-Grounded Rubyist David A. Black

Java

  • Effective Java Joshua Bloch
  • Core Java for the Impatient Cay S. Horstmann

Clojure

  • Clojure for the Brave and True Daniel Higginbotham

SQL

  • SQL Performance Explained: Everything Developers Need to Know about SQL Markus Winand

Cryptocurrencies

Bitcoin

  • Mastering Bitcoin: Unlocking Digital Cryptocurrencies Andreas M. Antonopoulos
  • The Internet of Money Andreas M. Antonopoulos
  • Bitcoin. La monnaie acéphale (FR) Jacques Favier / Adli Takkal Bataille