Hello world!

Door Sam de Poorter, back-end developer
12 november 2014 - 2312 x bekeken - Categorieën: Kennis

Hello world! Een term die vrijwel iedere developer als start van een opleidingstraject op het scherm moest toveren. Een nostalgische term inmiddels. Omdat het voor veel developers al ver in het verleden ligt. En omdat de aanpak vandaag de dag heel anders is. Tegenwoordig zijn er opleidingsvormen die beter aansluiten bij wat er in de praktijk gevraagd wordt. Zelfstudie bijvoorbeeld, wint flink terrein. Uit nieuwsgierigheid heb ik meerdere startcursussen over programmeren doorlopen. Laagdrempelig en (gratis) verzorgd door organisaties als W3schools, Coursera en Codecademy. Allemaal spelers die zich profileren als de marktleiders. Wat kan je verwachten? En sluit het niveau aan bij wat er in de praktijk van je gevraagd wordt?

Let's go!

De cursussen zijn laagdrempelig. Je hoeft niks te investeren behalve je eigen tijd. En hoe je dat doet, bepaal je gelukkig ook helemaal zelf (Coursera uitgezonderd). Webdevelopment is misschien meer geschikt om online te leren dan andere programmeertalen. Want op dat moment is je leeromgeving ook de praktijkomgeving. Vooral Codecademy speelt daar goed op in, door interactief de resultaten van je code weer te geven. Zo zie je dus direct resultaat in je browser. Hierdoor zal je steeds beter begrijpen hoe webpagina's zijn opgebouwd. En heb je buiten je leeromgeving, ook een omgeving die je uitlokt om ermee te spelen. Wat je ongetwijfeld vanzelf na een tijdje gaat doen! 

W3schools

Figuur 1 De meest aan webgerelateerde W3schools onderwerpen waar je over kunt leren. 

Het is mooi om te zien dat W3schools zich blijft ontwikkelen. De site bestaat namelijk al vele jaren en had vroeger een monopoliepositie, maar die tijd is voorbij. W3schools staat nog steevast bovenaan bij Google als je zoekt op de onderwerpen opgenomen in figuur 1.  En dat vind ik niet eens verkeerd. Als je snel wat voorbeelden zoekt bij bepaalde functies met een kleine toelichting, is W3schools nog steeds bijzonder geschikt. Bij onderwerpen als HTML en CSS krijg je ook de mogelijkheid om code aan te passen en die door je browser uit te laten voeren. Op deze manier voegt W3schools toch wat (beperkte) interactiviteit toe.

Figuur 2, De opbouw van vrijwel elke w3schools pagina. Links de onderwerpen/inhoudsopgave en rechts daarvan de theorie met kleine voorbeelden.

Maar zoals je uit figuur 2 kan afleiden, is die optie niet bepaald uitnodigend. Het gros van de bezoekers zal zich beperken tot het scannen van de tekst zonder daadwerkelljke interactie. De lijst aan onderwerpen die opgenomen zijn in de inhoudsopgave (figuur 2, links) is enorm en bevat veel informatie. Het is jammer dat W3schools er niet in slaagt je te motiveren om deze puntsgewijs door te nemen, want er is veel informatie beschikbaar. Het concept van W3schools lijkt ingehaald te zijn door alternatieven zoals Codecademy, die zich veel meer focust op een actieve deelname.

Codecademy 


Figuur 3, De (moderne) layout van Codecademy. In het vaste stramien vind je diverse onderdelen terug. Links voornamelijk de theorie, de opdrachten en hints. In het midden het werkterrein en uiterst rechts de output van je code. 

Codecademy heeft een veel modernere inslag dan W3schools en is erg interactief. Het karakter is informeler, speelser en vele malen interactiever. Codecademy omschrijft hun 'methode' als volgt:

''We are rethinking education from the bottom up. The web has rethought nearly everything - commerce, social networking, healthcare, and more. We are building the education the world needs - the first truly net native education. We take more cues from Facebook and Zynga in creating an engaging educational experience than we do from the classroom. Education is broken. Come help us build the education the world deserves."

Heldere omschrijving, dus hoe gaan we van start? Je maakt een account aan, wat ervoor zorgt dat je voortgang wordt bijgehouden. Hierna kies je een onderwerp waarmee je van start wilt gaan. De onderwerpen zijn ingedeeld zoals je dat ziet in figuur 3. Bij elk stukje (nieuwe) theorie moet je kleinere opdrachten uitvoeren. Daarmee kan je aantonen dat je de theorie begrijpt. Zo word je gedwongen de basis helemaal door te nemen, voordat je complexere opdrachten moet uitwerken.

 

 Figuur 4, Diverse courses van Codecademy met het huidig aantal leden en de geschatte doorlooptijd.

Uit figuur 4  kan je snel afleiden dat Javascript met gemak de populairste course is, met goede redenen. Qua opzet is het de meest uitgebreide maar ook de meest kwalitatieve course. Omdat ik zo positief was over de opzet van Codecademy, heb ik elke course uit figuur 4 doorlopen. Je vraagt je natuurlijk af wat je zoal leert te ontwikkelen (in een erg minimale opzet). Als ik voorbeelden moet noemen, springen deze het eerst in mijn gedachten:

  • Het maken van een eigen profielpagina en een CV (HTML & CSS);
  • Het creëeren van een to-do lijst, waar je dynamisch elementen aan kan toevoegen en verwijderen (Javascript);
  • Het maken van een kassasysteem, waarin je items van de pagina kan toevoegen aan je winkelmandje. Inclusief werknemerskorting (Javascript);
  • Het drag-and-droppable maken van diverse elementen op je site (jQuery);
  • Inspringen op bepaalde events. Dus zodra een pagina klaar is met laden, of als een gebruiker op een element klikt of tekst selecteert (jQuery);
  • Animeren van objecten, in- en uit laten faden van objecten, of ze laten stuiteren. Dit wordt vaak toegepast bij formuliervalidaties (jQuery);
  • Simpel toepassen van logica en berekeningen binnen je code. Dus afhankelijk van business-logica bepaalde code wel of niet uitvoeren (PHP);
  • De basis van Object-oriented programming, beter bekend als OOP (PHP/Javascript).
Deze taken worden onderverdeeld in soms meer dan 20 subtaken, die je stuk voor stuk bijleert en uiteindelijk moet combineren. Dankzij de subtaken blijft de stof behapbaar en zal het je nooit overweldigen. Als je een paar minuten vrij kan maken, kan je vlug even een stap proberen door te nemen. Bij elke stap is er vanuit Codecademy validatie opgenomen, om te zien of je het op de manier uitvoert zoals zij het hebben omschreven. Ze testen buiten het resultaat dus ook de daadwerkelijke code. De combinatie van theorie, gemeten voortgang, gamification (badges), praktijkopdrachten en duidelijk feedback maakt Codecademy tot wat mij betreft een geweldig leerconcept.

Coursera

Kosteloos een studie volgen bij the Ohio University, Stanford, de University of New York of andere hoog aanschreven universiteiten? Welkom bij Coursera! Hier volg je een digitaal schoolsemester. Net als bij de offline variant zijn de courses aan deadlines gebonden. Dit betekent dat je je moet houden aan hun (Amerikaanse) rooster en hun deadlines voor inschrijvingen en examens. Het volgen van (video) colleges, het maken van opdrachten (huiswerk ;-)) en een assesment geven de course verder invulling. Tijdens het kijken van de colleges krijg je enkele multiple-choice vragen over de theorie. Als je deze twee keer fout beantwoord, moet je verplicht een stuk terugkijken en het opnieuw te proberen. Zo krijg je een beeld of je de theorie onder de knie hebt, of juist niet. Elke week krijg je nieuwe taken die bestaan uit het maken van kleinere applicaties en het beantwoorden van vragen. Geen zorgen over spelling, meer dan 95% van de vragen is multiple-choice. Coursera controleert de antwoorden geautomatiseerd en daardoor weet je binnen een minuut je score. Met uitzondering van het eindexamen. Ik vermoed dat hier ook een deels handmatige controle op is, ik moest in elk geval twee weken wachten op het resultaat.

Figuur 5, Na het behalen van een certificaat kan je deze altijd opnieuw downloaden (PDF), toevoegen op linked-in of delen op social-media.

Zelf heb ik gekozen voor een starterscurus in de programmeertaal Python, voor mij een onbekende taal. Als je wil slagen voor een course, ben je ook verplicht alle colleges één keer te hebben bekeken. Dit kan vervelend zijn als het over een onderwerp gaat waar je al wat vanaf weet. Alle courses zijn Engelstalig, wat niet betekent dat je kennis van de Engelse taal op universitair niveau moet zijn. De inhoud van de course is dat echter wel en daar moet je op voorbereid zijn. Je moet bereid zijn om uren te investeren. 

Bij een aantal courses heb je de mogelijkheid om een certificaat te behalen. Daarvoor moet je voldoen aan extra doelstellingen. Voor de course 'Learn to Program: The fundamentals (Python)' is een totaalscore van 75%+ vereist. Dat cijfer is een combinatie van je eerder gemaakte assesments (wekelijks) en het eindexamen. Je kan je certificaat downloaden, (zie figuur 5) en toevoegen aan je Linked-in profiel. 

Het concept van Coursera is mij prima bevallen en herinnert mij aan mijn studietijd. Dat staat voor veel kennis opdoen, leuke colleges maar ook vaste deadlines en de nodige investeringen. De cursussen voelen interactief en intensief (al wordt alles geautomatiseerd getest). Dit geeft het gevoel dat je echt iets hebt afgerond en bereikt als je een cursus succesvol afrond. Zeker in combinatie met een behaald certificaat!

Klaar voor de praktijk?

Het is lastig om je (weer) in te leven in een startende developer. Als developer heb je veel ervaring en kennis nodig om zaken op een doordachte manier op te zetten. Met een cursus maak je in ieder geval een start met deze kennis, al is een echte studie daarin onvervangbaar. Zolang je dat beseft en dat niet je insteek is, adviseer ik om in ieder geval Codecademy een kans te geven. Met die basis kan je een start maken met het belangrijkste onderdeel: hands-on ervaring. Dat blijft in mijn beleving de beste manier om uit te groeien tot een volwassen developer.

Zodra je daadwerkelijk begint met programmeren buiten de cursussen, zal je tegen enkele problemen aanlopen.Je zal merken dat belangrijke praktijkzaken niet zijn behandelt, zoals het debuggen van code of het nemen van beveiligingrisico's. Als je ambitie hebt om een developer te worden, zul je dit eerst onder de knie moeten hebben. Ook dit kost je tijd. Het is kennis die je pas echt opdoet, door het te doen.

Conclusie

De cursussen hebben mij aangenaam verrast. Als developer heb je veel kennis en ervaring nodig, om functionaliteit correct en doordacht op te zetten. Vanuit dit opzicht ben ik vooral te spreken over Codecademy, omdat het me motiveert van begin tot eind. Codecademy is erg interactief, past een gezonde vorm van gamification toe en zorgt dat de stof behapbaar is. W3schools oogt oudbollig en lijkt in contrast met de concurrentie op saaie documentatie en is daardoor niet uitnodigend. Coursera laat je daarentegen onderdeel voelen van een universitaire studie, zonder de kosten. Het niveau is pittig en je bent gebonden aan harde deadlines, maar hoe is dat anders van de echte developerswereld? :-).

Pitch Perfect - 10 dingen die ik leerde op Web Summit

Door Sjoerd van Oosten

Op Web Summit 2014 wemelde het er van: startups en investeerders. Herkenbaar aan rode of blauwe badges. En aanwezig in de kleine stands op de… - Lees meer

Lees verder