Skip to content

Katas #15

Description

@OleMchls

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

Topic Wishlist

  • General Elixir concepts (special data structs, processes, GenServers)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions