Katas
Table of Contents generated with DocToc
- Organizations and Official Challenges
- Kata Catalogues
- Individual Katas and Puzzles
- Kata Constraints: Harden the Exercises
Organizations and Official Challenges
- codewars - Train your skills by solving katas.
- CodeCrafters.io and CodeCrafters.io/Catalog - Challenges for experts.
- Cyber Dojo - a platform to host and facilitate coding dojos for solo, group and classroom adventures.
- Cyber Dojo start-points - on GitHub.
- HackerRank
- CodinGame - Challenges in the shape of game programming.
- Code Golf - solve problems in the least number of characters
- Python Challenge - a game in which each level can be solved by a bit of (Python) programming.
- Rosetta Code - Solutions to programming problems in many different languages.
- The International Obfuscated C Code Contest
Kata Catalogues
- (Pragmatic) Dave Thomas: CodeKata - Introduction to “Kata” and a list of Katas.
- Anghel Leonhard: Java Coding Problems - a book containing many katas by topic
- Pietro Di Bello: A curated list of programming kata - Curated list, categorized and with difficulty rating.
- L. Falco, Learn With Llew, - Curated list with categories
- pinage404: Exercises / Katas - A list of kata catalogs
- Katalyst - many small programming problems known as Katas.
- Emily Bache: github://emilybache - many katas, front page lists refactoring katas.
- Steve Smith (aka ardalis): Coding Kata Catalog
- Coding Dojo: Kata Catalogue
- CCD School: Coding Dojo - various katas of different categories.
- CodeKata.com
- Gabe Montalvo: Awesome Katas
- Advent of Code - Advent calendar of small programming puzzles.
- Project Euler - a series of challenging mathematical/computer programming problems.
- Peter Kofler (Code Cop) - Code Cop’s repositories have some katas.
- GitHub: Unit Testing Koans - Testing Koans to learn new programming languages.
Individual Katas and Puzzles
Refactoring
- David Denton: Refactoring Golf
- Christian Clausen: five-lines - A difficult refactoring kata addressed in the book “5 Lines of Code”.
- Emily Bache: Gilded Rose
- Emily Bache: Supermarket Receipt Refactoring Kata
- Gregor Riegler: Expense Report
- Roland Germ: DataValidator Refactoring Kata
- Johann Martinsson: Lift pass pricing - Hexagonal architecture refactoring kata.
- Peter Kofler: Bank OCR Refactoring - Primitive Obsession -> Erzeuge Klassen
Algorithms
- Codewars: Page replacement algorithms: clock (6 kyu)
Software Design
- Kata01: Supermarket Pricing - Software design kata (not necessarily code).
- Chris F Carroll: Code Kata One as Code – Supermarket Pricing - Kata01 with instructions for coding.
- Samman Technical Coaching Society: Supermarket Receipt - Different variations of Kata01.
Miscellaneous
- Codingame: How to draw the Mandelbrot set
- Rosettacode: Generate and Draw a Julia Set
- GitHub: SpecFlowOSS/SpecFlow-Examples - BowlingKata
This collection of katas helps you learn some Design Patterns [1, 2]:
- Adapter - Codewars: Geese to Ducks
- Bridge - Logging System
- Builder - WebShop
- Chain of Responsibility - Pokerhands
- Command - Mars Rover
- Decorator - Bicycle Inventory
- EventAggregator - IRC
Katas addressing other things than programming
- Eficode Academy - Exercises and best practices for everyone!
- Git Katas - a collection of Git exercise.
- Docker Katas - This workshop will take you from “Hello Docker” to deploying a containerized web application to a server.
Kata Constraints: Harden the Exercises
Object Calisthenics
- Jeff Bay: Object Calisthenics - PDF presentation.
- Jeff Bay: Object Calisthenics - Conference Paper (PDF).
- William Durand: Object Calistenics - Blog Post.
Functional Calisthenics
- Ian Johnson: Introducing functional calisthenics - Write up after SoCraTes UK 2015.
- Jorge Gueorguiev Garcia: Functional Calisthenics
TDD Flavour
To add TDD Flavour, do one or more of …
- Pair programming and TDD
- Baby steps: Switch roles after 3(!) minutes; revert on red test after 3 min, i.e. hand over only green test state
- TDD as if you meant it (= Rules of Simple Design + TDD above, especially: minimal code)
- Handover on red test