Hoe CodeKata's je een betere developer maken 🥋

Hoe CodeKata's je een betere developer maken 🥋

Practice makes perfect, en wij developers kunnen onze skills bijschaven met de CodeKata.

“One learns by doing a thing; for though you think you know it, you have no certainty until you try.” – Sophocles

Waarom CodeKata’s je een betere developer maken 🎸

Bespeel jij een instrument?

Ik probeer al jaren gitaar te leren spelen en dat is nogal een uitdaging. Van een gevoel voor ritme ontwikkelen, akkoorden leren spelen tot letterlijk eelt kweken op je vingertoppen… het komt allemaal neer op één ding: oefenen.

Wees eens eerlijk. Wanneer is de laatste keer dat jij doelbewust hebt geoefend op jouw vaardigheden als developer?

Mijn gok is: een tijd geleden…

instrument

Het komt allemaal neer op één ding: oefenen

Als ontwikkelaars oefenen we te weinig op de vaardigheden die we nodig hebben tijdens het werk zoals bijvoorbeeld:

  • Naamgeving van variabelen
  • Bedenken van abstracties
  • Problemen oplossen met expressieve code

Natuurlijk komt dit in je werk aan bod, maar dit is niet de meest effectieve manier om die vaardigheden te verbeteren.

Denk er maar eens over na.

Het merendeel van de tijd ben je nieuwe functionaliteit aan het bouwen. Mensen wachten op jouw resultaat en je moet alle zeilen bijzetten om dat op tijd te leveren.

Om onder die omstandigheden te leren is alsof je een nieuw liedje op de gitaar leert terwijl je op het podium staat.

De combinatie van druk en belang bij het resultaat zorgt ervoor dat we minder kunnen leren1. We hebben een veilige manier nodig om te kunnen experimenteren en fouten te maken.

Enter the CodeKata…

Wat is een CodeKata 🥋

Het idee achter CodeKata’s komt uit de vechtsport. Bij een Kata is het de bedoeling dat ingestudeerde bewegingen worden uitgevoerd en de techniek wordt geperfectioneerd 2.

De toepassing van dit concept, binnen software development, is bedacht door Pragmatic Programmer Dave Thomas3.

karate kata

Het gaat niet om het resultaat, maar wat je geleerd hebt op je weg ernaartoe

CodeKata’s zijn (simpele) programmeeropdrachtjes die je in enkele uren kunt oplossen. Als we terugdenken aan de gitaar zou een Kata bijvoorbeeld een toonladder zijn.

De nadruk ligt bij een CodeKata op het verbeteren van je vaardigheden4. Dit doe je door doelbewust te oefenen, de uitdaging op te zoeken en feedback genereren over wat je doet. Stel jezelf dus continu vragen als:

  • Werkt deze oplossing wel of niet?
  • Wordt het hier beter door ja of nee?
  • Kan ik dit ook anders doen?

Reflecteer op wat je doet en leer van je aanpak.

Het is belangrijk om te melden dat de uiteindelijke code irrelevant is. Wat er wel toe doet is wat je hebt geleerd tijdens het maken van jouw oplossing.

Dus onthoud:

Het gaat niet om het resultaat, het gaat om wat je geleerd hebt op je weg ernaartoe.

Als je deze mindset hebt, leg je minder druk op jezelf en dat nodigt uit om te experimenteren en te leren van fouten. Zie het dus vooral als een mooie speeltuin om te oefenen en ontdekken. Op die manier leer je het meest!

Waarom ik CodeKata’s onmisbaar vind 💁🏻‍♂️

Enkele jaren geleden heb ik mijn eerste CodeKata opgelost. Sindsdien heb ik er aardig wat gemaakt. Sommige heb ik in mijn eentje opgelost, maar ik heb ook CodeKata’s gepaired (met zijn tweeën) en zelfs gemobbed (met drie of meer). Van die sessies heb ik het meest geleerd!

Het mooie van CodeKata’s is dat je zelf een leerdoel kunt opstellen en daar doelbewust op kan oefenen. Jij bepaalt dus zelf wat je leert!

Zo heb ik door het doen van CodeKata’s bijvoorbeeld geleerd om:

De dingen die ik heb geleerd bleken erg waardevol te zijn tijdens mijn werk.

improving

Zonder het doen van CodeKata’s zou ik een minder goede developer zijn

Waar ik het meest profijt van heb, is dat ik een soort “Muscle Memory” heb ontwikkeld voor het programmeren.

Bij het leren spelen van gitaar moet je ontzettend veel oefenen op het spelen van verschillende akkoorden en de overgang ertussen. Als je dit vaak genoeg hebt gedaan, hoef je er niet meer bewust over na te denken en gaat het vanzelf: Muscle Memory.

Ditzelfde effect ervaar ik nu op het gebied van programmeren. Ik moest altijd even nadenken over hoe ik bepaalde ideeën in code kon uitdrukken. Tegenwoordig kan ik dit veel sneller, en vaak is de oplossing ook nog eens beter.

Één ding is zeker: zonder het doen van CodeKata’s zou ik een minder goede developer zijn.

In het kort 📝

In deze post heb ik uitgelegd waarom een CodeKata een goed middel is om als developer je vaardigheden te verfijnen, zeker als je het gebruikt om doelbewust te oefenen.

Ik ben er van overtuigd dat het maken van CodeKata’s een groot aandeel heeft in de groei die ik tot nu heb gemaakt, omdat het helpt om de theorie in de praktijk te brengen.

Probeer het zelf eens, ze zijn ook nog eens ontzettend leuk om te doen! Hier of hier kun je een heleboel leuke CodeKata’s vinden.

Hopelijk heb ik jou ook enthousiast gemaakt voor het doen van een CodeKata, ik kijk in ieder geval uit naar de volgende. 🤓

Referenties 🌐