Axxes IT Consultancy

We are learners

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 (https://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: https://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.

Welk type reiziger ben jij?

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.

Kies je gids en omring je

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: https://frontendmasters.com/books/front-end-handbook/2018/

Indien je meer visuele vormen zoekt, kunnen deze helpen:

Developer handbook - frontend Developer handbook - backend

 

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.

De impact van leren op teamwork

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.

Ken je leerstijl

Iedereen heeft zijn/haar eigen voorkeur medium om snel te leren. Ik som er enkele op:

Blijf door de bomen het bos zien

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:

Podcasts, mijn medium

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:

  • https://dotnetrocks.com/ Dit is waarschijnlijk één van de meest beluisterde en met meer dan 1590 afleveringen ook de langst bestaande podcast. Richard Campbell en Carl Franklin hebben samen gewoon een ton aan ervaring, zoveel verhalen te vertellen en beiden een zeer aangename stem om naar te luisteren. De show focust op het .NET platform maar ook algemenere topics komen aan bod. De geekouts over smart homes, moon base, life on another planet of modern agriculture zijn gewoon goud waard.
  • https://thewebplatformpodcast.com/ Deze podcast gaat over web standaarden en de mensen die deze vorm geven. Een must voor elke web developer.
  • https://thenewstack.io/podcasts The new stack is een group van gerelateerde podcasts die gaan over de nieuwste ontwikkeling binnen software. Deze zijn niet gerelateerd aan een bepaalde technologie en heeft gasten van alle strekkingen. Veel afleveringen focussen op devops en microservices.
  • https://www.codenewbie.org/basecs Deze podcast is echt geweldig. Men zegt wel eens: “Building on the shoulders of giants”. Dit wil echter niet zeggen dat het niet nuttig kan zijn om de oorsprong of de onderliggende basis te kennen die al lang verstopt is achter de nodige abstracties. Wat is een StackOverflowException nu juist? Deze show die altijd vrij kort is gaat terug naar de basics van computerwetenschappen.
  • https://www.infoq.com/the-infoq-podcast/podcasts/ Deze groep van podcasts gaat meestal over cultuur binnen organisaties en de invloed hiervan op de applicatie architectuur en de manier waarop software ontwikkeld wordt binnen deze omgeving. De onderwerpen zijn misschien iets minder toegankelijk voor de beginnende software engineer maar zeker de moeite waard om het toch eens uit te proberen.
  • https://devchat.tv/ Een reeks van podcasts die voornamelijk focussen op front-end.
  • http://hacktostart.com/ Het recept van deze podcast is heel eenvoudig: we nodigen een founder van een startup uit. Eenmaal in de show kan deze zijn verhaal doen. Welke moeilijkheden zijn er op zijn of haar pad geweest? Wat maakt hun product innovatief.
  • http://azpodcast.azurewebsites.net/ Een vast panel die Azure services bespreekt samen met iemand van het desbetreffende development team.
  • https://syntax.fm/ Wes Bos en Scott Tolinski die praten over hun leven als freelance developers. Dit gaat over work/life balance, deadlines , nieuwe web technologieën, office setups, beer en BBQ.
  • https://www.apiacademy.co/podcast Spijtig genoeg is de laatst gepubliceerde show al geleden van 2017. Maar de mensen achter deze podcast zijn een autoriteit op het gebied van api’s en daarom moet deze podcast gewoon vernoemen. De ondertussen oude shows zijn nog altijd relevant. Tot op heden heb ik nog geen podcast kunnen vinden die dezelfde topics behandeld.

Bijleren in software development

Trainen, trainen, trainen

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.

Experimenteren en doen

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!

Over de auteur

Kris Bulté

Kris Bulté

.NET Developer

Deel dit artikel

LEER ONS BETER KENNEN

Maak alvast beter kennis met Axxes en onze bedrijfscultuur!

Ben jij ook een 'learner'?

Wij zijn op zoek naar developers die graag blijven bijleren.

Blijf op de hoogte van nieuws en updates in de sector