Iets nieuws leren, hoe doe je dat?

Wat zijn manieren om nieuwe technieken te leren? Bij Infi leren we al jarenlang, en met succes, door middel van leergangen!

Er is een gezegde in IT:

If you don't give your developers time to experiment in test code, they will end up experimenting in production code.

Gelukkig krijgen we bij Infi ruimte zat om in veilige situaties nieuwe dingen te leren en met nieuwe technologie te experimenteren.

Een van de manieren waarop we dat doen is in "leergangen". We organiseren onszelf ruwweg ieder kwartaal in kleine groepjes van ongeveer 2 tot 6 mensen. Elke groep heeft een eigen onderwerp waar aan werken of studeren. Die onderwerpen kunnen van alles zijn. Om je een idee te geven, dit waren enkele van de meest recente leergang-onderwerpen:

  • Machine Learning
  • HR
  • .NET Core
  • Domain-Driven Design
  • Linux
  • React Native

Omdat er geen "docent" is, moeten groepen zelf een "lesvorm" organiseren. Er zijn verschillende vormen mogelijk, de ene meer vanzelfsprekend dan de ander. Ik inspireer je graag om ook dergelijke leergangen te organiseren bij je bedrijf, en wil daarom de verschillende vormen die voor ons goed werken met je delen.

Leervorm 1: literatuur

De leergang "Domain-Driven Design" had een zeer rechtdoorzee vorm: het lezen van Eric Evans' canonieke boek over "DDD". Elke week spraken we een hoeveelheid pagina's af (meestal 1 hoofdstuk per week, oftewel zo'n 40 pagina's). Vervolgens pakten we ook elke week een half uur tot een uur om de content te bespreken. Bij deze meetings is het juist goed is om af te dwalen: dat levert vaak de interessantste discussies op.

Buiten deze vaste vorm hebben we nog wat praktische aanvullingen gehad.

  • Halverwege hebben we een echt project gepakt en een onderdeel van het domein van dat project besproken (en hoe het betreffende team het domein had gemodelleerd).
  • Aan het eind van de rit hebben twee van de groepsleden met de meeste DDD-ervaring een mini-workshop gegeven waar we een hele vrijdagmiddag aan besteed hebben.

Bij deze vorm heb je aan het eind van de rit een boek gelezen. Beter gezegd: je hebt dan een boek echt heel intens gelezen. En dat is leerzaam!

Leervorm 2: Videocursus

Een andere vorm waarbij specifiek "cursusmateriaal" de rode draad vormt: videocursussen.

In de .NET Core leergang hebben vier collega's in 12 weken zo'n 20 uur aan online cursusmateriaal verwerkt. Net als bij de "Literatuur" vorm hebben we elke week de gekeken content besproken. Dit maakt de studie behoorlijk intens. Dat wil zeggen: alleen het kijken van de content (en mogelijk wat dingen uitproberen) is al goed, maar als je er ook nog 30-60 minuten met collega's over discussieert steek je er nog veel meer van op.

Deze vorm is duidelijk een vergelijkbaar alternatief voor de "Literatuur" vorm. Hier zijn wat mogelijke redenen om juist deze vorm te gebruiken:

  • Voor zeer nieuwe content (zoals bijvoorbeeld .NET Core) is er nog niet altijd voldoende goede literatuur beschikbaar. Videocursussen bieden een uitkomst.
  • Videocursussen zijn wat gevarieerder dan literatuur, omdat het medium zich beter leent voor bijvoorbeeld voorbeelden met code.
  • Iedereen leert anders, en voor sommige mensen is video beter te volgen dan een boek (of vice versa). Gerelateerd: op de meeste platforms kun je de snelheid van de cursus opschroeven naar bijvoorbeeld 1.5x de snelheid.

Belangrijke opmerking is wel dat je hoge kwaliteit content moet zoeken. Op gratis mediums zoals Youtube is dat niet altijd te vinden. Wij gebruikten in dit geval Pluralsight, waar we onder andere de uitstekende .NET Core cursus van Wes Higbee hebben gevolgd. Pluralsight kost een paar tientjes, en is daarmee voor Infi (en ook voor jouw bedrijf) een zeer goede investering!

Leervorm 3: Per-Persoon-Per-Periode

Bij gebrek aan bestaande term benoem ik dit maar tot "PPPP-leervorm". Deze vorm komt het best tot zijn recht bij een "groot" of "vaag" onderwerp, des te meer als de groepsleden verschillende interesses hebben. In afgelopen kwartaal hebben we bijvoorbeeld de "Leergang Linux" op deze manier ingedeeld.

De vorm komt zo tot stand:

  1. Deel het kwartaal op in 12 weken (met hier en daar weekje speling dus).
  2. Brainstorm over interessante "sub-onderwerpen". Zorg dat er voor iedereen een "extra-interessant" sub-onderwerp tussen zit.
  3. Verdeel de sub-onderwerpen over de weken.
  4. Kies per week 1 persoon die dat onderwerp diepgaand uitzoekt.
  5. Plan per week een uurtje in om dat onderwerp te bespreken, aan de hand van De Persoon van die week.

Ons programma zag er bijvoorbeeld zo uit:

Week 1 Kick off Marie
Week 2 Speling Jan
Week 3 "WTF is Linux" Piet
Week 4 De Command Line Jetje
Week 5 File Systems Klaas
Week 6 Security Kees
Week 7 Speling
Week 8 Screen Piet
Week 9 WebServer optuigen Marie
Week 10 Ansible Jan
Week 11 .NET Core op Linux Jetje
Week 12 Logging en Slimme Monitoring Klaas

Feitelijk betekent dit dat je dan 1 of 2 onderwerpen uitgebreid uitzoekt. De anderen in je groep "delen mee" in jouw uitzoekwerk, of in sommige gevallen weten ze er al meer van dan jij en kunnen ze dus allerlei extra informatie aandragen tijdens de sessie.

Een goed voorbeeld van dat laatste beschreef ik een tijdje terug ook in mijn blogpost over "WTF is Linux". Daarbij werd mijn vermoeden bevestigd dat presenteren aan mensen die ergens (veel) meer van weten dan jij (a) angstaanjagend kan voelen en (b) bijzonder leerzaam kan zijn.

Leervorm 4: Project

Soms kan het nuttig zijn om een project te bedenken als rode draad van een leergang. Keuze voor deze vorm ligt vooral voor de hand als je een bepaalde (voor jou) nieuw framework of nieuwe taal wilt leren. Veel van dat soort techniek is het beste te leren door te doen.

Een goed voorbeeld is React Native. In een eerder kwartaal hebben twee collega's uitgezocht hoeveel er nou waar is van de belofte dat er goed code gedeeld wordt tussen de verschillende target platforms. Extra leuk hierbij is dat de kennisdeling-sessie aan het eind van de rit erg interessant is. Je kunt immers (als het goed is) een werkende app laten zien.

In sommige gevallen is dit ook te combineren met andere leergangvormen. Bijvoorbeeld in aanvulling op een videocursus zou je een tweede deel kunnen doen om de opgedane kennis in de praktijk te brengen.

Leervorm 5: Vrije vorm

Als afsluiting dient gezegd te worden dat het natuurlijk vrij staat om een vorm te kiezen die bij jou en je groepsgenoten past. En bovendien:

No battle plan survives contact with the enemy!

Geheel in agile stijl is het dus aan te raden om tijdens de leergang de vorm te blijven evalueren en bij te stellen waar nodig. De bovenstaande vormen geven aan wat goed werkte voor ons, en is zeker aan te raden als mogelijk startpunt. Maar het moet geen keurslijf worden.

In ieder geval raad ik (zowel IT-werkgevers als -werknemers) zeer sterk aan om in grote lijnen ons voorbeeld te volgen, en in een of andere vorm te zorgen dat je continu blijft leren. Nieuwe technologie en kennis is wat dit werk zo leuk maakt. Laten we daar optimaal van profiteren! Heb je nog tips of aanvullingen, dan hoor ik het graag!

[Jeroen is developer bij Infi]

We zoeken een ervaren developer!

› Wil jij je hersens bij ons laten kraken?

Wil je iets waarmaken met Infi?

Wil jij een eigen webapplicatie of mobiele app waarmee jij het bij anderen maakt?

Waargemaakt door de nerds van Infi.
Nerds met liefde voor softwareontwikkeling en die kunnen communiceren. En heel belangrijk: wat we doen, doen we met veel lol!

Wij willen het fixen. Laat jij van je horen?

Voor wie heb je een vraag?