Vibe codering - Sample
My Account List Orders Book Page

Vibe codering

Inhoudsopgave

  • Inleiding
  • Hoofdstuk 1 Wat is Vibe Coding?
  • Hoofdstuk 2 Je creatieve programmeeromgeving instellen
  • Hoofdstuk 3 De kunst van praten met AI: Een inleiding tot prompting
  • Hoofdstuk 4 Je eerste vibe-gecodeerde programma
  • Hoofdstuk 5 Variabelen en datatypes begrijpen
  • Hoofdstuk 6 Beslissingen nemen in je code met conditionals
  • Hoofdstuk 7 Acties herhalen met loops
  • Hoofdstuk 8 Herbruikbare code maken met functies
  • Hoofdstuk 9 Werken met lijsten en dictionaries
  • Hoofdstuk 10 Een inleiding tot objectgeoriënteerd programmeren
  • Hoofdstuk 11 Je code debuggen met AI-hulp
  • Hoofdstuk 12 Je eerste eenvoudige webpagina bouwen
  • Hoofdstuk 13 Je webpagina stylen met CSS
  • Hoofdstuk 14 Interactiviteit toevoegen met JavaScript
  • Hoofdstuk 15 Inleiding tot API's en hoe je ze gebruikt
  • Hoofdstuk 16 Een eenvoudige applicatie bouwen met een API
  • Hoofdstuk 17 Versiebeheer met Git en GitHub
  • Hoofdstuk 18 Samenwerken met anderen aan programmeerprojecten
  • Hoofdstuk 19 Van idee tot prototype: Een Vibe Coding-werkstroom
  • Hoofdstuk 20 AI-gegenereerde code verfijnen en verbeteren
  • Hoofdstuk 21 Een persoonlijke portfolio-website bouwen
  • Hoofdstuk 22 Een eenvoudig spel maken
  • Hoofdstuk 23 Inleiding tot data en databases
  • Hoofdstuk 24 De toekomst van Vibe Coding en AI in ontwikkeling
  • Hoofdstuk 25 Je programmeerreis voortzetten

Inleiding

Heb je ooit een briljant idee gehad voor een app, een website of een game, maar voelde het leren programmeren alsof je opstarde naar een onbeklimbare berg? De eindeloze regels cryptische tekst, de frustrerende foutmeldingen, het schiere volume aan talen en frameworks om te beheersen – het kan allemaal ontzettend intimiderend lijken. Voor velen is de drempel om de wereld van programmeren binnen te treden een hoge, gereserveerd voor hen met een bepaalde analytische geest en de bereidheid om oneindig veel uren te besteden aan het ontrafelen van complexe syntaxis. Wat als er een andere manier was? Een meer intuïtieve, creatieve en, durf ik te zeggen, leuke benadering om je digitale ideeën tot leven te wekken? Welkom in de wereld van "vibe coding."

De term "vibe coding" werd voor het eerst gecreëerd door Andrej Karpathy in een bericht op X op 2 februari 2025. Hij beschreef een nieuwe manier van interacteren met computers, waarbij de focus verschuift van het meticuleuze vak van het schrijven van code naar de kunst van het uiten van een intentie. Hij schreef: "Er is een nieuw soort coderen dat ik 'vibe coding' noem, waarbij je je volledig overgeeft aan de vibes, exponentiële groei omarmt, en vergeet dat de code zelfs bestaat. Het is mogelijk omdat de LLMs (bijv. Cursor Composer met Sonnet) te goed worden. Ik praat ook gewoon met Composer via SuperWhisper, dus ik raak het toetsenbord nauwelijks. Ik vraag de domste dingen zoals 'verminderd de padding aan de zijkant met de helft' omdat ik te lui ben om het te zoeken. Ik druk altijd op 'Accept All', ik lees de diffs niet meer. Als ik foutmeldingen krijg, plak ik ze er gewoon in zonder commentaar, meestal lost dat het op. De code groeit buiten mijn begrip, ik zou er even doorheen moeten lezen. Soms kunnen de LLMs een bug niet oplossen, dus ik werk eromheen of vraag om willekeurige veranderingen totdat het verdwenen is. Het is niet erg voor wegwerp-weekendprojecten, nogal amusant. Ik bouw een project of webapp, maar het is niet echt coderen - ik zie dingen, zeg dingen, run dingen, en kopieer en plak dingen, en het werkt meestal."

Dit boek is jouw inleiding tot die wereld. Het is een gids voor de absolute beginner, de nieuwsgierige creatieve, de aspirant-ondernemer – iedereen die een idee heeft en de drang om te bouwen, maar die wordt tegengehouden door de traditionele complexiteit van programmeren. We omarmen Karpathy's filosofie, geven ons over aan de vibes en benutten de ongelooflijke kracht van moderne Kunstmatige Intelligentie om het zware werk te doen. Je leert hoe je je visie communiceert aan een AI, hoe je het begeleidt, en hoe je ermee samenwerkt als een creatieve partner om echte, functionele software te bouwen. De focus ligt minder op de starre regels van syntaxis en meer op het vloeibare creatieproces.

Stel je het zo voor: traditioneel programmeren is als een meester-vakman zijn, die meticuleus een beeldhouwwerk uit een blok hout snijdt, gereedschap in hand, met elk detail pijnstakend uitgebeeld. Vibe coding daarentegen is als de regisseur van een film zijn. Je hebt een visie, een verhaal om te vertellen, en je communiceert die visie aan je cast en crew – in dit geval een krachtig Large Language Model (LLM). Je begeleidt de uitvoering, je maakt creatieve keuzes, en je vormt het eindproduct, maar je hoeft niet persoonlijk de camera te bedienen, de verlichting op te zetten, of elke scène uit te spelen. Je bent de dirigent, en de AI is je orkest.

Dit betekent niet dat we het regelboek volledig uit het raam gooien. Hoewel de "vibe" centraal staat, is het begrijpen van de fundamentele concepten van programmeren nog steeds ongelooflijk waardevol. Het is als een filmregisseur die de basisprincipes van cinematografie en montage begrijpt. Je hoeft geen expert te zijn in elk technisch detail, maar de taal en de kernprincipes kennen stelt je in staat om effectiever te communiceren en betere creatieve keuzes te maken. Door dit boek heen zullen we de essentiële bouwstenen van code behandelen – dingen zoals variabelen, lussen en functies – maar we benaderen ze vanuit een nieuw perspectief. We leren wat ze zijn en waarom ze belangrijk zijn, niet door hun syntaxis uit het hoofd te leren, maar door onze AI erom te vragen ze te gebruiken en de resultaten te observeren.

Onze reis zal een praktische zijn. We zullen niet vastzitten in dichte theoretische discussies. In plaats daarvan zullen we vanaf het begin dingen bouwen. We beginnen met het opzetten van een creatieve coderingsomgeving die AI aan je vingertoppen legt. Daarop volgend duiken we in de kunst van prompting – leren hoe we met onze AI-assistent praten op een manier die de beste resultaten oplevert. Je zult verbazd zijn hoe snel je van een simpel idee naar een werkend programma kunt gaan. We bouwen webpagina's, creëren interactieve elementen, en proberen ons zelfs aan game-ontwikkeling. Elk project introduceert nieuwe concepten en technieken, maar altijd met dezelfde onderliggende filosofie: zie dingen, zeg dingen, run dingen.

Een van de meest bevrijdende aspecten van vibe coding, zoals Karpathy opmerkte, is de vrijheid om te experimenteren zonder angst. Als je geen uren besteedt aan het handmatig schrijven van code, ben je geneiger om dat wilde idee uit te proberen, om een creatieve risico te nemen. Als het niet werkt, heb je geen uren meticuleus werk verloren. Je kunt simpelweg je prompt aanpassen, een andere aanpak proberen, of de AI vragen om het "gewoon werkend te maken." Dit iteratieve, conversationele proces ligt aan de basis van vibe coding. Het is een dialoog tussen jou en je AI, een heen-en-weer dat je project organisch laat evolueren.

Natuurlijk is dit proces niet altijd een rechte lijn. Soms begrijpt de AI je niet. Soms genereert het code met bugs. En soms, zoals Karpathy humoristisch aangeeft, groeit de code buiten je directe begrip. Dit boek zal je toerusten om die momenten aan te pakken. We verkennen strategieën voor debuggen met AI-hulp, leren hoe je een probleem beschrijft op een manier die de AI helpt een oplossing te vinden. We zullen ook het belang bespreken van het verfijnen en verbeteren van AI-gegenereerde code, het omzetten van een snelle prototype in een meer uitgewerkte en robuuste toepassing.

Je问 je misschien af of dit "echt" programmeren is. Het antwoord is zowel ja als nee. Het is niet het traditionele, regel-voor-regel programmeren dat decennialang de standaard was. Maar je bent nog steeds bezig met de kernactiviteiten van een softwareontwikkelaar: je lost problemen op, je ontwerpt systemen, en je creëert functionele software. De tools zijn veranderd, het proces is anders, maar de fundamentele daad van creatie blijft. De aard van veel banen is getransformeerd door technologie, en programmeren is geen uitzondering. Vibe coding staat aan de voorhoede van deze evolutie.

Terwijl we door de hoofdstukken gaan, zul je een portfolio bouwen van projecten die je nieuwe vaardigheden tonen. We behandelen alles van de basis van HTML en CSS voor het structureren en stylen van webpagina's, tot de fundamenten van JavaScript voor het toevoegen van interactiviteit. We duiken zelfs in de wereld van API's (Application Programming Interfaces), die je creaties in staat stellen om verbinding te maken met en data te gebruiken van andere diensten op het internet. Stel je voor een app te bouwen die het weer toont, of een website die het laatste nieuws van je favoriete bron laat zien. Met vibe coding zijn dergelijke projecten goed binnen je bereik.

We zullen ook aanraken van belangrijke praktijken zoals versiebeheer met Git en GitHub. Dit klinkt misschien intimiderend, maar het is essentieel een manier om je werk op verschillende stadia op te slaan, alsof je gespeelde spelletjes in een videogame aanmaakt. Het stelt je in staat om vrij te experimenteren, wetende dat je altijd terug kunt gaan naar een eerdere versie als er iets misgaat. En in de geest van moderne ontwikkeling zullen we verkennen hoe je met anderen samenwerkt aan coderingsprojecten, je werk deelt en samen dingen bouwt.

Dit boek is een launchpad. Het is ontworpen om je van nul naar builder te brengen, om je het vertrouwen en de vaardigheden te geven om je ideeën om te zetten in realiteit. De wereld van technologie verandert constant, en de opkomst van krachtige AI is wohl de grootste shift die we in een generatie hebben gezien. Door vibe coding te leren, leer je niet alleen een nieuwe vaardigheid; je leert hoe je collaboreert met de toekomst. Je positioneert jezelf aan de voorhoede van een nieuw paradigma in softwareontwikkeling.

Dus, maak je klaar om de exponentiële groei te omarmen. Bereid je voor om je over te geven aan de vibes. Vergeet alles wat je dacht te weten over programmeren, en open je geest voor een nieuwe manier van creëren. De reis die voor ons ligt is een opwindende, vol experimenten, ontdekkingen, en de immense voldoening van het zien hoe je ideeën tot leven komen op het scherm. Het is tijd om te stoppen met dromen over wat je zou kunnen bouwen en te beginnen met bouwen. Het is tijd om te beginnen met vibe coding.


HOOFDSTUK EEN: Wat is Vibe Coding?

Wat is deze "vibe coding" precies waar we het over hebben? Is het slechts een vangeloze slogan voor een vluchtige trend, of vertegenwoordigt het een fundamentele verschuiving in de manier waarop we software maken? In de kern is vibe coding een nieuwe filosofie van softwareontwikkeling, die intentie en conversatie prioriteit geeft boven syntaxis en uit het hoofd leren. Het is een methodologie die mogelijk is gemaakt door de recente explosie in de mogelijkheden van Kunstmatige Intelligentie, met name Large Language Models (LLMs). Het gaat erom te veranderen van een auteur, die pijnstakend elk woord van een verhaal opschrijft, naar een regisseur, die een getalenteerde acteur – de AI – begeleidt om jouw visie tot leven te wekken.

De essentie van vibe coding is het bewuste abstacteren van jezelf weg van de code zelf. Decennialang was het vak van programmeren onlosmakelijk verbonden met de daad van het tikken van precieze commando's in een specifieke taal. Een enkele verplaatste puntkomma of een vergeten sluitende haak kan het hele proces tot een plotselinge stilstand brengen. Vibe coding stelt een ander pad voor. Het moedigt je aan om te "vergeten dat de code zelfs bestaat," zoals Andrej Karpathy het formuleerde. Dit betekent niet dat de code verdwijnt; hij is nog steeds daar, ronronnend onder de motorkap. Het betekent simpelweg dat jouw primaire focus niet langer op de code ligt, maar op het resultaat.

Laten we de kernprincipes van deze aanpak opsplitsen, te beginnen met de meest evocatieve: "je volledig overgeven aan de vibes." Dit mag waasachtig klinken, maar het heeft een heel praktisch betekenis. Het betekent dat je begint met het gevoel, de esthetiek, de gebruikerservaring die je wilt creëren. In plaats van te denken: "Ik moet een CSS-regel schrijven met een padding-left eigenschap van 10 pixels," denk je: "De zijbalk voelt wat krap. Laten we er meer ademruimte aan geven." Je vertaalt die "vibe" – de behoefte aan meer ruimte – dan naar een instructie in natuurlijke taal voor je AI-assistent.

Deze verschuiving van technische specificatie naar beschrijvende intentie is de hoeksteen van het hele proces. Het is een meer menselijke manier van creëren. We denken doorgaans niet in termen van hexadecimale kleurcodes of specifieke pixelwaarden; we denken in termen van "een warmer tintje blauw" of "het logoetje iets groter maken." Vibe coding stelt je in staat om in deze natuurlijke, intuïtieve termen te communiceren. Jij bent de bron van de creatieve visie, de "vibe," en de AI wordt de onvermoeide technische vertaler die die visie omzet in functionele code.

De volgende pijler is "exponentiële groei omarmen." Dit verwijst naar de ongelofelijke hefboomwerking en snelheid die AI op tafel brengt. In traditioneel programmeren is de relatie tussen inspanning en output vaak lineair. Het schrijven van twee keer zoveel code kost ruwweg twee keer zoveel tijd. Met vibe coding is de relatie exponentieel. Een enkele, goed geformuleerde zin kan een AI dopen om in seconden honderden regels complexe code te genereren. Een kleine wijziging in je beschrijving kan leiden tot een massive verandering in de resulterende applicatie.

Deze exponentiële kracht verlaagt de drempel voor experimenteren drastisch. Wanneer een nieuw idee in minuten in plaats van dagen kan worden geprototyped, word je veel bereidter om verschillende creatieve paden te verkennen. De kosten van falen worden tot bijna nul gereduceerd. Als de eerste poging van de AI niet overeenkomt met je visie, heb je geen uren handmatige arbeid verspild. Je past simpelweg je prompt aan, verheldert je intentie, en vraagt het om het opnieuw te proberen. Dit creëert een snelle, iteratieve lus van creatie en verfijning die voorheen onmogelijk was.

Nu, wat te denken van de meer provocatieve aspecten van Karpathy's beschrijving, zoals "ik druk altijd op 'Accept All', ik lees de diffs niet meer"? Dit vertegenwoordigt het uiterste uiteinde van vertrouwen in je AI-partner. Een "diff" (kort voor difference/verschil) is een weergave die je precies laat zien welke regels code een AI wil toevoegen, verwijderen of wijzigen. Het zorgvuldig bekijken van diffs is een langgevestigde best practice in softwareontwikkeling. Blindelings alle wijzigingen accepteren is naar traditionele standaards onverantwoordelijk.

Toch benadrukt deze aanpak in de context van "wegwerp-weekendprojecten" of snel prototypen een cruciale afweging: snelheid versus controle. Door af te zien van een nauwkeurige review van elke wijziging, kan je een ongelofelijke snelheid aanhouden. Je blijft in de creatieve flow, gericht op het grote plaatje in plaats van vast te zitten in de details. Voor een beginner zouden we misschien niet adviseren om altijd op "Accept All" te klikken, maar de filosofie begrijpen is cruciaal. Het gaat erom leren vertrouwen op je tool en weten wanneer een "goed genoeg" implementatie beter is dan een "perfecte" die tien keer zo lang duurt om te produceren.

Dit brengt ons bij nog een kerntechniek: fouten afhandelen. In traditioneel programmeren is het tegenkomen van een foutmelding vaak een moment van frustratie. Het vereist dat je een detective wordt, die de bron van het probleem opspoort door potentieel onbekende code. De vibe coding aanpak is anders. Wanneer een fout optreedt, hoef je de fout niet noodzakelijk te begrijpen. Je kopieert de volledige foutmelding en plakt hem terug in de chat met je AI-assistent, soms zonder enige extra commentaar.

Dit transformeert de AI van een simpele codegenerator naar een actieve medewerker en debugger. De AI, die de volledige context heeft van de code die het zojuist schreef, kan de fout vaak direct begrijpen en een oplossing voorstellen. De workflow wordt een conversatie. Je vraagt om een functie, de AI levert het. De functie heeft een bug, je toont de bug aan de AI. De AI biedt excuses (zoals ze vaak doen) en corrigeert zijn fout. Deze conversationele lus van prompt, generatie en correctie is fundamenteel voor het proces.

Een significante, en misschien ongemakkelijke, gevolg van deze workflow is dat "de code groeit buiten mijn begrip." Terwijl jij en je AI-partner het project verder opbouwen, kan het pure volume en de complexiteit van de onderliggende code snel groeien tot buiten wat je in je hoofd kunt houden. Je kunt naar een bestand met honderden regels code kijken en slechts een algemeen gevoel hebben van wat het bewerkstelligt. Dit is een radicale afwijking van het traditionele ideaal van de meester-coder die elke duim van zijn creatie kent.

Hier wordt de "regisseur"-analogie het meest toepasselijk. Een filmregisseur hoeft niet te weten hoe de camera te bedienen of welke specifieke frequentie de geluidsmixer gebruikt voor de dialogen. Ze hoeven te weten dat de shot correct is gekaderd en de dialogen helder zijn. Op dezelfde manier leert een vibe coder om complexiteit te managen op een hoger abstractieniveau. Jouw taak is ervoor te zorgen dat de applicatie werkt zoals bedoeld, dat de gebruikerservaring klopt, en dat de algehele structuur zinvol is. Je beheert het systeem, niet elke enkele regel erin.

Laten we dus een duidelijker scheiding trekken tussen vibe coding en wat we traditioneel programmeren noemen. Traditioneel programmeren is bottom-up. Je leert de basisbouwstenen – variabelen, lussen, functies – en assembleert ze tot steeds grotere structuren tot je een complete applicatie hebt. Het is een proces van zorgvuldige, pijnstakende constructie, waarbij je tegelijkertijd architect en metselaar bent. Elk enkel stukje wordt met de hand gelegd.

Vibe coding is top-down. Je begint met de complete visie – "Ik wil een persoonlijke blog met een minimalistisch, donker thema en een sectie voor mijn fotogalerij" – en werkt je naar beneden door richtlijnen aan je AI te geven. De AI zorgt voor het "metselen," het samenstellen van de variabelen, lussen en functies voor jou. Jouw rol is die van de architect, het nemen van beslissingen op hoog niveau en ervoor zorgen dat de uiteindelijke structuur overeenkomt met het blauwdruk in je hoofd.

De kernvaardigheden verschuiven ook. In traditioneel programmeren is beheersing van syntaxis van het grootste belang. Je moet de precieze grammatica van je gekozen programmeertaal kennen. In vibe coding is de primaire vaardigheid communicatie. Je vermogen om je visie helder en effectief uit te drukken aan een AI wordt de belangrijkste factor voor je succes. Het gaat minder om te weten of je een for lus of een while lus moet gebruiken, en meer om te kunnen beschrijven wat je wilt bereiken door een actie te herhalen.

Dit betekent niet dat het begrijpen van programmeerconcepten nutteloos is. Het tegendeel, het maakt je communicatie met de AI veel effectiever. Als je weet wat een variabele is, kun je de AI vragen om "een variabele aan te maken om de naam van de gebruiker op te slaan." Als je begrijpt wat een API is, kun je de AI vragen om "data op te halen van de weers-API en de huidige temperatuur weer te geven." Je hoeft niet te weten hoe je de code hiervoor schrijft, maar weten wat je moet vragen is een superkracht.

Laten we ook duidelijk zijn over wat vibe coding niet is. Het is geen toverspreuk die een complexe, gepolijste applicatie kan creëren vanuit een enkele vaag gedachte. De kwaliteit van de output is direct evenredig aan de kwaliteit van je input. De AI is een krachtig hulpmiddel, maar het is geen gedachtenlezer. Het vereist begeleiding, verduidelijking, en een duidelijke visie van jou, de gebruiker. De "vibe" moet vertaald worden naar coherente instructies.

Verder is het geen excuus voor luiheid. Terwijl Karpathy's beschrijving humoristisch vermeld "te lui ben om het te zoeken," is het proces zelf zeer boeiend. Het verplaatst simpelweg de inspanning van tikken en syntax-controleren naar creatieve regie en probleemoplossing. Het is het verschil tussen een sloot graven met een schop en een graafmachine bedienen. Beide vereisen vaardigheid en aandacht, maar de ene geeft je exponentieel meer kracht.

De kernworkflow, zoals we al aanraakten, kan samengevat worden in een simpele lus: zien, zeggen, runnen, herhalen. Je ziet een kans voor een nieuwe functie of een verandering die je wilt maken. Je zegt wat je wilt in natuurlijke taal aan je AI-tool. Je run de code of applicatie om het resultaat van het werk van de AI te zien. Dan herhaal je het proces, verfijn je instructies op basis van de output tot het resultaat lijnt met je visie. Dit is de ritme van vibe coding.

Heel dit proces berust op een significante mentale verschuiving. Het vereist loslaten van de behoefte aan absolute controle. Je moet comfortabel worden met niet elke enkele implementatiedetail te begrijpen. Je moet leren vertrouwen op je nieuwe, niet-menselijke medewerker. Voor velen die traditioneel programmeren hebben geprobeerd en eraf zijn afgeboten, kan dit ongelofelijk bevrijdend zijn. De vrees om "het fout te doen" verdwijnt grotendeels, gemaakt plaats voor een gevoel van speels experimenteren.

De focus verschuift van correctheid naar vooruitgang. Doet de nieuwe code wat ik wilde? Ja? Geweldig, laten we doorgaan. Nee? Laten we de AI vertellen wat er mis was en het laten proberen. Deze laag-drempelige, conversationele aanpak maakt het creatieproces minder aan een starre engineering-discepline en meer aan een creatieve jam-session. Je improvisereert met de AI, bouwt voort op elkaars ideeën, en kijkt wat je samen kunt creëren.

Uiteindelijk is vibe coding een weerspiegeling van een bredere trend in technologie. We bouwen constant krachtigere tools die ons in staat stellen om op steeds hogere abstractieniveaus te opereren. We hoeven niet meer individuele bits om te draaien om een computer te programmeren; we hebben programmeertalen. We hoeven geheugentoewijzing niet meer handmatig te managen; we hebben garbage collectors. Vibe coding is de volgende logische stap in deze evolutie, waarbij we het schrijven van de code zelf abstraheren.

Het vertegenwoordigt een democratisering van softwarecreatie. Door de steile leercurve van traditioneel programmeren weg te nemen, opent het de deur voor een heel nieuwe klasse creatieven: kunstenaars, designers, ondernemers, hobbyisten, en iedereen met een idee en de wil om het na te streven. Het is de erkenning dat de vaardigheid om in de digitale wereld te creëren niet beperkt moet zijn tot hen die de arcane syntaxis van programmeertalen hebben gemasterd.

De reis waar je op het punt staat te’embarqueren met dit boek is een reis van empowerment. Je leert de kracht van AI te benutten als creatieve partner. Je leert de fundamentele concepten die alle software ten grondslag liggen, niet door regels uit het hoofd te leren, maar door ze in de praktijk toe te passen in concrete, hands-on projecten. Je leert regisseren, begeleiden, en vormgeven aan je ideeën tot tastbare, werkende applicaties. Je staat op het punt de kunst en wetenschap te leren van een visie hebben en die tot bestaans spreken.


This is a sample preview. The complete book contains 27 sections.