Het antwoord op de meest gestelde vraag over leren coderen
As a technical writer, my mission is to make complex topics easy to understand, so you won’t find much technical jargon in this article. I could rant and rave about object-oriented programming and data structures, but if you’re new to coding and computer science, this won’t mean much to you (yet). The purpose of this article is to give you a very broad and simple introduction to the world of programming, and to help you figure out how (and what) to start learning.
Welke programmeertaal moet ik eerst leren?
Dit is de meest gestelde vraag sinds ik What I Wish I Knew Before I Learned To Code heb gepubliceerd. De meeste mensen gaan ervan uit dat er een voor de hand liggende keuze is, maar het antwoord is niet altijd zo duidelijk.
Veel codeer-bootcamps richten zich uitsluitend op JavaScript, misschien in de veronderstelling dat iedereen die ontwikkelaar wil worden gewoon moet beginnen met front-end werk. JavaScript is zo’n beetje onvermijdelijk als je aan front-end ontwikkeling wilt doen, maar veel mensen springen erin voordat ze zelfs maar hebben overwogen wat ze willen bereiken door te leren coderen.
Veel computerwetenschapsprogramma’s beginnen met Python, misschien omdat het een eenvoudige syntaxis en robuuste documentatie heeft, waardoor het een geweldige taal voor een beginner is. Python is geschikt voor van alles en nog wat, ook voor data science, dus waarom zou je het niet eerst leren? Het is tenslotte een taal voor algemeen gebruik.
Het probleem is dat veel mensen het in hun hoofd halen dat ze willen “leren coderen”, maar ze staan niet stil bij wat ze willen leren maken.
Programmeren is niet een taal kiezen, de syntax leren, en dan later uitvinden wat je ermee kunt doen.
Als je ontwikkelaar wilt worden, en je weet niet zeker waar je moet beginnen, dan moedig ik je sterk aan om bij het eind te beginnen. Het eindresultaat. Wat wil je verdienen?
Als het antwoord “veel geld” is, ga dan je gang en blader door vacatures en kies de taal waar het bedrijf van je voorkeur naar op zoek is. Maar veel succes met het leren van iets zonder een concreet doel voor ogen te hebben.
Het maakt tenslotte niet uit hoe “makkelijk” of “moeilijk” een bepaalde taal te leren is. Weet je wat pas echt moeilijk is? Proberen een taal buiten zijn beperkingen te duwen om iets te maken dat niet met die taal kan (of zou moeten kunnen) worden gemaakt.
Ik weet niet zeker wat ik wil maken, maar ik weet dat ik de uitdaging van het programmeren leuk vind.
Eerlijk genoeg – maar op een gegeven moment moet je je realiseren dat je iets uitdagends probeert te leren buiten de context. Het is alsof je een vreemde taal probeert te leren, maar toegeeft dat je niet eens weet waar die gesproken wordt en dat je geen interesse hebt om er ooit een woord van hardop te spreken. Je kunt alle grammatica leren die je maar wilt, maar je zult nooit een taalkundige worden.
Wat kun je zoal maken?
- websites
- computerspelletjes
- mobiele apps (iOS? Android?)
Wat kun je zoal maken?
- data science
- artificial intelligence
- machine learning
- cyber security
- technisch schrijven
- database administration
Deze lijst is natuurlijk niet allesomvattend, maar je snapt het punt. Wat wil je precies gaan doen? Zoek dat uit voordat je een programmeertaal kiest om mee te beginnen. Hoewel sommige mensen zeggen dat het niet uitmaakt welke je kiest, zolang je hem maar goed leert, zul je waarschijnlijk merken dat dit niet het beste advies is – vooral als je het al hebt geprobeerd en gefaald.
Je moet waarschijnlijk geen maandenlang JavaScript-proeven doen als het je droom is om de volgende Fortnite te ontwerpen, net zoals je geen cursus Swift hoeft te volgen als je een Android-ontwikkelaar wilt worden.
Aan de andere kant, als het je droom is om een baan als software-engineer te krijgen bij een groot techbedrijf, wordt er waarschijnlijk wel van je verwacht dat je nieuwe programmeertalen leert als je eenmaal aan de slag gaat. Je begrip van algoritmen en computerwetenschappelijke principes kan belangrijker zijn dan de taal die je kiest om te gebruiken tijdens je coderingsgesprek.
Het is ongetwijfeld gemakkelijker om nieuwe programmeertalen op te pikken nadat je er een echt goed hebt geleerd, maar als je net begint, is het het beste om een taal te kiezen die goed aansluit bij je doelen op de korte en lange termijn in plaats van er willekeurig een te kiezen, of degene te kiezen waarvan je denkt dat je er het meeste geld mee verdient.
Wat zijn enkele van de populairste programmeertalen? Waar worden ze het meest voor gebruikt?
Als je iets met front-end ontwikkeling wilt doen, ga je ervan uit dat HTML en CSS een gegeven zijn. Of je ze nu als programmeertalen beschouwt of niet (technisch gezien is HTML een opmaaktaal en CSS een stijlbladtaal), je moet ze leren, en je moet ze snel kunnen leren. Er is een reden waarom coding bootcamps snel door HTML en CSS heen gaan, en ze soms onderdeel maken van het pre-bootcamp cursuswerk.
Eenvoudig gezegd: HTML wordt gebruikt om tekst, afbeeldingen en andere elementen op een website te zetten. Kopteksten, voetteksten, regeleindes, links, cursieve tekst, enzovoort worden met HTML gemaakt. De hele hiërarchie van je pagina wordt gemaakt met HTML.
CSS wordt gebruikt om te veranderen hoe deze elementen eruit zien. Van ondoorzichtigheid tot randen, van lettergroottes tot rasters, met CSS kunt u het uiterlijk van elk element op uw pagina aanpassen. Je kunt CSS ook gebruiken om animaties te maken voordat je ook maar aan het woord JavaScript denkt.
Als je een front-end ontwikkelaar wilt worden, besteed dan een week of twee aan het echt leren van HTML en CSS, en maak een paar websites vanaf nul voordat je verder gaat. Leer Flexbox en Grid om pagina’s responsive te maken (zodat ze zich aanpassen aan verschillende schermgroottes), en zie hoe ver je CSS kunt duwen omdat het echt veel meer kan dan je je misschien kunt voorstellen. Speel met Bootstrap, dat is een open-source front-end framework. Als je eenmaal zover bent, zul je merken dat je programmeerreis je op natuurlijke wijze heeft geleid naar…
JavaScript
JavaScript kan op veel manieren worden gebruikt, maar het wordt het meest gebruikt in front-end ontwikkeling. JavaScript wordt gebruikt om websites interactief te maken en om webelementen functioneel te maken. Je kunt een knop aan je website toevoegen met HTML, hem opmaken met CSS en hem functionaliteit geven met JavaScript. Zonder JavaScript doet je knop niets als gebruikers erop klikken.
Je hoeft de Terminal niet te gebruiken om JavaScript te gebruiken. Je werkt in een code-editor en in je browser.
JavaScript kan worden gebruikt om browser-gebaseerde spelletjes te ontwerpen. (Als je ooit hebt geprobeerd om browser-gebaseerde spelletjes te spelen op een schoolcomputer en in de problemen bent gekomen, is dat waarschijnlijk omdat JavaScript werd geblokkeerd door de beheerder van de school in een vergeefse poging om je te weerhouden van het spelen van spelletjes.)
Er zijn tal van bibliotheken en frameworks die het gemakkelijker maken om met JavaScript te werken. Je zult er niet mee beginnen, maar je zult ze later wellicht uitgebreid gebruiken.
JavaScript kun je zelfs gebruiken voor back-end werk met Node.js.
JavaScript is relatief vergevingsgezind ten aanzien van fouten. Relatief.
If you want to be a front-end developer, you’ll need to learn HTML, CSS, and JavaScript. There’s really no way around it.
Python
Python is een veelzijdige, krachtige taal voor algemeen gebruik. Je kunt het voor vrijwel alles gebruiken, van webontwikkeling tot games, en daarom kiezen veel mensen het als eerste taal.
Als je gewoon nieuwsgierig bent naar coderen, kun je beginnen met Python. Het is makkelijk te leren.
Maar als het je droom is om een baan als data scientist te krijgen… kun je net zo goed nu stoppen met lezen, want je kunt zeker beginnen met Python.
Lang verhaal kort, Python is de droom van een data scientist. De pakketten en bibliotheken maken het gemakkelijk om te werken met enorme hoeveelheden gegevens. Je kunt visualisaties maken met Matplotlib, je kunt gegevens in tabellen analyseren met Numpy en Pandas… en ga zo maar door.
Python heeft robuuste documentatie. Als er iets is dat je moet opzoeken, kun je het antwoord snel vinden. Dit is een belangrijke overweging voor iedereen die zelfstandig leert.
Waak echter over je inspringing. Inspringen markeert blokken code, dus je krijgt een foutmelding als je dit verkeerd doet. Een ontbrekende spatie of een extra spatie is een probleem. Ik noem dit omdat dit een onderscheidend kenmerk is van Python. Met JavaScript kun je zoveel spaties zetten als je wilt – zelfs als je er een zooitje van maakt. Probeer dit niet met Python.
Ruby
Ruby is een back-end taal. “Ruby on Rails” is geen taal. Ruby is de taal, en Rails is het framework. Ruby werd populair vanwege Rails.
Ruby is een geweldige taal met een zachte syntaxis. Geen puntkomma’s aan het eind van elke regel! De meeste ontwikkelaars zijn het erover eens dat het leuk is om te gebruiken, maar het is vrij intolerant voor fouten. Gewoon een waarschuwing. Als debuggen niet je sterkste kant is, zul je geen goede tijd hebben om met Ruby te beginnen.
Het is een taal op hoog niveau die heel wat kan bereiken met slechts een paar regels code. Ruby is populair aan het worden bij startups, dus je hebt misschien vacatures gezien voor “Ruby on Rails developers”.
Ruby is misschien een goede eerste taal als je zelfstandig leert en geen fan bent van Python. Aan de andere kant, Ruby is ontworpen om programmeren zo leuk en aangenaam mogelijk te maken voor ervaren ontwikkelaars, dus het is niet een taal die coding academies of computerwetenschappen programma’s eerst leren. Als je hoopt het in een persoonlijke omgeving te leren, zul je niet veel geluk hebben met het vinden van een “Intro to Programming” klas die zich richt op Ruby.
SQL
SQL (sommige mensen spreken het uit als S-Q-L terwijl anderen “vervolg” zeggen; we kunnen deze discussie voor een andere dag bewaren) is niet echt een “programmeer” taal. Je zult geen hele apps maken met SQL. Je zult het gebruiken om te communiceren met of informatie te halen uit databases.
Data. Bases.
Als je in data science wilt werken, zul je SQL moeten leren, anders krijg je geen data. Als je ook maar iets met databases wilt doen, zul je SQL moeten leren. Maar als je nog nooit in je leven een regel code hebt geschreven, moet je waarschijnlijk niet met SQL beginnen. Waarom niet? Je kunt geen stand-alone app ontwikkelen met SQL (het is niet zo’n soort taal), dus je leert eigenlijk achteruit.
Swift
Als je een iOS-ontwikkelaar wilt worden, is het helemaal prima om met Swift te beginnen. Swift is een relatief nieuwe taal, maar het is makkelijk te leren (kinderen kunnen het) en het is letterlijk gemaakt voor het ontwikkelen van iOS apps.
Hier hoeft verder niet veel over gezegd te worden. Er is geen reden waarom Swift niet je eerste taal zou kunnen zijn als je een iOS-ontwikkelaar wilt worden.
Java
Als je Android-apps wilt bouwen, is Java je taal. Je kunt het ook voor desktopapplicaties gebruiken. En sommige spelletjes. Java was vroeger een van de meest onderwezen talen in computerwetenschapsprogramma’s, maar Python is het de afgelopen jaren voorbijgestreefd. Java is nog steeds vrij populair, maar Python en Ruby zijn aantoonbaar gemakkelijker te leren. Als je een Android ontwikkelaar wilt worden, begin dan met Java – maar zo niet, dan krijg je misschien meer veelzijdigheid (en meer waar voor je geld, bij wijze van spreken) door eerst Python te leren.
C#
Als je een game ontwikkelaar wilt worden – vooral als je console of desktop games wilt ontwikkelen – dan heb je misschien al eens naar Unity gekeken. Zo niet, open deze link dan in een nieuw venster en verken het zodra je klaar bent met lezen.
Met Unity kun je ongelooflijke games bouwen (en geld verdienen), zelfs als je een beginner bent. Je zult waarschijnlijk C# gebruiken.
Terwijl Unity vroeger UnityScript ondersteunde (wat in feite een “dialect” van JavaScript is), begon het in 2017 de ondersteuning voor UnityScript geleidelijk af te bouwen, waardoor C# als de sterkste mededinger overblijft.
C# is een geweldige taal om eerst te leren als je doel is om een game-ontwikkelaar te zijn. Het hoeft niet moeilijk te zijn. Unity heeft een van de meest robuuste documentatie die ik ooit heb gezien. Ze hebben tutorials als geen ander.
Een andere reden om C# te leren: Microsoft. Als je Microsoft-applicaties wilt bouwen, dan is C# je taal.
PHP
PHP is een scripttaal, en het wordt een beetje onderschat, gezien het feit dat 80% van het web wordt aangedreven door PHP. Het is vrij bekend als de basis van WordPress thema’s, dus als je geïnteresseerd bent in het maken van aangepaste thema’s, zul je vertrouwd moeten raken met PHP.
Je kunt veel doen met PHP. Het voelt alleen als een vreemde taal om als eerste aan te bevelen, omdat het waarschijnlijk niet genoeg zal zijn om aan al je programmeerbehoeften te voldoen. PHP heeft zijn beperkingen, maar het is in feite heel gemakkelijk voor een beginner om te leren.
Er zijn een heleboel andere talen die er zijn, en dit is niet bedoeld als een allesomvattende lijst.
Als er genoeg belangstelling is, zal ik dit artikel bijwerken met meer talen. Onthoud één ding: elke ontwikkelaar heeft een favoriete taal, en elke ontwikkelaar zal je vertellen dat je eerst die taal moet leren.
Maar jij bent niet elke ontwikkelaar.
Je moet beginnen met de taal die voor jou het meest zinvol is als je eenmaal hebt uitgezocht wat je precies wilt gaan doen. Geef geen 18.000 dollar uit aan een bootcamp waarin JavaScript wordt onderwezen (hoe geweldig JavaScript ook is) als je weet dat je mobiele apps wilt maken.
Laten we het eens hebben over onpraktische programmeertalen.
Ik ga geen namen noemen, maar als je op een “coole taal” stuit en je hebt geen idee waar die voor wordt gebruikt, dan is de kans groot dat het geen goede eerste taal is om te leren.
Dit geldt ook voor “legacy” talen. Als letterlijk niemand een bepaalde taal in decennia heeft gebruikt, moet je er niet je eerste programmeertaal van maken. Het is alsof je probeert Aramees te leren als je eerste vreemde taal. Je zult niet genoeg documentatie vinden om verder te komen dan het “beginners” niveau, en mensen zullen met hun ogen naar je rollen als je probeert om een oude taal te gebruiken tijdens een coderingsgesprek. Ik zeg maar zo:
Ben praktisch.
De beste eerste taal is degene die doet wat je ermee moet doen.