Programming at Waag
Waag BY-NC-SA

Waar denk je aan als je het woord 'programmeur' hoort?

Dat de IT-sector niet divers is kan afschrikwekkend werken. Als je jezelf niet als softwareontwikkelaar ziet heb je wellicht te weinig zelfvertrouwen om door te zetten. Als je een klas vertelt dat meisjes slechter zijn in wiskunde dan jongens, dan zullen de meisjes ook slechter gaan presteren dan de klas waaraan je dat niet vertelt. Eenzelfde onzekerheid wordt gecreëerd bij mensen die niet voldoen aan hun vooroordeel over wat een softwareontwikkelaar is.

Zoals Rebecca Parsons zegt in Let's Talk about AI, ML and Bias: er is niets mis met het hebben van vooroordelen, iedereen heeft ze en het helpt je functioneren, maar laten we wel trachten nadelige vooroordelen te veranderen.


Een niet-diverse IT-sector leidt ook tot slechtere technologie. Een groep van gemiddelde probleemoplossers met een diverse achtergrond presteert beter dan een niet-diverse groep van experts. Omdat je als je anders denkt je dingen anders ervaart, ziet de diverse groep gezamenlijk meer manieren van aanpak, enzovoorts. Vooroordelen werken door in onze technologie. Neem bijvoorbeeld automatische zeeppompen die niet werken bij een zwarte huidskleur. En wat als bepaalde vooroordelen doorwerken in de AI die helpt bij het automatisch bepalen van recidivisten? Een diversere IT-sector leidt tot een betere maatschappij.

Verslag van de eerste 'Inclusive Programming' workshop


De meeste deelnemers aan deze eerste workshop hadden geen tot weinig ervaring met programmeren. Zij hadden hun eigen laptop meegenomen en we gingen aan de slag. Learning-by-doing.


Er werd besproken wat programmeren inhoudt. Veel deelnemers noemden het woord 'code schrijven', en dat klopt. Ik zie programmeren graag als het maken van gestructureerde poëzie. Als programmeur schrijf je code zodat de computer het begrijpt, maar nog belangrijker is dat anderen het ook begrijpen. (Of zoals Juanita aangaf, dat je het zelf later ook kunt begrijpen.)



"Programs must be written for people to read, and only incidentally for machines to execute."
– Harold Abelson



Een computer snapt fundamenteel enen en nullen. Voor mensen is het erg lastig om daarin te programmeren. Dus code wordt vaak geschreven in een taal die beter voor mensen is te begrijpen. Vervolgens heb je een evaluator of compiler die de geschreven code interpreteert en omzet naar een taal van een lager abstractieniveau dat de computer snapt.


"It is no exaggeration to regard this as the most fundamental idea in programming: The evaluator, which determines the meaning of expressions in a programming language, is just another program."
– Harold Abelson, Gerald Jay Sussman & Julie Sussman in SICP

.

Ontwikkelomgeving

Een compiler die de geschreven code (in de programmeertaal Clojure) omzet naar een formaat dat de webbrowser begrijpt zit ingebakken in de ontwikkelomgeving die we in deze workshop gebruikten. We maakten gebruik van een online ontwikkelomgeving zodat je niet uren bezig bent met je eigen computer klaar maken. Deze ontwikkelomgeving (ofwel Intelligent Development Environment, IDE) lieten we zien en toen ging iedereen aan de slag.

De ClojureBridge Nightcoders.net ontwikkelomgeving (IDE)
De ClojureBridge Nightcoders.net ontwikkelomgeving (IDE)

Helaas hadden we technische problemen waardoor de IDE niet zo’n genot was om in te werken als normaal. Aanwezigen hadden soms de goede oplossingen gemaakt voor de vragen, maar dan werkte het niet. Dit was jammer, maar desalniettemin was het voor iedereen leerzaam om het overzicht te zien van wat er komt kijken bij het maken van een webapplicatie. 

Omdat de IDE niet meewerkte gingen we verder met de ontwikkelomgeving en vragen van maria.cloud. Al snel zag ik overal cirkels op het scherm die door de code werd gegenereerd.


Ik vond het prachtig om aan het eind te horen dat een aantal thuis door wilden gaan en aangaven er de volgende keer weer bij te zijn. Het doel was om mensen te inspireren en te laten geloven in hun eigen kunnen. Daar zijn we denk ik in geslaagd.

Kom je ook de volgende keer? Inclusive Programming #2 zal plaatsvinden op 11 april van 20:00 tot 22:00 uur. Geef je op!