Bij dit artikel hoort bovenstaande video: Leren Programmeren – Hoe Word Je Beter

Leren programmeren kan heel moeilijk en verwarrend zijn. Met welke programmeertaal moet je beginnen? Welk lesmateriaal kun je het best gebruiken? En hoe kun je je constant blijven ontwikkelen? Ik had deze vragen zo’n negen jaar geleden ook. Lang dacht ik dat ik misschien van nature geen goede programmeur kon zijn. Ik hield echter niet rekening met het feit dat rolmodellen als Eric Barone (ConcernedApe) en Markus Persson (Notch) ook obstakels moesten overbruggen, om betere programmeurs te worden. In de jaren die volgden heb ik me toch redelijk kunnen ontwikkelen als programmeur. In dit artikel geef ik je een aantal tips waarmee je je snel kunt ontwikkelen als programmeur (ongeacht je leeftijd). 

Waarom leren programmeren?

Voordat je begint met programmeren, vraag je je misschien af of het je tijd wel waard is. Waarom zou je in godsnaam leren programmeren als zoveel mensen zeggen dat het zo verschrikkelijk ingewikkeld is?

Grote vraag naar programmeurs

In de jaren dat PC’s populairder werden, kon je er nog niet veel mee. Internet was er nog niet. En je kon op de eerste PC’s wel games spelen, maar die waren nog lang niet zo geavanceerd als de computerspellen van nu. Je kon destijds gewoon niet veel met een PC. Programmeren was één van de weinige dingen die je met een PC kon doen.

Tegenwoordig is dat compleet omgedraaid. Je kunt nu internetten, video’s kijken, socializen, gamen, muziek luisteren, administratief werk verrichten etc. Vrijwel niemand denkt er meer aan om te programmeren, met de simpele reden dat weinigen nog weten wat het is. En dan doel ik vooral op kinderen. De kinderen van tegenwoordig weten al helemaal niet wat programmeren is. Op deze manier zullen veel kinderen, die wellicht aanleg hebben of programmeren leuk zouden vinden, nooit met code in aanraking komen.

Dit is een groot probleem. Doordat zo weinig kinderen in aanraking komen met programmeren, kunnen we in de nabije toekomst een tekort aan programmeurs verwachten. Dat wil zeggen, een tekort aan mensen die de techniek, waar we juist zo afhankelijk van zijn, kunnen beheren en doorontwikkelen.

Bovenstaande video van Code.org laat goed zien dat (jonge) programmeurs hard nodig zijn.

De vraag naar jonge programmeurs is nu al heel hevig. De programmeurs uit de tijd van de opkomst van de PC’s komen op leeftijd en gaan met pensioen. Dit betekent dat er ook een gigantische werkgelegenheid is voor jonge programmeurs. Als je vroeg begint met programmeren, een portfolio opbouwt en eventueel een Computer Science-studie doet (aan de hogeschool of universiteit), kun je rekening houden met een goed salaris en een gigantisch aanbod aan banen. 

“De programmeurs van morgen zijn de tovenaars van de toekomst.”

Gabe Newell, CEO Valve Corporation

Is programmeren echt zo moeilijk?

Je kunt er niet omheen: programmeren kan moeilijk zijn. Dat hangt natuurlijk af van de grootte van je project. Een game engine schrijven is bijvoorbeeld moeilijker dan een lokale webpagina maken. Maar over het algemeen geldt dat ambitieuze projecten veel denkwerk en doorzettingsvermogen vereisen. Maar dat betekent niet dat jij het niet kunt. Het zijn fabeltjes dat leren programmeren onmogelijk is en alleen grote wiskundigen het kunnen.

Een wiskundeknobbel is geen vereiste om te beginnen met programmeren. Sterker nog, een aantal van mijn beste leraren op mijn gamedevelopment-opleiding in Breda zei zelfs dat ze ’the worst mathematiciens ever’ waren. Ik ben zelf ook geen kanjer in wiskunde, ik ben zelfs heel gemiddeld. Het ligt alleen aan je doorzettingsvermogen en je nieuwsgierigheid. Als je bereid bent te leren en wiskunde toe te passen, kom het allemaal wel goed. In de meeste gevallen heb je ‘hardcore’ wiskunde niet eens nodig. Als je veel werkt met graphics, is kennis van lineaire algebra zeker handig, maar voor het maken van een website zou ik bijvoorbeeld niet zeggen dat je veel wiskunde nodig hebt (afgezien van de logica, die je tegenkomt bij bijvoorbeeld conditionals).

Hoe begin je?

Scratch

Als je begint met programmeren, kun je het best zo simpel mogelijk beginnen. Scratch is naar mijn mening de beste programmeertaal voor beginners. Het is een programmeertaal die is ontwikkeld door Lifelong Kindergarten Group en MIT Media Lab op de universiteit MIT. De intentie van Scratch is om kinderen kennis te laten maken met programmeren. Dat zie je terug in het ontwerp van de ontwikkelomgeving. Er worden veel kleurtjes gebruikt en het platform ziet er heel kinderlijk uit. Je werkt ook niet met geschreven code, maar met blokken om programma’s te maken. Door blokken aan elkaar vast te klikken kun je instructies vormen, die de computer vervolgens kan uitvoeren.

Scratch-editor
De vriendelijke Scratch-editor

Ondanks het feit dat Scratch voor kinderen is ontwikkeld, kun je als volwassene prima beginnen met Scratch. Het bevat veel onderdelen die je ook kunt vinden in meer professionele programmeertalen. De universiteit Harvard gebruikt de programmeertaal Scratch bijvoorbeeld om haar eerstejaars informaticastudenten kennis te laten maken met programmeertaal. Wil je meer weten over de programmeertaal Scratch? Neem dan eens een kijkje op de Introductie tot Scratch-pagina binnen het lesmateriaal van JorCademy, of neem een kijkje op de Scratch-website.

Python

Als je een aantal projecten hebt gemaakt met Scratch, heb je de skills om te beginnen met een professionele programmeertaal. De perfecte opstap van Scratch is de programmeertaal Python. Python is ontwikkeld door de Nederlandse Guido van Rossum. De programmeertaal is immens populair, met name wegens het feit dat het kan worden gebruikt voor heel veel verschillende doeleinden. Het wordt door grote techbedrijven als Google en Facebook met name gebruikt voor het analyseren en visualiseren van data. Verder kun je Python ook gebruiken bij het maken van websites, simpele games, AR-programma’s en nog veel meer.

Naast het feit dat Python heel multifunctioneel is, is het ook nog eens geschikt voor beginnende programmeurs. De programmeertaal bevat minder technische woorden en tekens en lijkt veel meer op de Engelse taal dan andere programmeertalen, zoals C++.

Hieronder zie je dezelfde programma’s, geschreven in respectievelijk Python en C++.

print("Hello, world!")
using namespace std;

void main()
{
	cout << "Hello, world!" << endl;
}

Aangezien je in Python de code zelf moet typen, is het belangrijk om klein te beginnen. Je dient de syntax (vocabulaire) van de programmeertaal in de vingers te krijgen. Maak kennis met verschillende onderdelen van de programmeertaal, zoals if-statements, functies, loops, lists etc. Om dit te leren kun je gebruik maken van lesmateriaal. Tijdens het leren van de vocabulaire van Python, kun je werken aan simpele text-based programma’s (programma’s die alleen werken met tekst). Deze programmaatjes zijn over het algemeen makkelijk te maken.

Als je de vocabulaire onder de knie denkt te hebben, kun je meer onderzoek doen naar libraries en API‘s. Dit zijn als het ware stukken code die geschreven zijn door andere programmeurs, om jou het leven een stuk makkelijker te maken. Hiermee kun je je Python-programma’s, op een redelijk simpele manier, naar een hoger niveau tillen. Een interessant ‘eindproject’ zou je kunnen maken met de library Pygame. Deze library maakt het voor jou mogelijk om simpele games te maken in Python. Hoewel games maken best moeilijk is, kun je met Pygame prima games als Pong en Flappy Birdmaken. Als je een simpele game hebt weten te maken in Python, hoef je jezelf geen echte beginner meer te noemen.

Kijk voor meer informatie over Python eens op de Introductie tot Python-pagina binnen het lesmateriaal van JorCademy.

Geschikt lesmateriaal

Het leren van twee programmeertalen lijkt misschien veel. Echter kan het gebruik van het juiste lesmateriaal je hierbij helpen. Het probleem is echter dat er niet veel lesmateriaal in het Nederlands te vinden is, waarmee je goed kunt leren programmeren. Ben je echt op zoek naar Nederlandstalig lesmateriaal? Neem dan eens een kijkje op de lesmateriaal-pagina op JorCademy. Hier leer je de programmeertalen Scratch en Python kennen. Je hebt verder geen voorkennis nodig. Ben je misschien op zoek naar meer begeleiding en fysieke lessen? Dan is het lesmateriaal van Lyceo CodeLab misschien iets voor jou. Je leert met behulp van begeleiders programmeren en aan het eind van de cursus heb je je eigen website of game gebouwd (afhankelijk van jouw voorkeur). Deze cursus is betaald, maar het lesmateriaal is heel duidelijk, leuk en professioneel.

Vind je het niet erg om Engelstalig les te volgen? Dan raad ik zelf CS50 aan. Dit is de universitaire Introduction to Computer Science-cursus van Harvard University. Het tempo is hoog, maar de lessen worden heel leuk en met passie gegeven. Je kunt de cursus gratis volgen op EdX en bij voltooiing een (betaald verified) certificaat halen.

Programming Rut

Als je net begint met programmeren ben je gemotiveerd. Je gaat aan de slag met het lesmateriaal en merkt waarschijnlijk dat programmeren je makkelijker afgaat dan je van tevoren had verwacht. Maar na het voltooien van het lesmateriaal, het leren van de basics, komen veel programmeurs terecht in een periode van ‘verveling’, wat ten koste gaat van je motivatie. In deze periode heb je als programmeur geen idee hoe je beter kunt worden. Dit komt omdat er geen lesmateriaal is dat jou hierin begeleidt. Het punt is: dat bepaald je zelf.

Als je een professionele programmeertaal als Python kunt schrijven, heb je de skills om te werken aan je eigen projecten. Dit hoeft niet per se in Python te zijn. Programmeertalen bevatten over het algemeen dezelfde onderdelen (if-statements, for loops, arrays etc.). Als je één programmeertaal kunt schrijven, zijn andere programmeertalen dus veel makkelijker te leren.

Als je geïnteresseerd bent in het maken van games, verdiep je dan eens in gamedevelopment. Misschien dat het maken van games in Unity bij je past. Als je meer gericht bent op het maken van mobiele apps, appdevelopment, kun je eens een cursus volgen over iOS-development met Swift. Als je een leuk project hebt gevonden om voor een langere periode aan te werken, geeft dit je een gigantische motivatieboost.

Een demonstratie van het motivatieverlies van beginnende programmeurs.

Het punt van ‘verveling’, waarop je dus weinig motivatie hebt, noem ik ook wel de Programming Rut. Je zit als het ware in een dipje, je hebt geen doel om na te streven. Een project waar je gepassioneerd over bent is hier het beste medicijn voor. 

Moeilijkheden tijdens programmeren

Als je aan het werken bent aan nieuwe projecten leer je meer en heb je het vaak goed naar je zin. Maar je gaat dingen tegenkomen die je gewoon niet begrijpt, of problemen die je gewoonweg niet (zelf) kunt oplossen. Gelukkig staan er veel oplossingen op internet of op forums. Je meeste antwoorden/oplossingen kun je dus gewoon op internet vinden. De website Stackoverflow is echt een life-saver, wat dat betreft. Maar als de huidige informatie op internet je ook niet verder helpt, stel dan zelf vragen op forums. Daar is niets mis mee. Veel mensen staan te popelen om jou te helpen.

Naast het stellen van vragen op forums, raad ik je ook aan om Discord-servers te joinen. Het is super leuk om onderdeel te zijn van een community. Misschien leer je wel nieuwe dingen of maak je nieuwe vrienden. Leuke communities zijn Brackeys en The Programmer’s Hangout. Het nadeel van deze servers is dat ze Engelstalig zijn. Als je op zoek bent naar een Nederlandstalige server over programmeren en techniek, join dan de JorCademy Discord-server. Hier kun je je vragen kwijt en meepraten over onderwerpen rondom programmeren, tech en games.

Ook een hele populaire methode om je problemen op te lossen is door deze uit te leggen (aan jezelf of iemand anders). Als je een concept of probleem niet makkelijk kunt uitleggen, geeft dit vaak aan dat je het nog niet helemaal begrijpt. Je kunt zo gaten in je kennis ontdekken. Door deze gaten op te vullen, leer je een probleem of onderwerp beter te begrijpen. Dit wordt ook wel de Feynman-techniek genoemd, met name als je een onderwerp zo simpel mogelijk probeert uit te leggen. Als je aan iemand een code-probleem uitlegt, met de intentie om deze op te lossen, wordt dit ook wel Rubber Duck Debugging genoemd.

Conclusie

We kunnen concluderen dat je het best simpel kunt beginnen, namelijk met de programmeertaal Scratch. Als je deze taal onder de knie hebt, kun je aan de slag met een professionelere (maar nog steeds gebruiksvriendelijke) programmeertaal, zoals Python. Als je deze taal goed kunt schrijven en er een aantal uitgebreidere projectjen hebt gemaakt, met libraries/API’s, heb je genoeg kennis om jezelf verder te ontwikkelen. Treed buiten je grenzen en werk aan ambitieuze projecten, met een voor jou (wellicht) nog onbekende programmeertaal. Het allerbelangrijkste is dat je plezier houdt in wat je doet. Plezier is de drijfveer van motivatie. Werk consistent aan projecten waar je passie voor hebt en nieuwe dingen mee leert. Dan garandeer ik je dat je je snel zult ontwikkelen als programmeur.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.