In het eerste deel van onze serie lieten we zien dat het werk van een ontwikkelaar veel meer is dan alleen code schrijven.
We spraken over de eerste dagen in een softwarehuis, over het verschil tussen studie en echte projecten en waarom ervaring voornamelijk door praktijk wordt opgedaan.
Vandaag gaan we verder met de vraag die bijna elke Junior zichzelf stelt. Wat moet ik eigenlijk leren?
Het internet geeft overal advies. Sommigen zeggen dat je per se React moet kennen. Anderen beweren dat de toekomst van Rust is. Weer anderen overtuigen je dat je zonder Docker, Kubernetes en vijf certificaten geen CV moet sturen.
De waarheid ziet er veel rustiger uit...
Leer geen frameworks. Leer programmeren.
Die zin kan vreemd lijken.
Immers, bedrijven adverteren vacatures voor React Developer, Java Developer of PHP Developer.
Waarom zeggen we dan dat je niet met frameworks moet beginnen? - Omdat een framework een gereedschap is. En gereedschap verandert heel snel.
Nog enkele jaren geleden waren velen ervan overtuigd dat AngularJS decennia lang zou domineren. Vandaag ziet dat er helemaal anders uit.
Je zult frameworks je hele carrière blijven leren. Maar de manier van denken van een programmeur blijft voor altijd bij je.
Daarom leer eerst:
- problemen oplossen,
- vereisten analyseren,
- oplossingen ontwerpen,
- iemand anders zijn code lezen,
- leesbare code schrijven.
Technologie is slechts een middel om een doel te bereiken.
Beheers één taal echt goed
Dit is waarschijnlijk de meest voorkomende fout bij beginners.
Vandaag JavaScript. Morgen Python. Overmorgen Go. Volgende week Rust. Na een maand C#...
Na twee maanden blijkt dat geen van deze echt goed is geleerd. Het is veel beter om één taal te kiezen en die echt goed te leren.
Begrijp:
- hoe geheugen werkt,
- wat referenties zijn,
- hoe uitzonderingsafhandeling eruitziet,
- hoe collecties werken,
- wat het verschil is tussen synchroon en asynchroon programmeren,
- hoe debugging werkt.
Als je één taal echt goed beheerst, leer je de volgende veel sneller.
Leer documentatie lezen
Weinig spectaculair? Zeker.
Zeer nuttig? Nog veel meer.
Een goede ontwikkelaar onthoudt niet alles. Een goede ontwikkelaar weet waar hij betrouwbare antwoorden vindt.
De documentatie van de maker van een framework of bibliotheek is bijna altijd een betere bron dan een willekeurige forumpost van zes jaar geleden.
Het is precies die vaardigheid om informatie te zoeken die mensen onderscheidt die zich ontwikkelen van degenen die eindeloos oplossingen kopiëren die ze online vonden.
Git is geen "Verstuur"-knop
Als we één vaardigheid zouden moeten aanwijzen om zo vroeg mogelijk te leren, zou dat Git zijn. Niet omdat het hip is. Omdat praktisch elk developmentteam het gebruikt.
Git is niet alleen het opslaan van wijzigingen. Het is een manier van samenwerken. Branching. Pull Request. Merge. Conflictoplossing. Wijzigingsgeschiedenis.
Zonder dit is het moeilijk je professionele werk in een team voor te stellen.
En nog een tip. Stuur nooit een project als ZIP-bestand. Echt niet.
SQL - zelfs als je geen databasebeheerder wilt worden
Veel juniors vermijden SQL. Dat is een fout.
De meeste zakelijke applicaties gebruiken databases. Je hoeft geen expert te worden in query-optimalisatie.
Maar je zou moeten begrijpen:
- wat een relationele database is,
- hoe relaties werken,
- wat een index is,
- wat het verschil is tussen LEFT JOIN en INNER JOIN,
- waarom een slecht geschreven query een hele applicatie kan vertragen.
Die kennis is in bijna elk project van pas.
Linux bijt niet
Je hoeft niet meteen Windows op te geven. Maar het is de moeite waard de basis van terminalgebruik te leren.
De meeste servers draaien onder Linux.
Kennis van basale commando's:
- ls,
- cd,
- grep,
- cat,
- chmod,
- ssh,
kan je veel tijd besparen.
Aanvankelijk voelt het vreemd. Na een paar maanden is werk zonder terminal bijna ondenkbaar.
Docker - waarom heeft iedereen het erover?
Een paar jaar geleden kon het opzetten van een ontwikkelomgeving een hele dag duren.
Iedereen had een andere PHP-versie. Een andere database. Andere bibliotheken.
Docker vereenvoudigde dat probleem enorm. Het maakt het mogelijk applicaties in identieke omgevingen te draaien, ongeacht de machine.
Moet een Junior meteen een expert in containerisatie worden? - Nee.
Maar het is de moeite waard te begrijpen wat een container is en waarom praktisch elk modern project Docker gebruikt.
AI is een geweldige mentor. Niet de beste ontwikkelaar.
Dit is een onderwerp dat je vandaag niet kunt negeren.
ChatGPT, GitHub Copilot en andere AI-tools kunnen het leren enorm versnellen. Onder één voorwaarde. Kopieer geen code zonder begrip.
Het is veel beter om te vragen:
- Waarom is deze oplossing beter?
- Hoe werkt dit algoritme?
- Hoe kan dit geoptimaliseerd worden?
- Wat zijn de nadelen van deze benadering?
AI legt dingen heel goed uit.
Maar het mag het zelfstandig nadenken niet vervangen.
De debugger is je vriend
In het begin doet de meeste ontwikkelaars iets als: var_dump($variabele);
Later: echo $variabele;
En even later: console.log(data);
console.log(data2);
console.log(data3);
console.log(data4);
Iedereen begon zo. Maar het is de moeite waard zo snel mogelijk te leren werken met een debugger.
Die laat je het programma op elk punt pauzeren, variabelen bekijken en begrijpen wat er echt tijdens de uitvoering gebeurt.
Het is een van die vaardigheden die ontwikkeling aanzienlijk versnellen.
Welke hardware kiezen?
Veel mensen verwachten hier een lijst met computers van tienduizenden euro's. Dat is niet nodig.
In het begin zijn belangrijker dan de nieuwste processor:
- een comfortabele toetsenbord,
- een snelle SSD,
- een geschikte hoeveelheid RAM,
- een stabiele werkomgeving.
RGB-verlichting maakt compilatie niet sneller. Drie monitors maken je code ook niet beter.
Goede hardware moet helpen bij productiviteit. Niet indruk maken op foto's (hoewel uiterlijk ook telt ;))
Woordenlijst
Framework
Een kant-en-klare set tools en bibliotheken die het bouwen van applicaties vergemakkelijkt volgens bepaalde regels.
Git
Een versiebeheersysteem waarmee je wijzigingen in code kunt bijhouden en met meerdere ontwikkelaars aan één project kunt samenwerken.
Docker
Een platform om applicaties in geïsoleerde containers te draaien, waardoor de omgeving identiek werkt op verschillende computers.
Debugger
Een hulpmiddel om het programma stap voor stap te analyseren en fouten te vinden.
SQL
Een taal om te communiceren met relationele databases.
Samenvatting
Een goede ontwikkelaar kent niet alle technologieën. Kent niet alle frameworks. Onthoudt niet de hele documentatie.
Een goede ontwikkelaar heeft solide fundamenten.
Weet hoe problemen te analyseren.
Kan informatie vinden.
Begrijpt hoe technologieën werken.
En juist daarom kan hij snel nieuwe tools leren.
Frameworks zullen veranderen.
Talen zullen evolueren.
De manier van denken blijft de meest waardevolle vaardigheid gedurende je hele carrière.
In het volgende deel laten we zien hoe het dagelijkse werk van een Senior Developer eruitziet, waarom Code Review de beste leerschool is, wat Clean Code echt betekent en waarom de zin "bij mij werkt het" bij veel ontwikkelaars een nerveuze glimlach oproept.



