Skip to content
Atelierby nealvdv
Back to the Map

Craft · Build

Programmeren

Denken als een programmeur, en code schrijven die een ander kan lezen.

  • 10 modules
  • 280 study hours

Start this craft for free

Workshop scheduleModules and indicative study hours per rank
RankModulesHours
Apprentice4105
Compagnon4105
Master270
Total10280

The learning content on this page is only in Dutch for now.

Why this craft

Achter elke website, app en automatisering zit code, en die code moet niet alleen vandaag werken maar ook over drie jaar nog te begrijpen zijn. In dit ambacht leer je problemen opdelen, ze oplossen in TypeScript en Python, en je werk zo testen, versioneren en documenteren dat een collega het zonder jou kan overnemen.

What you need before you start

Niets. Een computer waarop je software mag installeren en de module over je werkplek uit Fundament helpen wel.

The curriculum

Modules per rank

Each module has lessons and one assignment with a result someone else can check. The hours are indicative.

Your progress

You tick off modules on this device; nothing goes to a server. On the Workbench you keep your path in an account, hand in your assignments and get the hallmark from Neal.

Apprentice

The basics. These modules and a Compagnon test make you a Compagnon.

4 modules · 105 h

  1. Denken als een programmeur

    15 study hours

    Je leert een vaag probleem opdelen in kleine stappen die een computer kan uitvoeren, nog voor je één regel code schrijft.

    • Pen en papier
    • Excalidraw
    • Visual Studio Code
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Een probleem opsplitsen in invoer, verwerking en uitvoer
    • Een oplossing uitschrijven in pseudocode en ze stap voor stap naspelen
    • Variabelen, voorwaarden, lussen en functies herkennen en gebruiken
    • Uitleggen waarom je oplossing werkt, ook voor de randgevallen
    Lessons
    1. Wat een programma eigenlijk is
    2. Problemen opdelen: invoer, verwerking, uitvoer
    3. Pseudocode en stroomdiagrammen
    4. Variabelen en types
    5. Voorwaarden en lussen
    6. Functies: één taak, één naam
    7. Randgevallen bedenken voor je begint
    The assignment

    Schrijf in pseudocode hoe een bakkerij in Aalst haar broodbestellingen voor zaterdag optelt per soort, inclusief wat er gebeurt bij een lege lijst of een geannuleerde bestelling. Een medeleerling speelt je stappen na met tien echte bestellingen en moet op hetzelfde totaal uitkomen.

  2. JavaScript en TypeScript

    40 study hours

    Je schrijft je eerste echte programma's in JavaScript en leert meteen TypeScript in strikte modus, zodat de compiler fouten vindt voor je gebruikers dat doen.

    • Node.js
    • TypeScript
    • Visual Studio Code
    • Yarn
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Een klein programma schrijven en uitvoeren met Node.js
    • Werken met strings, getallen, arrays, objecten en functies
    • Eigen types en unions definiëren in TypeScript strict
    • Asynchrone code schrijven met async en await
    • Foutmeldingen van de compiler lezen en oplossen
    Lessons
    1. Node.js installeren en je eerste script
    2. Waarden, variabelen en functies
    3. Arrays en objecten, map en filter
    4. Waarom TypeScript, en waarom strict
    5. Types, interfaces en unions
    6. Modules: import en export
    7. Async en await, beloftes en fouten
    The assignment

    Bouw een commandoregelprogramma in TypeScript strict dat een CSV-bestand met ledenbetalingen van een voetbalclub inleest en toont wie nog niet betaald heeft. Het programma compileert zonder fouten of 'any', en een begeleider test het met een bestand dat jij niet gezien hebt.

  3. Python

    30 study hours

    Je leert Python als tweede taal: ideaal voor scripts, data en API's, en een goede spiegel om te zien wat taalonafhankelijk is aan programmeren.

    • Python
    • uv
    • Ruff
    • mypy
    • Visual Studio Code
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Een Python-project opzetten met een virtuele omgeving
    • Werken met lijsten, dictionaries en bestanden
    • Type hints gebruiken en controleren
    • Een klein script schrijven dat een taak uit je dagelijks werk automatiseert
    Lessons
    1. Python installeren en projecten beheren met uv
    2. Basistypes, lijsten en dictionaries
    3. Functies, modules en packages
    4. Bestanden lezen en schrijven
    5. Type hints en een typechecker
    6. Fouten opvangen met exceptions
    7. Hetzelfde probleem in Python en TypeScript
    The assignment

    Schrijf een Python-script dat een map met PDF-facturen van een garage (genoemd als datum_klant_bedrag.pdf) overloopt en een overzicht per maand maakt als CSV. Een begeleider draait het op een testmap met foute bestandsnamen en controleert dat het script die netjes meldt in plaats van te crashen.

  4. Git en GitHub

    20 study hours

    Je leert je werk versioneren met Git en samenwerken via GitHub, zodat niets nog verloren gaat en elke wijziging een reden heeft.

    • Git
    • GitHub
    • GitHub CLI
    • Visual Studio Code
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Commits maken met een duidelijke boodschap
    • Werken met branches en ze samenvoegen
    • Een mergeconflict rustig oplossen
    • Een pull request openen, bespreken en afronden
    • Een fout terugdraaien zonder geschiedenis te vernietigen
    Lessons
    1. Waarom versiebeheer
    2. Commits, de staging area en goede commitberichten
    3. Branches en merges
    4. Conflicten oplossen
    5. GitHub: remotes, push en pull
    6. Pull requests en issues
    7. .gitignore en geheimen buiten je repo houden
    8. Terugdraaien: revert, restore en reflog
    The assignment

    Werk met twee medeleerlingen aan één repository voor een klein menu-script van een frituur: elk een eigen branch, minstens één echt mergeconflict, alles via pull requests met review. De begeleider leest de geschiedenis en controleert dat elke wijziging via een besproken pull request binnenkwam.

Compagnon

Mastering the craft: larger projects, reviewed at every milestone.

4 modules · 105 h

  1. Testen: unit, integratie en end-to-end

    35 study hours

    Je leert tests schrijven die je vertrouwen geven om te veranderen: snelle unittests, integratietests tegen een echte databank en een paar end-to-endtests voor wat echt niet mag breken.

    • Vitest
    • pytest
    • Playwright
    • PGlite
    • GitHub Actions
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Unittests schrijven met Vitest en pytest
    • Een integratietest opzetten tegen een echte (lokale) databank
    • End-to-endtests schrijven voor de kritieke paden met Playwright
    • Kiezen wat je wel en niet test, en dat verdedigen
    • Tests automatisch laten draaien bij elke pull request
    Lessons
    1. Waarom testen, en wat een goede test is
    2. Unittests met Vitest
    3. Unittests met pytest
    4. Mocks, stubs en wanneer je ze beter niet gebruikt
    5. Integratietests met een echte databank
    6. End-to-end met Playwright
    7. Testen in GitHub Actions
    The assignment

    Neem de reserveringsmodule van een bestaand oefenproject voor een tennisclub en voorzie ze van een testsuite met unit-, integratie- en minstens drie end-to-endtests die in GitHub Actions draaien. Een Meester breekt bewust twee dingen in de code en jouw tests moeten beide fouten vangen.

  2. Leesbare code en code review

    25 study hours

    Je leert code schrijven voor de volgende lezer, en de code van anderen beoordelen op een manier die helpt in plaats van kwetst.

    • ESLint
    • Prettier
    • Ruff
    • GitHub
    • Vitest
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Goede namen kiezen en functies klein en eenduidig houden
    • Code herschrijven (refactoren) zonder het gedrag te veranderen
    • Linters en formatters instellen zodat stijl geen discussie meer is
    • Een code review geven die concreet, vriendelijk en onderbouwd is
    • Feedback op je eigen pull request verwerken zonder het persoonlijk te nemen
    Lessons
    1. Code wordt vaker gelezen dan geschreven
    2. Namen, functies en commentaar dat iets toevoegt
    3. Refactoren in kleine stappen
    4. ESLint, Prettier en Ruff
    5. Wat je zoekt in een review
    6. Feedback geven en krijgen
    7. Documentatie: README, beslissingen en changelog
    The assignment

    Refactor een rommelig script van 300 regels dat de uurroosters van een kinderopvang berekent, met tests vooraf zodat het gedrag gelijk blijft, en review daarna de pull request van een mede-Compagnon met minstens vijf onderbouwde opmerkingen. Een Meester beoordeelt zowel je refactor als de toon en inhoud van je review.

  3. Debuggen en performantie

    30 study hours

    Je leert systematisch fouten opsporen in plaats van te gokken, en meten voor je iets sneller probeert te maken.

    • Chrome DevTools
    • Node.js inspector
    • Python debugger
    • git bisect
    • Visual Studio Code
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Een fout reproduceren en terugbrengen tot een minimaal voorbeeld
    • De debugger gebruiken in de browser, in Node.js en in Python
    • Logs lezen en zinvolle logging toevoegen
    • Een traag stuk code meten met een profiler en gericht verbeteren
    • Uitleggen wat de complexiteit van een algoritme betekent in de praktijk
    Lessons
    1. De wetenschappelijke methode voor bugs
    2. Breakpoints en stap-voor-stap uitvoeren
    3. Logging die je later echt helpt
    4. git bisect: wanneer is het misgegaan
    5. Datastructuren kiezen: lijst, map, set, wachtrij
    6. Complexiteit zonder formules: waarom O(n²) pijn doet
    7. Profilen en meten voor je optimaliseert
    The assignment

    Je krijgt een oefenapplicatie voor een fietsenwinkel met drie verborgen bugs en één trage zoekfunctie. Lever per bug een korte analyse (oorzaak, reproductie, fix, test) en maak de zoekfunctie meetbaar sneller met een voor- en nameting. Een Meester controleert dat elke fix een test heeft en dat je meting klopt.

  4. Programmeren met AI-assistenten

    15 study hours

    Je leert AI-assistenten zoals Claude Code inzetten als snelle collega, en hun werk even kritisch nakijken als dat van een mens. Het ambacht AI gaat hier dieper op in.

    • Claude Code
    • Git
    • Vitest
    • Visual Studio Code
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Een AI-assistent een duidelijke opdracht geven met context en grenzen
    • Gegenereerde code lezen, testen en waar nodig weigeren
    • Een project voorzien van instructies (zoals CLAUDE.md) die de assistent stuurt
    • Herkennen wanneer je het zelf sneller of veiliger doet
    Lessons
    1. Wat een AI-assistent wel en niet weet over jouw project
    2. Goede opdrachten: doel, context, grenzen
    3. Projectinstructies en conventies vastleggen
    4. Tests als vangnet voor gegenereerde code
    5. Veiligheid: geheimen, licenties en klantdata
    6. Wanneer je beter zelf typt
    The assignment

    Bouw met Claude Code een kleine uitbreiding (bijvoorbeeld export naar CSV) in een bestaand oefenproject, en houd een logboek bij van je opdrachten, wat je aanvaardde, wat je weigerde en waarom. Een Meester leest het logboek en de pull request en moet elke regel code kunnen laten uitleggen door jou.

Master

What a Master must be able to do alone, in preparation for the masterpiece.

2 modules · 70 h

  1. Software-architectuur

    40 study hours

    Je leert een systeem opdelen in onderdelen met duidelijke grenzen, keuzes vastleggen en een project zo opzetten dat het jaren meegaat.

    • C4-model
    • Mermaid
    • Markdown
    • Git
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Een systeem opdelen in modules met heldere verantwoordelijkheden
    • Architectuurbeslissingen vastleggen in korte beslissingsdocumenten (ADR's)
    • Kiezen tussen monoliet, modulaire monoliet en losse services, met argumenten
    • Een bestaande codebase stapsgewijs moderniseren zonder stilstand
    • Een architectuur uitleggen aan een klant zonder vakjargon
    Lessons
    1. Wat architectuur is, en wat niet
    2. Grenzen, afhankelijkheden en lagen
    3. Monoliet of services: de eerlijke afweging
    4. Beslissingen vastleggen in ADR's
    5. Legacy code stap voor stap vernieuwen
    6. Diagrammen die iets uitleggen (C4)
    7. Architectuur en de kosten op lange termijn
    The assignment

    Analyseer een bestaande open-sourceapplicatie of een echt klantproject en lever een architectuurdossier: een C4-diagram van de huidige toestand, drie ADR's voor de belangrijkste verbeteringen en een stappenplan om ze door te voeren. Neal bespreekt het dossier met je alsof hij de klant is.

  2. Een team en een codebase leiden

    30 study hours

    Je leert de kwaliteit van een codebase bewaken over mensen heen: afspraken, automatisering, onboarding en het begeleiden van Leerlingen en Compagnons.

    • GitHub Actions
    • Changesets
    • Markdown
    • GitHub
    Lessons, assignment and what you can do afterwards
    What you can do afterwards
    • Een werkwijze opzetten met branches, reviews, CI en releases
    • Een nieuwe ontwikkelaar binnen een week productief maken
    • Technische schuld zichtbaar maken en plannen
    • Een Leerling of Compagnon begeleiden met gerichte feedback
    Lessons
    1. Afspraken die je automatiseert in plaats van afdwingt
    2. Releases, versienummers en changelogs
    3. Onboarding: van eerste dag tot eerste pull request
    4. Technische schuld meten en plannen
    5. Mentorschap in het gilde
    6. Moeilijke gesprekken over code
    The assignment

    Zet voor een echt project (van een klant of open source) een volledige werkwijze op: bijdragegids, CI met tests en linting, release-proces en een onboardingdocument, en begeleid één Compagnon bij een eerste bijdrage. Neal controleert de werkwijze en vraagt de Compagnon hoe de begeleiding verliep.

The masterpiece

How you become a Master in this craft

Je bouwt of vernieuwt grondig een stuk software dat echt gebruikt wordt, voor een klant of als substantiële bijdrage aan een open-sourceproject. Je levert werkende code met tests en CI, een architectuurdossier met ADR's en een overdrachtsdocument. Neal leest de code, laat je keuzes verdedigen en controleert dat een andere ontwikkelaar het werk kan overnemen.

Real work, judged by Neal. You are a Master per craft, not in the whole trade at once.

For clients

What you can do for clients with this

What a client can ask of you once you've mastered this craft, and from which rank. Durations are indicative.

  • From Master

    Code-audit

    U hebt software laten bouwen en wil weten of ze gezond is: is ze onderhoudbaar, veilig genoeg en klaar voor de toekomst?

    What you deliver

    • Rapport met de belangrijkste risico's, in gewone taal
    • Lijst met concrete verbeteringen, gerangschikt naar belang
    • Inschatting van de inspanning per verbetering
    • Bespreking van een uur met uw team of leverancier
    Duration
    3 tot 5 dagen
    For whom
    Kmo's die software van een vorige leverancier of freelancer erfden
  • From Compagnon

    Tests en automatische controle

    Elke aanpassing aan uw software wordt voortaan automatisch getest, zodat er minder breekt bij een update.

    What you deliver

    • Testsuite voor de belangrijkste functies
    • Automatische controle bij elke wijziging (CI)
    • Korte handleiding om zelf tests toe te voegen
    Duration
    1 tot 2 weken
    For whom
    Bedrijven met een eigen applicatie zonder of met weinig tests
  • From Compagnon

    Automatisering van repetitief werk

    Taken die iemand elke week met de hand doet (lijsten overtypen, bestanden hernoemen, rapporten samenstellen) worden een script dat het voor u doet.

    What you deliver

    • Werkend script of kleine tool
    • Installatie op uw computer of server
    • Handleiding van één pagina
    • Een maand nazorg voor kleine aanpassingen
    Duration
    2 tot 5 dagen
    For whom
    Kleine zaken en vzw's met veel manueel administratief werk
  • From Master

    Oude software stap voor stap vernieuwen

    Uw bestaande applicatie wordt vernieuwd zonder dat ze een dag stilligt, in kleine stappen die u kunt volgen.

    What you deliver

    • Analyse van de huidige toestand
    • Stappenplan met prioriteiten
    • Uitvoering van de eerste fases
    • Documentatie voor wie na ons komt
    Duration
    4 tot 12 weken
    For whom
    Bedrijven die afhangen van een verouderde interne toepassing
  • From Master

    Begeleiding van uw ontwikkelteam

    Een Meester kijkt mee met uw ontwikkelaars, geeft reviews en helpt goede gewoontes invoeren rond Git, testen en AI-assistenten.

    What you deliver

    • Wekelijkse reviewsessies
    • Afsprakendocument voor het team
    • Werkwijze voor veilig gebruik van AI-assistenten
    • Eindverslag met aanbevelingen
    Duration
    1 tot 3 maanden, een halve dag per week
    For whom
    Kleine ontwikkelteams en starters met een eerste developer in dienst

Work

Jobs on the Belgian market

These are the job titles this craft leads to. Training is no job guarantee: your portfolio and your work make the difference.

  • Software developer
  • Full-stack developer
  • Back-end developer
  • Python developer
  • TypeScript developer
  • Test automation engineer
  • Software architect
  • Tech lead

Certifications

Certifications the modules prepare you for

Real certifications, awarded by the issuer itself. We don't award them: you sit the exam with the issuer. Always check the current content and price with the issuer.

  • GitHub Foundations

    IssuerGitHub

    Basis van Git en GitHub; sluit aan bij de module Git en GitHub.

  • GitHub Actions

    IssuerGitHub

    Automatisering en CI op GitHub; sluit aan bij de module Testen.

  • PCEP – Certified Entry-Level Python Programmer

    IssuerOpenEDG Python Institute

    Instapcertificaat Python; sluit aan bij de module Python.

  • PCAP – Certified Associate Python Programmer

    IssuerOpenEDG Python Institute

    Het niveau daarboven, voor wie Python verder uitdiept.

  • ISTQB Certified Tester Foundation Level

    IssuerISTQB (in België en Nederland via BNTQB)

    Algemene testkennis; sluit aan bij de module Testen.

Reading comfort

Make the site easier to read. Your choice is kept on this device.

Text size

Prefer your device's own settings (zoom, screen reader, dark mode)? They work here too.