small medium large xlarge

The Coding Dojo Handbook


Cover image for The Coding Dojo Handbook

The Coding Dojo Handbook


Looking for inspiration for good design and creating automated tests? Want to promote better practices? This handbook is a collection of concrete ideas for how you can get started with a Coding Dojo, where you and your team can focus on improving practical coding skills. When you step into the Coding Dojo, you leave your daily programming environment, with all the associated complexities and problems, and enter a safe environment where you can try stuff out, make mistakes, and learn with others.

This work was written and produced entirely by the author. We are proud to be distributing it.

About this Title

Pages: 208
Published: 2013-09-18
Release: P1.0 (2013-09-16)
ISBN: pending

This book is full of practical advice and ideas for practicing skills such as test-driven development, refactoring, and pair programming. Perhaps you’re a team lead, and you’d like to promote good practices among your team colleagues. Maybe you lead a programming language user group and you’re looking for a fun hands-on activity to do at meetings, or are planning a brown bag lunch series at work. This book gives you all the advice you need to get your own group started.

Included is a catalogue of “Kata” coding exercises that you can try, and advice about how to choose one for your particular situation. You’ll learn various collaborative coding games, which can be a fun way to introduce a serious discussion about software design or development processes. Test-driven development is one of the key skills you’ll want to practice in the Coding Dojo, so there’s also a straightforward description of TDD you can use to explain it. Throughout the book are little “Dojo Disaster” anecdotes. They illustrate when things have gone less than perfectly, and how you can avoid such mistakes.

A dojo is a fun and rewarding activity for any bunch of coders!

What You Need

The book is fairly agnostic about which programming language you’ll be using in your Coding Dojo. The “Kata” exercises sometimes have a small amount of code to get you started, and you can generally choose from several languages, including Java, C#, Javascript, Ruby and Python.

You’ll need a room to hold your Coding Dojo in, and most companies will have a suitable meeting room already. It just needs enough chairs and tables for everyone, a whiteboard, projector, and at least one computer. Often, you’ll want one computer for every two people, and internet access.


Contents & Extracts


  • Introduction
  • Acknowledgments
  • How to Read This Book
  • Section 1: Collaborative Games for Programmers excerpt
    • Randori
    • Randori Variants
    • Prepared Kata
    • Code Retreat
    • Playing with Constraints
    • Tools for the Dojo
    • Using Production code in the dojo
  • Section 2: Organizing a Coding Dojo
    • Dojo Theory
    • Finding Or Founding A Coding Dojo
    • What happens at a Coding Dojo?
    • Practicalities
    • Facilitating A Dojo meeting
    • Handling Critical Voices
  • Section 3: Teaching & Learning In the Dojo excerpt
    • Dojo Principles
    • Using Code Katas to learn TDD
    • TDD in terms of States and Moves
    • Principles for Agile Automated Test Design
  • Section 4: Kata Catalogue excerpt
    • Kata: Args
    • Kata: Bank OCR
    • Kata: Bowling Game
    • Kata: FizzBuzz
    • Kata: Game Of Life
    • Kata: Gilded Rose
    • Kata: Leap Years
    • Kata: Medicine Clash
    • Kata: Minesweeper
    • Kata: Monty Hall
    • Kata: Phone Numbers
    • Kata: Poker Hands
    • Kata: Potter
    • Kata: Prime Factors
    • Kata: Reversi
    • Kata: Roman Numerals
    • Four Katas on a Racing Car Theme
    • Kata: String Calculator
    • Kata: Tennis
    • Kata: Train Reservation
    • Kata: Trivia
    • Kata: Yatzy
    • Further Reading


Emily Bache is a software developer, and has previously delivered working software with tests while working in organizations as diverse as small startup and large corporation. These days Emily is an independent consultant, and specializes in automated testing, and in particular, teaching developers skills like test-driven development. She’s also a well-known conference speaker, and her blog is called “Coding is like Cooking.” Emily is originally from the U.K. but now lives in Göteborg, Sweden.