Een mens kan zijn hele leven bij elkaar dromen. Maar soms moeten er daden worden verricht. Het denken in objecten is niet genoeg, de objecten moeten gaan leven. Ze moeten worden geprogrammeerd, er moet “code” worden geschreven. Dat is niet eenvoudig. En eerst moet er een programmeertaal worden gekozen en geleerd. Ik ga je in dit stukje niet leren programmeren, maar wel aangeven welke wegen er zijn. Eén van die wegen bewandelen komt wellicht nog eens.

Welke programmeertaal we gebruiken is soms tevoren bepaald en soms een tamelijk willekeurige keuze. Een bedrijf heeft vaak een standaard, een keuze die ooit is gemaakt. De medewerkers zijn opgeleid, er zijn al programma’s in gemaakt, en voor je het weet zit je eraan vast. Bedrijven maken grote (zgn. “enterprise”) applicaties, die in veel gevallen worden gemaakt in ofwel Java EE, ofwel Microsoft’s .NET. In het eerste geval wil een bedrijf zich niet binden aan een bepaalde leverancier, in het tweede geval heeft men zijn ziel verkocht aan Microsoft. Om te leren programmeren is Java geen slechte keuze. Mijn voorkeur moge duidelijk zijn.

Voor individuele programmeurs is er meer vrijheid, en daarmee ook meer verschil van mening. Welke programmeertaal je gebruikt komt dicht bij religie. Wie een niet al te grote web-applicatie wil maken gebruikt vaak PHP. Niet de mooiste taal, maar wel laagdrempelig. Wie een app maakt voor iPhone of Android moet kiezen tussen Objective-C en Java. En wie een programma wil maken dat werkt op alle apparaten en computers komt vandaag de dag een heel eind met JavaScript, in combinatie met HTML en CSS. Om te leren programmeren zonder een specifiek toepassingsgebied loont het de moeite om eens naar Python te kijken.

Kan iedereen leren programmeren? Ik denk het niet. Het vereist een bepaalde manier van denken. Een hoog abstractie-vermogen. Je moet een beeld van een systeem in je hoofd kunnen opbouwen en het daar als het ware al laten werken. Daarna kan je het in kaart brengen en gaan programmeren. Niet iedereen kan dat. Vaak zijn het de meer introverte types die er goed in zijn. Mensen die denken tussen het praten door (en die niet, zoals meer extraverte mensen, denken door te praten). Stille jongens en meisjes (de laatsten nog steeds in de minderheid in dit vak).

Hoe leer je programmeren? Er zijn in grote lijnen twee aanpakken. Methode 1: verdiep je in een taal, leer de regels ervan (de “syntax”) kennen, en ga het geleerde toepassen in de praktijk. Methode 2: duik het diepe in, begin met kleine stukjes en pas ze toe, en leer de taal al doende. Beide methodes brengen met zich mee dat je veel fouten maakt. En terecht. Je kunt nou eenmaal niet leren zonder fouten te maken.

Methode 1 wordt toegepast in de Java-trainingen die ik geef voor Oracle University. Een gedegen theoretische basis. Ik hou daarvan. Je moet je gereedschap en de bouwmaterialen door en door kennen als je een huis gaat bouwen. Zo bouw je huizen als kastelen, daar is Java goed in. Vandaar die enterprise-toepassingen.

Methode 2 is geschikter voor mijn iOS-trainingen. Snel een zichtbaar resultaat, je leert wat je nodig hebt. In de snel veranderende mobiele app-markt zijn flexibele programmeurs nodig, die flexibele programma’s maken.

Niet iedereen wil of kan naar een training. Dat hoeft ook niet, er zijn hele goede leerboeken te koop, en er zijn websites waar je ook van alles kunt leren. Er zijn overigens ook slechte leerboeken te koop, en in websites kun je aardig verdwalen. En zoals je aan het inhoudelijk wat wisselende niveau in dit stuk ziet, ben ik zelf ook nog ronddolende in blog-land. Mijn eigenlijke boodschap is misschien: programmeren is het leukste wat er is. Betwistbaar, ik weet het. Laten we dan afsluiten met Steve Jobs: “I think everybody in this country should learn how to program a computer, because it teaches you how to think.”. Zo!

Advertenties