Toen ik in 1997 begon met de opleiding Hogere Informatica gebruikte ik volgens mij als zoekmachine altijd Altavista. Mijn klasgenoot Gert de Jong kwam toen aan met Google: een hele nieuwe zoekmachine. We weten hoe dat gelopen is, Googelen is inmiddels een werkwoord. Hoewel zoekmachines handig zijn voor "gewone mensen" die naar informatie en nieuws op zoek zijn, het is ook superhandig voor software ontwikkelaars. Want als je een vage foutmelding krijgt bij het bouwen van je applicatie, waar kun je een antwoord vinden? En hoewel ik nog vaak via Google op basis van goede kernwoorden zoek, kom ik 9 van de 10 keer op de website van Stack Overflow. Dus als Google een keer plat zou liggen, dan zou ik ook rechtstreeks naar https://stackoverflow.com/questions kunnen surfen.
Ik heb nu dus al ongeveer 14 jaar gebruik gemaakt van die site. Developers zetten er hun problemen/foutmeldingen op, andere developers geven er antwoorden/alternatieven op en op die manier hoeft je baas je niet voor 4 uur "zoeken naar een oplossing" te betalen maar voor "15 minuten zoeken, 3 uur en 45 minuten echt werk kunnen doen". Je moet natuurlijk wel zelf na blijven denken. Een oplossing kan goed zijn of werken, maar het zal vaak een stuk beknopte code zijn. Randgevallen worden misschien niet afgevangen, of er zit een mogelijk security-issue in. Dus altijd zelf nadenken en beter maken!
In de wereld van torrents heb je seeders en leechers. Seeders zijn de mensen die data beschikbaar stellen, leechers zijn de mensen die alleen maar de films en andere zaken binnenhalen en niet zelf delen. Op dit moment voel ik me een leecher, want zelf heb ik (bijna) geen bijdrage teruggeleverd aan deze site. Het is tijd om daar verandering in te brengen. Het is mooi om iemand met een probleem verder te kunnen helpen, mensen die het probleem ook hebben een potentiële oplossing te kunnen bieden. Tevens kun je punten krijgen en "badges" voor je activiteiten op Stack Overflow. Ook weer een mooie manier om je op jouw CV te kunnen onderscheiden van je collega-developers die alleen op het werk wat zitten te coden, maar de rest van de avond maar wat voor Netflix hangen. De "master of all" is Jon Skeet, in podcast 200 van Scott Hanselman heeft hij een gesprek met hem. Toen (2018) had hij een score boven de miljoen, hij zat dan ook bijna elke dag op deze site om vragen te beantwoorden. Ook bij zaken die niet in zijn vakgebied lagen, het was dan een mooie gelegenheid om een andere programmeertaal te leren en zo iemand anders te helpen. Zijn profiel staat hier: link. Ook toen zou ik actief aan de slag op Stack Overflow. Laat ik het nu echt doen!
Tenminste, dat was de bedoeling, om vragen te beantwoorden. Maar de vragen gaan over "van alles en nog wat". Dus zaken in mijn vakgebied (C#, javascript, php), maar ook over software waar ik zelf (nog) niet mee gewerkt heb (of veel te weinig): R, Angular, Haskell, Python, SQLite, React, XCode, RabbitMQ. De eerste avond ben ik gaan bladeren en kwam eigenlijk alleen maar dingen tegen waarvan ik dacht: ik weet bij de eerste blik al niet waar het over gaat, dus ik hoef de vraag niet eens aan te klikken om meer details te bekijken, want het antwoord weet ik toch niet. De tweede avond heb ik een soort 'crawler' gemaakt die de vragen-pagina's van Stack Overflow binnenhaalde: URL, titel, tags, aantal antwoorden. Goede controle daar bij SO, want op een bepaald moment krijg ik de response dat ik "teveel requests naar de site stuur". Ik heb nu een mooie lijst van 4.205 vragen. Op de derde avond heb ik deze geïmporteerd in Excel en ben gaan filteren op zaken in mijn vakgebied. Maar helaas, ook hier weer vragen waarbij ik denk "waar gaat dit over". Het is logisch dat de "makkelijke vragen" inmiddels beantwoord zijn en dat er nu echt ingewikkelde vragen en problemen naar voren komen, maar ik had gehoopt dat er iets bij zou zitten.
Na deze ervaring ben ik alleen maar meer onder de indruk van de prestatie van Jon Skeet! En het maakt je nederig, hoewel ik op mijn LinkedIn-profiel "Senior" Software Engineer heb staan, begin je jezelf bijna als een junior-developer te zien. Dit is ook wel vaker bij de uitzendingen van Scott Hanselman voorbij gekomen, de vraag hoe "senior" je bent heeft niet zoveel met leeftijd en aantal jaar dat je "mee draait" te maken, maar meer met hoe snel je dingen oppikt, je nieuwe programmeertalen onder de knie krijgt, je problemen zoals je die hier ziet op kunt lossen.
Mijn agenda is (te) vol om een echte bijdrage te leveren. Ik zou net als Victor Gevers (twitter-profiel) een sabbatical jaar moeten opnemen. Hij heeft dat hele jaar naar security-issues e.d. gezocht, ik zou dat hele jaar elke dag met vragen op Stack Overflow aan de slag moeten gaan. Nieuwe talen leren, zaken uitzoeken, antwoorden geven. En dan (pas) zou je kunnen zeggen: ik ben een senior-developer!
Voetnoot: Dit geldt voor mij, in deze tijd van corona hebben wij het als ontwikkelaars alleen maar drukker dan druk. Maar mocht je student zijn, of "tussen" banen zitten, dan is dit een goede manier om je kennis te onderhouden en uit te breiden. En als je het goed doet is dat ook nog eens een mooi item om op je CV te plaatsen!