Van wiskundige naar software engineer

In de wiskunde is men constant bezig met het ontdekken van algemene patronen. Denk bijvoorbeeld aan de definitie van een groep. Dit is eigenlijk niets anders dan een verzameling algemene eigenschappen die we op veel verschillende plaatsen terug zien komen: in getallenstelsels, in symmetrieën van een ruimtelijk object, in matrices, etc. De redenen om zo’n abstract concept als “groep” te definiëren, zijn eenvoud en flexibiliteit. We kunnen over groepen redeneren zonder ons druk te hoeven maken over specifieke eigenschappen van getallen, symmetrieën of matrices; maar onze resultaten zijn wel in al deze situaties geldig!

Een andere praktijk waar iedere wiskundige bekend mee is, is het nauwkeurig volgen van regels. Denk bijvoorbeeld weer aan de definitie van een groep. In groepentheorie willen we weten wat we allemaal uit die definitie – en niets anders – af kunnen leiden. Of denk aan het schrijven van een bewijs. Hier moet je er voor zorgen dat al jouw stappen op een logische manier op elkaar volgen, zonder dat je iets over het hoofd zit.

Deze twee denkstijlen, het abstraheren van algemene patronen en het nauwkeurig volgen van regels, komen terug in software engineering. Als software engineer ben je in de eerste plaats bezig met het modelleren van complexe processen. Voordat je een proces in code kunt vangen, zul je eerst moeten bepalen: welke eigenschappen van het proces zijn essentieel en algemeen; en welke details kan ik weglaten? Op deze manier zorg je er voor dat de applicatie die je bouwt zo eenvoudig en flexibel mogelijk is.

Daarnaast bestaat software engineering natuurlijk uit het schrijven van code. Een programmeertaal kun je ook zien als een verzameling regels die je nauwkeurig op moet volgen. De uitdaging is ook hier om net zo lang met de regels te puzzelen totdat je voor elkaar hebt gekregen wat je wilt bereiken.

Kortom, software engineering vereist het vermogen tot abstractie en gepuzzel. Als wiskundige ben je waarschijnlijk niet alleen goed in deze dingen – het is een tweede natuur.