Binnen de wereld van softwareontwikkeling is verandering een vaste waarde maar hoe ga je hiermee om?
Elke dag zijn er nieuwe programmeertalen, methodologieën, frameworks en tools die in het leven worden geroepen. Bedrijven zoals Thoughtworks proberen deze veranderingen al sinds 2010 in kaart te brengen via hun ondertussen gerenommeerde Technology Radar (http://www.thoughtworks.com/radar/faq). Deze radar is een document dat de veranderingen binnen software development documenteert en visualiseert. Via deze tool probeert Thoughtworks de bewegingen binnen de software community te volgen met het oog op het maken van de juiste keuzes binnen hun eigen projecten. De radar is zo populair dat deze ondertussen open source is en iedereen zijn eigen radar kan genereren en publiceren: http://github.com/thoughtworks/build-your-own-radar.
Alhoewel er continu beweging is binnen de software community, is er zeker geen reden tot paniek. De mensen die hiermee moeten omgaan, software developers, zijn een speciale soort die het leuk vinden om uit hun comfort zone te komen en de juiste mindset hebben om steeds opnieuw bij te leren. Zoals Alberto Brandolini reeds zei: “We are learners” en “Software development is a learning process, working code is a side effect”.
Vaak wordt gezegd van software development dat het een self-sustaining business is omdat we iets bouwen dat daarna, omwille van nieuwe inzichten en technologieën, opnieuw gebouwd moet worden. Daar ben ik het volledig mee eens want elke architectuur, framework of library zorgt voor nieuwe inzichten en ervaringen. Wat vervolgens weer het startpunt kan zijn voor de volgende architectuur, framework, tool of methodologie.
Persoonlijk zie ik softwareontwikkeling als een oneindige reis of queeste. Elke developer, of dit nu een hobby developer, student of professionele developer is, zal te maken krijgen met het leren van zijn eerste programmeertaal. En eens je deze eerste milestone bereikt en je aan een volgende taal start, weet je dat je reis vervolgd wordt.
En net als bij reizen kan je aanpak verschillen. Avontuurlijke reizigers nemen gewoon rugzak en tent. Zij weten vaak niet waar ze zullen stoppen of wat hun eindbestemming is. In de software community bestaan deze ook. Mensen die van allerlei technologieën proeven. De ene dag Java of C# en de andere dag Javascript of Golang. Maar je hebt er ook die de voorkeur geven aan een uitgestippelde reis, met eindbestemming en met aangeduid de bezienswaardigheden die ze zeker moeten gezien.
Of je nu avonturier bent of eerder iemand die een guided experience verkiest maakt niet uit. Zolang het doel maar duidelijk is. Een gids kan je daarbij helpen. Zeker wanneer je nieuw bent in de software community en overspoeld wordt door het aanbod waardoor je niet meer weet van welk hout pijlen te maken.
Een bekende gids voor front-end developers is The Front-End Developer Handbook: http://frontendmasters.com/books/front-end-handbook/2018/
Indien je meer visuele vormen zoekt, kunnen deze helpen:
Op lange termijn is het echter voordelig om zelf je keuzes te maken en zelf een pad uit te tekenen.
Sommige zullen heel veel tijd investeren in leren en daardoor snel progressie boeken. Anderen zullen hun tijd nemen, een pak trager gaan en langer blijven hangen bij hun eerste programmeertaal. De snelheid waaraan je leert staat los van leeftijd, geslacht of andere factoren. Er is maar één zekerheid, je evolutie stopt wanneer je de handdoek in de ring gooit en stopt met leren.
Sommige developers zullen gewoon geluk hebben doordat ze omringd en getriggerd worden door de juiste mensen die ze op hun reis tegenkomen. Die boeiende invloeden kunnen een boost geven en een snellere evolutie in de hand werken. Bij Axxes proberen we dit op te lossen en deze evolutie te stimuleren door een jaarlijks traineeship te organiseren voor schoolverlaters, cross competence knowledge sharing, de mogelijkheid om aanwezig te zijn op conferenties in binnen en buitenland of door zelf een conferentie te organiseren (Haxx).
Wat ook vaak vergeten wordt, is dat je ongelooflijk veel kan leren door simpelweg te kijken naar andere developers hun code. Het gezegde “Stelen met je ogen” is iets wat al te vaak onderschat wordt. Het is leuk en leerzaam om te zien hoe andere mensen problemen oplossen of hun code structureren. Scott Hanselman schreef hierover een blog post een tijdje geleden “Reading source code by the fire”.
Het mag duidelijk zijn dat ikzelf de opportuniteit om constant nieuwe zaken te ontdekken of bij te leren van andere developers erg toejuich. Het maakt alleszins mijn job binnen softwareontwikkeling heel aantrekkelijk.
Natuurlijk is er ook een andere kant van de medaille. Wanneer men een team samenstelt krijg je een mix van mensen die allemaal op een verschillend punt gekomen zijn in hun reis/evolutie. Software bouwen en hiervoor samenwerken met een groep van mensen die elk hun eigen evolutie doormaken is daarom in het minst een uitdaging te noemen. Bij Axxes weten we dit. Naast het jaarlijkse traineeship voor schoolverlaters up to speed te krijgen proberen we bij Axxes elke consultant te stimuleren om zijn kennis op pijl te houden door middel van een rijk aanbod aan opleidingen, workshops, aanwezigheid op usergroups en conferenties in binnen en buitenland.
Iedereen heeft zijn/haar eigen voorkeur medium om snel te leren. Ik som er enkele op:
Momenteel is er een erg groot leeraanbod, zoveel zelf dat we bijna verzadigd zijn. Zeker als het gaat over softwareontwikkeling. Het internet is daarbij een hele rijke bron aan content. Het is als het ware een virtuele universiteit die content bereikbaar maakt voor iedereen, op elk moment en op allerlei manieren. Voor mensen met keuzestress is het belangrijk om stil te staan wat jouw voorkeursmedium is om makkelijk en snel te leren. Maar zelfs binnen hetzelfde medium kan je nog spreken van verschillende stijlen. Het gaat dus niet op te stellen dat, als je favoriete medium video zou zijn, je elke video kan bekoren. Elke auteur/content creator heeft zijn eigen stijl om informatie over te brengen.
Concreet is Wes Bos voor mij een heel goeie bron om front-end gerelateerde zaken bij te leren. Dit omwille van zijn down to earth, praktijkgerichte en pragmatische aanpak:
Spending some time on an outline for a Modern Beginner JS course I’ve been thinking about for a long time.
If you are new to JS in the last year or two, I’d love to hear any feedback on things you struggled with, or things that were glossed over in most material
— Wes Bos (@wesbos) March 17, 2018
Door de jaren heen heb ik gemerkt dat auditief leren door het afspelen van podcasts in de auto voor mezelf heel goed werkt. Op deze manier kan ik de verloren tijd in de file ombuigen naar een nuttige tijdsbesteding. Bij Axxes behoor ik tot de .NET competence groep, maar toch probeer ik er een brede waaier aan podcasts op na te houden. Door mijn kennis en interesses breed te houden helpt het mij om de taal van anderen te spreken en efficiënter te communiceren met andere engineers (bv. Network, ALM, …).
Communicatie tijdens projecten is vanuit mijn ervaring vaak het struikelblok. Door mijn kennis breed te houden kan ik op dezelfde golflengte blijven communiceren wat ervoor zorgt dat we onze doelen binnen het project vaak makkelijker bereiken. De laatste jaren heb ik dikwijls de vraag gekregen, van mensen die mijn pad kruisen bij klanten, om mijn podcast playlist te delen. Bij deze een selectie, en meteen ook een persoonlijke top 10:
Net zoals een sporter zijn lichaam en spieren moet trainen om beter te worden moeten ook wij, software developers, onze hersenen trainen om sneller te kunnen leren.
Een sportman gaat elke dag trainen en wisselt dit af met rustpauzes en proteïnes zodat het spierweefsel herstelt. Zo moet ook ons brein wennen aan deze constante stroom van informatie. Alleen door oefening en op de juiste moment pauzes in te lassen zal het steeds beter gaan om nieuwe content sneller onder de knie te krijgen.
Nice to know: het voordeel met digitale media is dat je de afspeelsnelheid kan verhogen waardoor niet enkel in een kortere tijd informatie kan doorgenomen worden maar tegelijkertijd train je ook je brein om sneller informatie te verwerken. Dit is een leuke standaard feature van o.a. de Pluralsight video player.
De rustpauzes leg ik mezelf op door enkel op de weg naar of van het werk podcasts af te spelen. Zo behoud ik het evenwicht.
Leren is slechts één deel van het proces dat nodig is om iets onder de knie te krijgen. De volgende logische stap is er iets mee doen.
You can’t learn how to ride a bike by watching someone else riding a bike.
Now go learn something!
Maak alvast beter kennis met Axxes en onze bedrijfscultuur!
Wij zijn op zoek naar developers die graag blijven bijleren.
+32 3 234 99 58