Blog

Q&A met back-end developer Lindy

Altijd al willen weten wat een programmeur doet tijdens zijn/haar werk? Expert Lindy legt het je haarfijn uit
Geschreven door
op
August 3, 2021

Iedereen die wil beginnen aan een opleiding tot programmeur of data analist heeft veel vragen over het toekomstige beroep. Logisch, want ze staan op het punt om een nieuwe skill te leren en daarmee hun carrière een boost of een compleet andere draai te geven. 

“Hoe ziet mijn leven eruit als ik klaar ben met mijn opleiding? Welke skills heb ik nodig om een succesvolle carrière te starten?”. Dit zijn een aantal voorbeelden van vragen die vaak voorbijkomen. En wie kan deze vragen nou beter beantwoorden dan een expert in het vakgebied. In onze webinarreeks: Ask The Expert, komen iedere keer nieuwe experts langs om zulke vragen te beantwoorden.

Welke functie bekleed Lindy als back-end developer?

In de IT is er een flinke wildgroei aan functietitels. Vaak hebben de mensen die dezelfde werkzaamheden uitvoeren een andere functietitel. Lindy draagt de titel software engineer. Dit is een brede benaming voor iemand die systemen en software ontwikkelt. 

Binnen haar functie houdt Lindy zich voornamelijk bezig met de back-end. Ze ontwerpt, ontwikkelt, schrijft, implementeert, test, verbeterd en onderhoud software. Het zijn best wat verschillende werkzaamheden. Dus hoe ziet een werkdag van een back-end engineer er dan uit? Lindy vertelde hierover het volgende: “Ik begin mijn dag altijd met een stand-up, waarbij ik met mijn collega’s bespreek wat we de dag ervoor hebben gedaan en wat er voor vandaag op de planning staat.”

Als je gaat beginnen met het ontwikkelen van code is het belangrijk om eerst de code te ontwerpen. Lindy vertelt hoe ze dit aanpakt. “Het eerste wat ik doe is het uittekenen wat voor systemen er zijn en hoe deze systemen met elkaar praten. Het is fijn om alvast feedback te vragen aan collega’s, voordat je daadwerkelijk begint met het schrijven van code. Dat je alvast vraagt: hé, ik wil het op deze manier implementeren, wat vind je daarvan, waar moet ik nog meer rekening mee houden en ken je nog tools die me kunnen helpen? Zo kun je een stuk efficiënter te werk gaan.”

Lindy vertelt verder over het schrijven van code. “Vervolgens ga ik programmacode schrijven. Vaak programmeer ik code samen. Hiervoor maak ik gebruik van GIT. Als ik klaar ben vraag ik aan een collega om mijn werk te reviewen, om zoveel mogelijk bugs te voorkomen. Bugs blijven er altijd inzitten, maar op deze manier verklein je het aantal. Als alles gereviewd en getest is kun je je code live zetten. Je kijkt dan of je vanuit je browser ook daadwerkelijk naar je programmacode toe kan gaan. Dat geeft altijd echt een kick! Als je dan je software hebt geschreven, je het voor het eerst live ziet en alles vervolgens werkt zoals je verwacht. Dan is je dag wel geslaagd denk ik!”

Welke programmeertalen beheers je? En heb je tips voor het leren van een nieuwe taal?

“Ik ben vaardig in C#, TypeScript en Python. Wat ik vooral wil meegeven over het leren van een programmeertaal is dat het belangrijk is dat je leert hoe je jezelf een taal moet aanleren. Je zult zien dat ieder bedrijf weer andere talen van je vraagt en er nooit een vacature gaat zijn waarbij je in alle talen al vaardig bent. Je zult jezelf altijd nieuwe dingen moeten aanleren. Het helpt je enorm als je snel nieuwe dingen aan kunt leren. Dit stelt je in staat om snel te kunnen groeien als developer. De eerste taal is natuurlijk altijd het moeilijkste. Daarna ga je steeds meer patronen zien en pik je ze een stuk sneller op.”

Wat voor werkzaamheden zijn er zoal binnen het werk als back-end engineer?

“Waar je bijvoorbeeld aan kunt denken is het programmeren van webshops of het programmeren van een systeem waarmee mensen die een vliegreis gaan maken op de dag van hun vertrek om hun bagage in te kunnen checken. Je kunt ook tools gaan ontwikkelen om sociale netwerken te automatiseren. Vooral met Python kennis zou je ook meer de ‘embedded’ kant op kunnen gaan. Hierbij kan je echt robots gaan programmeren. Je kunt zoveel verschillende kanten op, al zegt iedereen dat natuurlijk over zijn eigen werk.”

Een van de deelnemers vroeg aan Lindy hoe je het best kunt bepalen welke richting bij je past. Ze antwoordde hierop dat je vooral moet kijken naar wat je leuk vindt. “Houd het volgende in je achterhoofd: stel je kiest ervoor om webshops te gaan maken, dan betekent dat niet dat je heel je leven lang in de webshops blijft hangen.” Lindy voegt hier aan toe dat het meest belangrijk van het leren programmeren is dat je de logica erachter begrijpt. Als je die begrijpt kun je gemakkelijk switchen van functie.


Welke dingen leerde je pas tijdens je werk?

“Iets wat ik pas na mijn school leerde was bijvoorbeeld het onderhouden van code. Als je een stuk software hebt die al jaren draait, is het belangrijk dat je je code onderhoudbaar hebt geschreven. Zo zorg je er voor dat als je iets veranderd, er niet ergens anders iets omvalt. Dus daar houd je rekening mee tijdens het opzetten. Iets anders waar ik pas later in mijn carrière achter kwam is dat de code die werkt op je eigen computer, niet automatisch op de server werkt.”

Lindy haalt de volgende quote aan:


“It is not the strongest of the software that survives, nor the most intelligent that survives. It is the one that is most adaptable to change”. 



“Code werkend krijgen is 1 ding, code onderhouden is 2. Je wilt er natuurlijk voor zorgen dat wanneer er nieuwe vereiste binnenkomen vanuit stakeholders, je code op zo’n manier hebt geschreven dat je aanpassing geen problemen veroorzaakt. Hoe je dat kan doen zijn veel manieren voor” vertelt Lindy. Ze raadt een boek aan die je hierbij kan helpen. Clean code, geschreven door Robert Martin. “Als je wat meer visueel bent ingesteld is deze video reeks wellicht interessant, waarin Robert vertelt over de belangrijkste lessen in zijn boek over clean code. ‘Weeks of coding can save you hours of planning’. Oftewel: van te voren goed nadenken en onderzoek doen en tussentijds feedback vragen aan anderen gaat je in de toekomst veel tijd besparen.”

Wat is het verschil tussen een full-stack, software engineer, front-end en back-end developer?

“Back-end engineering zit wat meer in de programmacode, dus de back-end systemen die geen mooie voorkant hebben. Front-end zit vooral op het mooi maken van websites. Dus ervoor zorgen dat het er ook goed uitziet. Een full-stack developer heeft kennis van zowel van front-end als back-end kant. Een full-stack engineer zou je ook een software engineer kunnen noemen. Een developer die vooral werkzaamheden aan de back-end uitvoert, zoals Lindy, dragen ook vaak de titel software engineer of software developer.” Er is dus veel overlap tussen de verschillende soorten developers. Kijk wanneer je gaat solliciteren op een functie dus vooral naar de inhoud van de vacature en niet zozeer naar de functietitel. Lindy geeft de volgende tip mee voor omscholers die een baan willen in de IT maar nog niet zeker wat ze willen: ”Kijk vooral naar in wat voor technieken je geïnteresseerd bent. Is dat Python, is dat de Cloud, JavaScript, C#, of juist meer HTML, CSS, JavaScript? Ga vervolgens kijken naar wat voor baan of vacature daarbij past.”

Hoe krijg je GIT onder de knie?

GIT is een tool die gebruikt wordt voor versiebeheer. Je kunt in GIT met meerdere mensen aan dezelfde code werken of als je alleen werkt gemakkelijk teruggaan naar vorige versies van je code. “Er zijn op YouTube tutorials waarin GIT duidelijk wordt uitgelegd. GIT is niet overdreven complex dus aan de hand van een goed YouTube filmpje kom je al een heel eind.” Lindy raadt aan om deze video te kijken als je meer te weten wil komen over de werking van GIT.

Waar is de grootste vraag naar in de arbeidsmarkt, als het gaat over software oplossingen?

“Er is het over het algemeen veel vraag naar software engineers. Of je nou een webshop gaat bouwen, een fabriek gaat automatiseren of interne software gaat schrijven voor een een bedrijf. Er is eigenlijk overal wel vraag naar. Er is een enorm tekort aan ICT’ers, dus als je als software engineer aan de slag wil gaan heb je echt een hele goede carrière voor de boeg!”

Denk je dat het als vrouw moeilijker is om aan de slag te gaan als back-end developer? En heb je hier wel eens discriminatie in ervaren?

“Ik heb gelukkig nooit harde discriminatie ervaren, als in dat ik een kans heb mislopen op het feit dat ik vrouw ben.” Wel heeft Lindy af en toe rare vragen naar haar hoofd geslingerd gekregen, zoals: ‘als je hier komt werken ben je de enige vrouw in het team, hoe ga je daar mee om?’ En van een collega hoorde ze dat ze wel eens denigrerende opmerkingen heeft gekregen als: ‘kom maar meisje, ik help je wel eventjes’. Lindy kwam met het volgende advies: “Als je aangeeft dat er zoiets is voorgevallen, wordt hier wel altijd iets mee gedaan. Mijn persoonlijke wapen daarin is dat ik die persoon dan even goed op zijn plaats zet. Als iemand zo’n opmerking naar mij zou maken zou ik gewoon zeggen: ‘is goed jongetje, ik kom zo wel naar je toe.’ Dan denken ze de volgende keer wel twee na voor ze weer zulke opmerking maken.”

“Aan de andere kant hoor ik ook bij veel bedrijven dat ze het juist leuk vinden om een vrouw in het team te hebben. Omdat dit juist de hele dynamiek in het team verandert. Je zit natuurlijk wel voor een groot deel in een mannenwereld, maar de meeste vinden het juist fijn om minimaal 1 vrouw in het team te hebben. Als je alleen maar dezelfde type mensen in je team hebt zitten krijg je altijd eenzelfde oplossing. Ik zit in een gemengd team met zowel mannen als vrouwen en ook verschillende nationaliteiten. Hierdoor krijg je zoveel meer verschillende suggesties voor hoe je een probleem kunt oplossen. Dat leidt alleen maar tot een beter product.” Team diversiteit is daarom erg waardevol. Ook leeftijd hoort bij deze diversiteit.

Lindy heeft vaker samengewerkt met techbedrijven uit andere landen. Ze vertelde dat het percentage vrouwen in de tech is erg laag als je dit vergelijkt met andere landen. In India is het bijvoorbeeld 50/50 en in de meeste andere Europese landen is het percentage dat vrouw is meestal ook hoger dan in Nederland. Ons land heeft dus nog een lange weg te gaan en daar probeert Winc Academy een steentje aan bij te dragen.

Hoe kom je erachter welke programmeertalen ik interessant vindt?

“Wat je bijvoorbeeld zou kunnen gaan doen is een hobby project maken in een nieuwe taal. Ik ging bijvoorbeeld ooit van C# switchen naar Python. Ik ben toen gewoon een geinige applicatie gaan bouwen: een klein project waarbij ik een nummer generator heb gemaakt.” Lindy wil dan ook het advies meegeven om gewoon te gaan beginnen en te kijken hoever je komt. Het is niet zo dat als je eenmaal een taal hebt gekozen, het moeilijk is om te switchen. Lindy vertelt dat het vaak juist handiger is om veel verschillende talen te kunnen. “Ik leg dit vaker uit aan de hand van de volgende vergelijking: soms is een kleine auto handiger en soms juist een grote. Zo is dat ook met programmeertalen. Soms is Python handiger en soms C#. Je moet de juiste tool vinden voor een probleem. Hoe fijn jij de taal vindt speelt hier natuurlijk ook een belangrijke rol in.”

Wat is belangrijker: papieren of ervaring?

“Beide zijn belangrijk. Papieren zijn een snelle manier om te kunnen laten zien wat je in huis hebt. Als je alleen ervaring hebt moet je het eerst helemaal uit gaan leggen en je werk laten zien. Het komt eigenlijk dus op hetzelfde neer, alleen is het met alleen ervaring lastiger om aan te tonen wat je kunt. Binnen het bedrijf waar ik werk hebben we ook een aantal mensen werken zonder papieren. Ze zijn gewoon super goed zijn in wat ze doen!” Papieren of ervaring? Met beide kom je er dus wel, maar met papieren zal het een stuk eenvoudiger zijn. Het belangrijkste is dat je de skills beheerst en dat je dit ook kan aantonen met bijvoorbeeld een portfolio.

Wat doen devops en cloud engineers?

“Je bent dan vooral bezig met het inrichten van processen, zodat je andermans code live kunt zetten of zodat je tooling maakt waar andere engineers alleen nog maar hun code te uploaden. Door de tooling wordt het dan automatisch live gezet.”

Hoe ziet het opleidingsproces binnen een bedrijf eruit?

“Als back-end developer houd je nooit op met leren. Je moet eigenlijk altijd wel blijven leren en nieuwe technieken blijven uitproberen. Als je het hebt over het opleidingsproces denk ik dat je veel ‘on the job’ kunt leren. Ga vooral het gesprek aan met het bedrijf waarvoor je werkt over wat je al kunt en wat je nog graag zou willen leren. Zoek vooral een werkgever uit die daar de ruimte voor geeft. Dat is ontzettend belangrijk. Als je begint als programmeur zou je ook een traineeship kunnen doen om aan je ervaring te komen”

Heb je tips met betrekking tot flexibel/robuust coderen?

“Een goede leestip is het boek Design Patterns, geschreven in 1994. Dit boek heeft legt patronen bloot voor veel voorkomende problemen (denk aan composite pattern of template matted pattern). Het is in 1994 geschreven maar nog steeds ontzettend relevant. Er is overigens ook een website van het boek gemaakt. Een ander bijvoorbeeld is weer het boek Clean Code. Beide boeken helpen enorm om je code robuust te kunnen schrijven.”

Heb je nog meer boekentips?

Lindy heeft ons meerdere tips gegeven van boeken die als programmeur waardevol zijn om te gaan lezen. Hieronder vind je het rijtje van boeken die volgens Lindy zeker het lezen waard zijn.

  • Robert C Martin - Clean Code
  • Martin Fowler - Refactoring
  • Erich Gemma e.a. - Design Patterns
  • Gene Kim - The Phoenix Project
  • Gene Kim - The Unicorn Project
  • Vaugn Vernon - Implementing Domain-driven Design

Wat is jouw favoriete CMS?

“Ik heb de laatste jaren niet veel meer met CMS systemen gewerkt, maar vooral veel custom code geschreven.” Lindy had gaf als toevoeging op deze vraag een goede tip: “Stel je gaat een website maken voor de bakker om de hoek, ga dan vooral niet zelf coderen en gebruik een CMS systeem als Wordpress. Die code is misschien niet altijd even netjes, maar je stelt de bakker dan wel zelf in controle om de teksten op de website aan te passen. Zo voorkom je dat deze bakker je iedere week opbelt om weer een tekstje aan te passen.”


Hoe is de werkdruk als back-end developer?

“Dit verschilt heel erg van bedrijf tot bedrijf. Werkmethodieken zoals scrum helpen hier wel enorm bij. Je schat daarbij taken in punten. Deze punten zijn relatief en niet tijdgebonden. Na een aantal sprints (tijdsperiodes van 8 weken) weet je dan dat je als team bijvoorbeeld 30 punten aankunt. Je zult dan ook niet veel meer oppakken dan voor 30 punten aan taken in een sprint. Hierdoor blijft de werkdruk redelijke constant. Als er een belangrijke deadline aankomt, kan het misschien wel even doorpakken zijn. Of als je aan je team hebt beloofd om iets af te krijgen en je liep hier tegen wat problemen aan. Toch kun je zelfs dan dit bespreekbaar maken en samen met je team kijken of dit voorkomen had kunnen worden. De oplossing zit 'm vaak in het eerder om hulp vragen of tijdens refinement beter te onderzoeken wat een taak precies inhoudt. Trek in ieder geval altijd aan de bel als je merkt dat je veel meer dan 40 uur en vaak in de nacht werkt.”

Heb je nog advies om je waarde (salaris) als werknemer te bepalen of in de gaten te houden? (m.b.t. sollicitaties en promotie)

“Dit vind je werkgever misschien niet altijd even leuk, maar ik ben een grote voorstander van het gewoon met je collega’s over je salaris te hebben. Daarnaast vind ik Glassdoor.nl een goede website om te kijken wat vakgenoten bij andere bedrijven verdienen.”

Zijn er ook programmeurs die parttime aan het werk zijn?

“Eigenlijk heel veel. 32 uur komt heel vaak voor. Soms komt 24 uur ook voor maar dit kan lastig zijn, omdat je dan meetings mist en daarmee ook belangrijke updates. Vaak heb je als back-end developer binnen bedrijven flexibele werktijden. Dit vind ik zelf echt super fijn! Je kunt dan zelf bepalen wanneer je begint met werken, hoe lang je pauze neemt en hoe laat je eindigt. Zolang je je uren maar maakt!”

Vormt programmeren met Python ook een steeds belangrijkere rol bij het vervullen van oplossingen?

“Door te programmeren leer je een computer iets te doen wat anders door een mens gedaan had moeten worden. Programmeren in welke taal dan ook is altijd belangrijk geweest bij het vervullen van oplossingen, zoals automatiseren van processen. Python is de laatste jaren wel bijzonder populaire taal geworden om deze problemen mee op te lossen”


Kun je iets zeggen over programmeertalen voor apps op de telefoon? Welke taal of opleiding kun je hiervoor aanraden?

“Binnen app ontwikkeling heb je eigenlijk 2 stromingen: native en multiplatform. Bij native programmeer je met de officiële taal van het platform. Bij iOS is dat Swift en bij Android is dat Java. Doordat je de officiële taal gebruikt, kun je altijd op basis van alle mogelijkheden die dat platform biedt programmeren. De andere stroming is multiplatform. Denk aan Flutter of Kotlin Multiplatform. Hiermee kun je door één keer de code te schrijven, zowel een app voor iOS als voor android ontwikkelen. Je hebt dan dus een stuk sneller resultaat, maar als in de laatste versie van iOS een nieuwe feature beschikbaar komt zal deze niet (meteen) via het multiplatform beschikbaar zijn. Beide stromingen hebben dus hun voor- en nadelen.” Goed om te weten: in beide stromingen is er veel vraag naar developers.

Meer Blogs

Cookie Preferences
close

We may use and track cookies, local storage, your IP address and similar technologies to improve the user experience of this site and to understand how it is used. Read more in our privacy policy.

-->