Wiskunde had je nodig op school. Maar heb je het als IT-er ook in de praktijk nodig?

Ingediend door Dirk Hornstra op 30-nov-2020 22:31

Zoals met veel dingen in het leven moet je het "onderhouden" om de kennis actief te houden. Op de HAVO-MBO had ik naast wiskunde ook biologie in mijn pakket. Een mooi vak, maar ik doe daar nu niets meer mee. Dus vragen over celdeling en mytogondriën, ik ben bang dat ik de antwoorden niet echt meer weet.

Ik ben 19 jaar geleden afgestudeerd voor de opleiding Hogere Informatica en daar heb ik naast wiskunde ook statistiek gehad (of was dat nog bij de Accountancy opleiding die ik daarvoor gedaan heb)? In ieder geval, ook daarvan zal ik veel dingen kwijt zijn. Want als developer ben ik niet dagelijks bezig om formules uit te spitten of zelf te bedenken. Je bent bezig om nieuwe modules toe te voegen aan een website. Schermen, knoppen, databasetabellen. Dat is allemaal redelijk rechtuit-rechtaan. Zijn dan al die uren die ik aan het verplichte vak wiskunde besteed heb nutteloos geweest?

Nee, want doordat je snapt hoe formules werken, hoe berekeningen gedaan worden, geeft het je een voorsprong op iemand die deze kennis niet heeft. Het is natuurlijk ook afhankelijk van waar je mee bezig bent. Zo kwam bij een vorige werkgever een project voorbij voor een zorgverzekeraar en allemaal formules over lichaamsgewicht, calorieën, BMI en kon ik (na soms wat Google zoekacties) snappen wat er eigenlijk in die formules stond en hoe ik dat kon omzetten naar code die met dezelfde input hetzelfde resultaat op zou leveren.

Het echt werken met formules in code valt onder de noemer "functioneel programmeren". F# is daar een voorbeeld van. Hoewel ik daar al eens een blik op geworpen heb, moet ik me daar nog in verdiepen. Dus als ik nu een probleem moet oplossen wat eigenlijk een functioneel probleem is en veel beter op die manier opgelost kan worden, val ik toch weer terug naar het ombouwen van dat probleem naar een oplossing in C# (of PHP).

Juist omdat ik nog zoveel dingen moet doen en dat allemaal wat in mijn hoofd zit (en ik deze niet op een TODO-lijstje wil zetten), ben ik bezig om voor mezelf een online omgeving op te zetten waar ik al die dingen als "projecten" aan kan maken, bijbehorende documenten kan uploaden, acties kan aanmaken en zo meer controle kan uitoefenen op wat er nog moet gebeuren. 

Zo is er één project wat eigenlijk ook wel weer een leuk wiskundig probleem oplevert. Ik heb een aantal helden, één daarvan is Scott Hanselman (link). Scott heeft bij een bank gewerkt, bij andere bedrijven en hij werkt inmiddels al een flink aantal jaren bij Microsoft. Hij is een goede spreker, doet podcasts en nog veel meer. In februari 2019 kwam Scott naar Nederland en zijn mijn collega Anne en ik naar Den Bosch gegaan om hem te zien en te horen (link). Ik volgde Scott toen nog niet zo goed, dus ik wist niet dat hij podcasts had. Inmiddels weet ik dat wel (dat kun je hier ook regelmatig terugvinden op deze site), want na dat evenement ben ik begonnen bij podcast 1 en was mijn plan om elke week zo ongeveer 5 podcasts te beluisteren. 

Dat was op zich wel te doen, elke dag een half uur in de auto naar het werk en weer een half uur terug, een podcast duurt ongeveer 45 minuten, SD-kaartje in de autoradio en luisteren maar. Maar goed, toen kwam corona om de hoek, had ik geen reistijd meer, maar dus ook niet dat "loze uurtje" waarin ik naar de podcast kon luisteren. Vervolgens wel meer gaan wandelen en dan nog wat podcasts beluisterd.

Inmiddels ben ik bij podcast 267. Laten we zeggen dat ik deze week de overige 3 ook beluister, dan begin ik in de week van maandag 7 december met podcast 270. Inmiddels staan er 764 podcasts van Scott online (link) en dat gaat door: elke week komt er een podcast bij. Dus laten we ook aannemen dat er dan 765 podcasts zijn.

De wiskundige vraag klinkt simpel: bovenstaande is de beginsituatie, dus wanneer ben ik "bij" en hoef ik niet meer 5 podcasts per week te beluisteren, maar kan ik er 1 per week luisteren (en kan ik dezelfde inhaalslag met de podcast van Dotnet Rocks beginnen: link ? ).


            var date = new DateTime(2020, 12, 7);
            var startPodCast = 270;
            var totalPodCasts = 765;
            while (startPodCast < totalPodCasts)
            {
                startPodCast += 5;
                totalPodCasts++;
                date = date.AddDays(7);
            }
            Console.WriteLine($"Finished: {date.ToString("dd-MM-yyyy")}");
            Console.WriteLine($"Newest podcast: #{totalPodCasts}");
            Console.WriteLine($"My last podcast: {startPodCast}");
            Console.ReadKey();

Volgens dit codeblok ben ik klaar op 24 april 2023, Scott heeft dan podcast 889 opgenomen, ik zou dan bij podcast 890 zijn (dus die laatste week hoef ik "maar" 4 te luisteren). Nog even terugrekenen, ik loop nu 495 afleveringen achter. Door 5 per week te beluisteren moet ik nog 99 weken een inhaalslag maken. In die 99 weken zijn er weer 99 bij gekomen. Daar ben ik 19,8, zeg maar 20 weken mee bezig. Dan zijn er weer 20 podcasts bijgekomen, 4 weken nodig en dan zit ik in de laatste week. 99 + 20 + 4 + 1 = 124 weken (= 868 dagen). Dit tel ik op bij 7 december 2020, het antwoord daarop is nogmaals 24 april 2023, wat mij betreft de bevestiging dat de berekening klopt.

Maar dat duurt dus wel erg lang. Daarom in de bovenstaande formule maar even de aanpassing gedaan dat ik per week 10 podcasts beluister. Daarmee zorg ik dat ik op 27 december 2021 bij ben. Nog even een jaartje doorbuffelen dus. Want naast het beluisteren probeer ik ook nog een korte samenvatting op deze site toe te voegen, zodat handige tools die besproken worden, een nuttig boek of andere dingen ("dit moet ik nog eens bekijken/uitzoeken") hier nog terug te vinden zijn.