Hello world: zo leer je jezelf programmeren

Jezelf leren programmeren: het kan, al moet je wel wat hobbels over. Redacteur Laura Wismans probeerde het. „Voor ik het wist zat ik tot ver na bedtijd te coden.”

‘Kijk, zeeslagje”, zeg ik. „Ergens in dit vierkant van vijf bij vijf ligt een schip. Probeer maar even”, vervolg ik licht dwingend. Ik ben trots op mijn spelletje, hoe eenvoudig het er ook uitziet. Op het scherm staat een vierkant van witte nullen op een zwarte achtergrond. De computer vraagt de aan mijn bureau ontboden speler om de rij en de kolom te raden waar het schip ligt. Goed geraden is schip gezonken, fout is nog een keer.

Of het schip nou zinkt of niet, ik vind het allemaal prachtig. Een paar weken geleden was de programmeertaal Python nog abracadabra voor me, nu heb ik zowaar een spelletje gemaakt. Ik kan programmeren!

Kunnen programmeren is nooit weg. Wie langs vacatures scrolt ziet dat IT-bedrijven staan te springen om personeel. Ik droom er stiekem van een app te maken waarmee ik miljoenen verdien. Maar ook voor een journalist is programmeren nuttig. Nu bijna alles wat in de samenleving gebeurt ergens in een computer staat opgeslagen, zijn steeds meer verhalen te vinden in data. En publiceren gaat steeds vaker online.

Veel programmeurs zijn autodidact. Uit een enquête onder de codercommunity van Stack Overflow bleek onlangs dat van de 26.000 respondenten 41 procent zichzelf leerde programmeren. Het kan dus. Maar hoe pak je het aan?

1. Welke taal kies je?

De programmeurs die ik vroeg welke programmeertaal ik moest leren, begonnen te zuchten. Een wedervraag: wat wil je? Voor het bouwen van een app met een flitsend uiterlijk moet je andere dingen kunnen dan voor het inrichten van een database. Extra obstakel: met verschillende programmeertalen kun je hetzelfde doel bereiken. Zeeslagje kun je bouwen met Python, maar ook met Java, Ruby en C++.

Grofweg: wil je aan de ‘front-end’ werken, het uiterlijk van websites, apps en programma’s, dan is het nuttig om HTML, CSS, Javascript en PHP te leren. Javascript is populair, ruim 55 procent van Stack Overflows respondenten kent die taal. De ‘back-end’, het ‘brein’ achter sites en apps, zorgt voor communicatie met andere programma’s en applicaties. Hiervoor worden onder meer Java, C++ en Python gebruikt.

Ik koos voor Python omdat de basis relatief eenvoudig te leren is. Je hebt al gauw een werkend stukje code. Ik had ook een concreet doel: een script schrijven om een flinke dataset te bouwen met gegevens die een leuk verhaal kunnen opleveren.

2. Hoe begin je?

‘Get your feet wet’, raadden ervaren programmeurs me aan. Begin gewoon. Makkelijk gezegd als je het al kunt. Hoe en waar begin je? Online natuurlijk. Er zijn talloze sites die je aan de hand nemen.

Ik toog naar codecademy.com. Je kunt daar – gratis – allerlei talen leren. Je krijgt opdrachten in hapklare brokjes, die je moet uitvoeren in een venstertje naast de uitleg. Je ziet direct resultaat en krijgt feedback als er iets fout gaat.

De website is stimulerend, je hebt snel het gevoel iets te kunnen. Je doet ‘grammaticalesjes’, maar er zijn ook praktische opdrachten. Behalve zeeslagje programmeerde ik een fooiencalculator, black jack en een voorraadsysteem voor een fictieve winkel. Voor ik het wist zat ik tot ver na bedtijd te coden.

Er zijn meer van dit soort websites. Voor kinderen is er code.org – ook in het Nederlands. Op w3schools.com staan tutorials voor webtalen. Op programmr.com kun je andere talen leren en er is een tutorial over mobiele applicaties. Wil je het meer als een studie aanpakken, dan kun je terecht bij coursera.org. Daar kun je allerlei online colleges volgen, onder meer over programmeren.

Al doende merkte ik dat het ‘get your feet wet’-principe echt geldt. Er zijn ook allerlei sites die de principes van programmeren uitleggen. Maar dat is te weinig. Leren programmeren is als het leren van een nieuwe taal. Je leert ook geen vloeiend Frans door alleen woordjes te stampen.

3. Blijven pielen

Braaf rondde ik alle lessen Python bij Codecademy af. Het was interessant, goed opgezet, leuk. En toen ging ik verder met de rest van mijn leven.

Het is nu bijna een jaar geleden dat ik zeeslagje programmeerde. Ik kan het niet meer reproduceren. Programmeur Laurie Peters (26) vergelijkt coden met hardlopen. „Als je eenmaal bezig bent en het gaat lekker, krijg je een euforisch gevoel, een runners high.” Na een tijdje nietsdoen is het zwaar.

Wat had ik anders moeten doen? Veel beginnende programmeurs gaan door een dip heen, hoe kom je die te boven? Pielen is het antwoord, bezig blijven. Begin een project, raadt Peters aan. Bouw een website, bijvoorbeeld. Met een uitgebreid fotoalbum en een webshop waar je een database voor nodig hebt. Kom je iets tegen wat je nog niet kan: kijk af van anderen of vraag ervaren programmeurs om advies.

Een goede plek om te blijven leren is thecodeplayer.com. Daar laat een programmeur zien hoe je Javascriptcode schrijft voor allerlei onderdelen van websites. Waar begint hij, hoe bouwt hij de code verder uit? Op github.com plaatsen programmeurs de code van programma’s of scripts die ze bouwden. Op communitywebsites zoals stackoverflow.com kun je vragen stellen en zelfs Codecademy heeft een nuttig forum.

Hoe gedetailleerder je uitlegt waar je mee zit, des te beter je op weg wordt geholpen. En saai maar belangrijk: lees de documentatie die hoort bij een taal of tool. Daar staat veel in.

Een echte coder blijft altijd in deze stap hangen, blijft altijd pielen. Uit de enquête van Stack Overflow bleek dat 70 procent van de respondenten elke week minstens twee uur van zijn vrije tijd besteedt aan programmeren. 20 procent zelfs meer dan tien uur.

4.En dan?

Peters was nog niet zo lang geleden een beginner. Ze studeerde Nederlands. Sinds maart vorig jaar werkt ze bij IT-detacheerder Calco. Ze is onderdeel van het team dat de verschillende bedrijfsapplicaties van haar opdrachtgever soepel op elkaar aansluit. Op het werk is ze vooral bezig met ESQL, een door IBM ontwikkelde programmeertaal gebaseerd op databasetaal SQL. Daarnaast leert ze Java.

Toen ze begon met werken was ze nog lang geen expert. Veel verder dan Codecademy was ze nog niet gekomen. Gelukkig is de vraag van IT-bedrijven op dit moment veel groter dan het aanbod. Bedrijven leiden personeel met allerlei achtergronden en studierichtingen op tot IT’ers. „Wees dus niet bang om met weinig relevante kennis op zo’n bedrijf af te stappen”, zegt Peters.

Voor beginnende programmeurs is het handig om ervaren mensen om je heen te verzamelen. Dat kan online, maar beter is in levende lijve, in de buurt van je werkplek. Een soort buddy dus, die je bij het koffieapparaat af en toe iets kunt vragen. Daar moet ik ook eens naar op zoek.