Fronteers — vakvereniging voor front-end developers

Word een front-end developer

Begin september 2018 heeft Shaun Michael Stone zijn ervaringen, mening en advies gedeeld over hoe het is om front-end web engineer te zijn.

In dit artikel wil ik mijn ervaringen delen over het begin van een front-end carrière.

Beginnen met leren

Veel front-end developers beginnen door te experimenteren. Het is niet zo moeiijk om daarmee te beginnen. Je hebt alleen een browser en een texteditor nodig. Twee hele goede voorbeelden zijn Visual Studio Code en Atom en ze zijn gratis! Daarna wil je HTML en CSS leren. Door in een zoekmachine te zoeken naar “HTML tutorial” en “CSS tutorial” zou je al een heel eind moeten komen. Voor je het door hebt, bouw je een website!

Tijdens de experimentele fase zal je vooral het volgende leren:

  • HTML: HyperText Markup Language, de taal om inhoud te organiseren
  • CSS: Cascading StyleSheets, de taal om de inhoud te stijlen
  • JavaScript: een programmeertaal waarmee je complexe features kunt bouwen
  • Basiskennis over browsers en hoe internet werkt

Beginnen met HTML en CSS is makkelijk, maar het goed doen is een ander verhaal en vergt best veel kennis. Ik verwacht niet dat junior developers bekend zijn met alle onderwerpen in het lijstje hieronder, maar er van bewust zijn dat het bestaat en wat je kunt leren, kan je wel een voorsprong geven:

  • HTML
    • Basis: in staat zijn om functionerende HTML te schrijven
    • Validiteit: in staat zijn om HTML te schrijven met weinig fouten
    • Browser compatibiliteit: hoe om te gaan met browser incompatibiliteit
    • Memorisatie: bekend zijn welke HTML tags bestaan
    • Semantiek: weten welke HTML tag goed is in welke situatie
    • Toegankelijkheid: markup optimaliseren voor iedereen, ook mensen met beperkingen
  • CSS
    • Basis: in staat zijn om functionerende CSS te schrijven
    • Validiteit: in staat zijn om CSS te schrijven met weinig fouten
    • Browser compatibiliteit: hoe om te gaan met browser incompatibiliteit
    • Responsive ontwerp: weten hoe je een ontwerp optimaliseert voor verschillende apparaten en schermen
    • Architectuur: weten hoe je dingen moet noemen, verantwoordelijkheden scheidt, bestanden organiseert, en de code onderhoudbaar houdt
    • Toegankelijkheid: weten wat voor rol stijling bijdraagt aan toegankelijkheid en afweten van beste en slechte praktijken
  • JavaScript
    • Basis: in staat zijn om functionerende JS te schrijven
    • Probleemoplossend vermogen: weten hoe je een probleem aanpakt om een doel te behalen
    • Debuggen: hoe je bugs vindt, isoleert en oplost
    • Web platform: wat kennis van de DOM API (HTML hiërarchie tijdens runtime) en wat Web APIs
    • Principes: scheiden van verantwoordelijkheden, KISS, etc
    • Onderhoudbaarheid: hoe je de code onderhoudbaar houdt
    • Wanneer je het moet gebruiken, en wanneer niet
    • Verschil tussen ECMAScript en JavaScript
  • Browsers en het internet
    • HTTP Protocol: hoe browsers inhoud laden
    • Media encoderingen: weten wanneer je gif, jpg, png, svg, webp, mp3, mp4, etc. moet gebruiken

Bovenstaande lijst lijkt misschien veel, maar maak je geen zorgen. Focus vooral op HTML, CSS en basis JavaScript. De rest volgt vanzelf.

Beginnende front-end developers ontdekken snel wat JavaScript is en hoe populair het is. De markt heeft veel vraag naar developers die kunnen programmeren met JavaScript. Sterker nog, er is vaak voorkeur naar mensen die vloeiend JavaScript programmeren dan mensen die vloeiend HTML en CSS schrijven, terwijl slechte HTML en CSS vaak problemen veroorzaken wat betreft toegankelijkheid.

Wanneer je de basis leert, leer ook wat JavaScript, maar vergeet niet dat (goede) HTML en CSS essentieel zijn voor websites en webapplicaties.

Jouw eerste baan

Je eerste baan is een gigantische mijlpaal! Het is je allereerste stap in je carrière. Maar hoe bereik je die mijlpaal?

Net als met producten is er vraag en aanbod in de banenmarkt die de “prijs” bepaalt. In de banenmarkt is de “prijs” terug te zien in je salaris en extra’s. Momenteel is de markt in ons voordeel: er is veel vraag naar front-end developers, vooral ervaren front-end developers.

Ik verwacht dat het aanbod zal stijgen, maar daarmee moet je meer opvallen ten opzichte van andere mensen die een baan zoeken als front-end developer. Er zijn een paar manieren om dat te doen.

Haal een diploma

Ik was heel lui en verveeld op school. Ik denk dat ik met een beetje moeite een bachelor en/of master graad had kunnen behalen, maar dat heb ik niet gedaan. Ondanks dat ik dat niet heb, werk ik met toffe en hele slimme mensen.

Momenteel lijkt het er op dat een diploma niet zo veel helpt. Veel mensen die dit wel hebben, hebben vaak wel een goede theoretische achtergrond en lijken problemen op een meer wetenschappelijke methode te benaderen.

Wanneer de vraag in de banenmarkt groeit, denk ik dat een opleiding in media of informatica belangrijker gaat worden, vooral voor developers die geen of weinig ervaring hebben.

Een studie doen is niet goedkoop en kost veel tijd. Gelukkig zijn er veel bedrijven die de kosten (deels) op hun nemen en soms mag je zelfs tijdens werkuren studeren. Dan kan je studeren en ook je rekeningen betalen! Denk goed na over wat voor opties er zijn en wat het beste bij jou past.

Zelfstandig leren

Front-end development is heel goed gedocumenteerd. Online is er heel veel informatie te vinden, wat het mogelijk maakt om een developer te worden door te lezen of online cursussen te volgen. Veel developers die ik ken hebben het vak volledig zelfstandig gestudeerd.

Hier een paar linkjes naar documentatie en cursussen om zelfstandig te studeren:

Je kunt ook lid worden van een gemeenschap zodat je met anderen kan praten over front-end development. Neem bijvoorbeeld de Fronteers Slack of FEDs on Slack.

Documentatie is belangrijk

Laten zien wat je gemaakt heb is een goede manier om jezelf te verkopen, dus zorg ervoor dat je een portfolio hebt met wat je gemaakt hebt. Documenteer je projecten (ook van school) en side-projects goed.

Zorg er ook voor dat je niet alleen het resultaat demonstreert, maar ook het proces daar naartoe. Gedurende een project los je uitdagingen op door opties te overwegen. Het verdedigen van die keuzes geeft veel inzicht in hoe goed jij bent en hoe jij keuzes maakt.

Als je schrijven leuk vind, kun je ook artikelen schrijven! Het schrijven van technische artikelen geeft een enorme voorsprong. Sommige bedrijven betalen zelfs om een artikel op hun blog te publiceren, wat mooi meegenomen is.

Wees zichtbaar

Laat jezelf zien! Je bent een front-end developer. Het web is jouw domein. Gebruik dat dus!

  • Je kunt LinkedIn gebruiken als een soort online CV en om je interesses te delen
  • Publiceer je eigen code (bijvoorbeeld experimenten) op GitHub
  • CodePen is een leuke site om kleine demo’s en experimenten te maken en te laten zien
  • Andere sociale media, zoals Twitter en Facebook, kunnen ook handig zijn om interesses te delen en om te netwerken
  • Een eigen website met een blog en links naar jouw profielen
  • Als je een freelancer wilt worden, denk na over een ‘personal brand’ en hoe je jezelf in de markt wilt zetten

Misschien valt het op dat veel opties in bovenstaande lijst een offer vergt: tijd. Al is geen van bovenstaande punten vereist om een baan te vinden, je springt er wel door uit, dus durf wat tijd te investeren.

Overweeg opties

Wil je generaliseren of specialiseren? In wat voor soort situatie kan je het meest leren? Wat voor soort bedrijf zou jou een kans geven?

Denk goed na over hoe je jouw carrière wilt starten. Wil je een ‘manusje-van-alles’ zijn bij een klein bureau, of wil je specialiseren als een in-house developer met collega’s waar je van kunt leren? Misschien wil je jouw eigen ding doen als een freelancer. Wat je ook kiest, elk heeft voor en nadelen, dus denk daar over na.

Als je andere interesses hebt buiten development, is het leuk om een baan te vinden in die industrie.

Aan de slag! Wat nu?

Software verandert constant, dus we moeten up-to-date blijven om relevant te blijven. Denk aan principes, tools, browsers, specificaties, browser compatibiliteit, apparaten en features van apparaten. Dat zijn heel veel onderwerpen om in de gaten te houden en dit verklaart ook waarom het vak front-end development langzaam opsplitst in specifiekere specialisaties.

Als je naar specificaties en documentatie kijkt, kan alleen al de hoeveelheid browser-functies en Web API's schrikbarend veel zijn. Gelukkig heb ik een strategie om niet gek te worden van de hoeveelheid nieuwe informatie.

Een klein deel van al die API’s wordt vaak gebruikt. In plaats van proberen alle API’s te onthouden, lees ik een klein beetje over elke API zodat ik ongeveer weet wat ik kan doen en vergeet ik de details. API’s die ik vaak gebruik, onthou ik vanzelf. Door deze strategie kan ik mij richten op probleemoplossend denken, best practices, patronen, principes en andere dingen die lastig te vertalen zijn in concrete zoektermen.

Om up-to-date te blijven kan ik sociale media aanraden. Ondanks de ruis is het vaak de eerste plek waar nieuws wordt gedeeld. Zoek mensen en bedrijven op die jij interessant vind en volg ze. Hier wat voorbeelden:

Lezen en experimenteren met dingen die je leert, zou je tijdens werkuren moeten kunnen doen. Een fatsoenlijk bedrijf zal je die gelegenheid geven en heeft een opleidingsbudget zodat je congressen en workshops kan bezoeken. Maak daar gebruik van! Een paar goede events zijn:

Werken in je vrije tijd

Eerder in dit artikel heb ik het werken in je vrije tijd al kort benoemd om een portfolio op te bouwen. Ik moedig dit aan als je een voorsprong wilt hebben op anderen, maar ik wil je ook waarschuwen.

Veel bedrijven erkennen het werk in je vrije tijd niet als extra ervaring. Al zou je, naast een 8-urige werkdag, nog 4 uur investeren in side-projects, heb je na een jaar niet anderhalf jaar ervaring opgebouwd. Maar wat je in die extra tijd hebt geleerd, is natuurlijk wel waardevol.

Ons vakgebied reageert erg positief op werken in je vrije tijd, wat veel mensen motiveert om dat te doen, maar niet zonder consequenties. Het kan bijdragen aan problemen met je geestelijke gezondheid. Veel open-source projecten zijn ten einde gekomen of het beheer is naar iemand anders gegaan omdat de originele auteur last heeft van een burn-out.

Werken (inclusief studeren en experimenteren) in je vrije tijd is niet zonder risico’s. Rust en ontspanning zijn belangrijk, en de balans tussen werk en privé is delicaat. Sommige mensen kunnen heel veel stress hebben. Sommige niet. Een ‘workaholic’ zijn is niet cool.

Ik wil heel duidelijk zijn dat werken in je vrije tijd niet verplicht is en waarschijnlijk ongezond. Jouw werkplek moet de tijd faciliteren om nieuwe dingen te leren. Wat je met je eigen tijd doet, is aan jou.

Conclusie

Er zijn veel manieren om front-end web developer te worden. Je kan het jezelf aanleren of met begeleiding door bijvoorbeeld een opleiding te doen. Je kan een generalist of een specialist worden. Je kan zelfstandig beginnen of een bij een bedrijf gaan werken en nieuwe dingen van collega’s leren.

Wat je ook kiest, basiskennis van HTML, CSS en JavaScript is voldoende om aan de slag te gaan. De rest volgt vanzelf.

Plaats een reactie