planning
planning copied to clipboard
Katas
Idea
A kata is a self-contained coding problem in one GitHub repository. In the past, we have used katas as a great group non-talk activity. The feedback always have been very positive, so we would like to do more.
How to prepare a kata
A kata is a self-contained coding problem in one GitHub repository. Preferably in the hh-ex
namespace (ask organizers for permissions, you can also move repos laters, start right away!).
The ideal meetup coding kata problem...
- has little to no business logic, so it can be understood with little context as possible.
- can be solved by all skill levels within 60 to 90 minutes
- can be solved in iterations rather than a big a big bang release
- has no external network dependencies
- can easily be tested
Each kata should contain a readme
describing the problem including some examples. It also has some general code setup, like a running elixir project, incl Mixfile
, and the usual folder structure, so that attendees can start implementing code right away.
Ideally, a kata also provides failing specs. If it has specs, set up PR tests any CI tool of your choice, so when we are comparing results we will see if a solution passes the tests.
And if you are lacking a good kata idea, take a look here: http://rosettacode.org/wiki/Category:Programming_Tasks
How to run a Kata
In addition to the usual rules on how to make a meetup great for everyone, make it open and inclusive, etc. Katas works best when we pair up the group into teams. These teams are formed best when assigning team members at random (shuffle).
A nice way to shuffle group members was introduced to us by @pierrebeitz, by ripping apart a zine page and make attendees find their corresponding mates by finding the same page parts.
Past Katas
- List Span
- List Ops
- Sleep Sort
- dtgcaa
- binary matching
- binary rfc sigils tbd
- million coin miner tbd
Topic Wishlist
- General Elixir concepts (special data structs, processes, GenServers)