Learning Guide for Software Crafters

Are you passionate about building high-quality software, writing maintainable code, understanding business problems and delivering continuously?

Below is a list of resources (books, YouTube videos, Slack groups, Twitter handles...) to help get started.

Getting started

Clean Code

  • 📖 Clean Code by Robert C. Martin
  • The Clean Coder Video Series

Test-Driven Development

  • 📖 Test-Driven Development: By Example by Kent Beck
  • 📖 Growing Object-Oriented Software, Guided by Tests by Steve Freeman, Nat Pryce

Refactoring

  • 📖 Refactoring by Martin Fowler
  • 📖 Working Effectively with Legacy Code by Michael C. Feathers

Learning by practice

"Programming is a skill best acquired by practice and example", Alan Turing

📖 Technical Agile Practices Distilled

Technical Agile Practices Distilled is a succinct, practical manual for everything from Pair Programming & TDD to Domain-Driven Design. In the book, each topic is proceeded by practical exercises (katas).

Table of contents from Technical Agile Practices Distilled:

Agile Technical Practices Distilled - Contents

More Katas

Extreme Programming

  • 📖 Accelerate (or State of DevOps Report) by Gene Kim, Jez Humble
  • 📖 Extreme Programming Explained by Kent Beck
  • 📖 The Art of Agile Development by James Shore

Pair/Mob Programming

Building for production

  • 📖 Release It! by Micheal T. Nygard defines patterns for building production-ready applications.

Study Path

This Study Path by @joebew42 identifies chapters to read through classical works such The Pragmatic Programmer, Working Effectively with Legacy Code, Refactoring...

Slack

Join the Software Crafters community on Slack.

Conference talks

Talks by Sandi Metz, the author of 'Practical Object-Oriented Design in Ruby: An Agile Primer':

Courses

J.B. Rainsberger - The World's Best Intro to TDD

Twitter