Wat doet een full stack developer?
Wat is full stack development?
Full stack development verwijst naar de volledige breedte van het zowel ontwikkelen van de front-end als de back-end van applicaties. De front-end, ook wel de client side (browser) genoemd, is alles wat aan de voorkant van een website of app gebeurt en dus alles wat een gebruiker ziet. De back-end, ook wel de serverside genoemd, zorgt er juist voor dat alles achter de schermen werkt, zoals: servers, databases en andere interne architectuur. Full stack developers hebben dus ook ervaring met beide stacks, zowel de front-end als de back-end.
Iets specifieker:
- Wat is front-end development?
Front-end is eigenlijk alles wat aan de voorkant van een website of app gebeurt. Het openen van een website is vanuit technisch oogpunt niets meer dan het downloaden van een aantal bestanden die door je webbrowser worden omgetoverd tot een website. Daar zit van alles en nog wat tussen: een aantal foto’s die worden getoond op de pagina, metadata over de site en de lettertypes die gebruikt moeten worden. En natuurlijk ook scripts die zorgen dat een gebruiker interactie kan hebben met de website, zoals het openen van pop-ups, notificaties of animaties.Kennis van HTML en css is nodig om elementen op een pagina weer te geven. Daarnaast zorgt Javascript ervoor dat de interactie op de pagina goed verloopt.
➡️ Leestip: Wat is front-end development?
- Wat is back-end development?
Back-end is de magie achter de schermen en kan heel breed zijn: van het opzetten van servers, architectuur, database, automatische deploy architectuur, etc. Je grootste doel als back-end developer is ervoor zorgen dat gebruikers van je website of applicatie de juiste informatie te zien krijgen én dat deze interactie op de voorkant (front-end) goed verwerkt wordt aan de achterkant (back-end).
Waar het werk eindigt van een back-ender, begint het werk van een front-ender. Een full-stack developer heeft kennis van beide stacks.
Wat is het verschil tussen een front-end developer en een back-end developer?
De meeste websites bestaan uit 3 onderdelen: de website die de gebruiker in de browser kan laden, ook wel de “front-end” of “view” genoemd, de logica die controleert of je inloggegevens correct zijn, en wat je wel of niet mag doen (onderdeel 2, de “controllers”), en de bijbehorende gegevens ophaalt uit de database (onderdeel 3, de “data”, “database” of “model”).
De laatste twee onderdelen samen worden ook wel “back-end” genoemd, omdat dit niet op de computer van de gebruiker, maar op de webserver uitgevoerd wordt waar de website opgeslagen staat. Developers die zowel front-end als back-end vaardigheden hebben worden full-stack developers genoemd, omdat ze complete functionaliteiten op kunnen leveren, zonder een afhankelijkheid te hebben op een andere developer.
Een voorbeeld: Als jij een account aanmaakt met een wachtwoord op de website, wil je dat de invoervelden goed werken en dat je naar een volgende pagina gaat wanneer je bijvoorbeeld op ‘opslaan’ of ‘volgende’ klikt. Dit is de front-end. Vervolgens wil je dat je account wordt opgeslagen, de gegevens verwerkt worden en dat vervolgens de juiste informatie wordt laten zien als je bijvoorbeeld ergens een account hebt aangemaakt. Dat is de back-end.
Wat doet een full stack developer?
Een full stack developer ontwikkelt websites en/of applicaties van begin tot eind. Vaak zijn full stack developers breed opgeleid, met kennis van verschillende systemen en programmeertalen. Waar een Python programmeur bijvoorbeeld zich heeft gericht op een specifieke programmeertaal (Python), is dat bij een full stack developer niet per se het geval.
Een full stack developer is een allrounder en heeft overlappende kennis van beide stacks. Een full stack developer zorgt dat een website of applicatie van voor tot achter goed in elkaar steekt. Vanwege de vele mogelijkheden, en de technologieën die zich razendsnel ontwikkelen, is een full stack developer vaak minder gespecialiseerd dan een front- of back-end developer.
- Het werk van een full stack developer kan bestaan uit:
- Ontwikkelen en/of opstarten van een website, software en/of applicatie
- Coderen van zowel front-end en back-end in verschillende talen
- Oplossen van bugs
- Servers en databases opzetten voor de back-end van de software
- Software testen
- Webarchitectuur
- Bouwen en ontwikkelen van een database
- Designs omzetten naar werkende code
Welke programmeertalen gebruikt een developer?
Als opdrachtgever bepaal je niet altijd zelf in welke taal je website of app geschreven wordt. Het kan zijn dat je website of app al geschreven is in een bepaald framework, dan is het logisch dat je een developer zoekt die daar ervaring in heeft.
Start je vanaf 0? Laat het dan aan de developer over welk framework/taal het meest geschikt is. Of ga in gesprek met een aantal specialisten om hiervoor de juiste keuze te maken. Op basis daarvan kan je gericht gaan zoeken.
Er zijn ontzettend veel mogelijkheden om je website, software, app, etc. te ontwikkelen. Dit gaat op basis van een programmeertaal, een library waarvan de developer gebruikmaakt en een framework waarin je het maakt. Dit verschilt voor back-end en front-end, maar je kan bijna elke front-end met elke back-end combineren.
Programmeertaal: Een set regels
Library: Een aantal functies die gebruikmaken van die regels
Framework: Een combinatie van verschillende library’s die een specifieke structuur volgen
Een voorbeeld van een aantal talen, libraries en frameworks vind je in dit kleine overzicht (en natuurlijk zijn er nog veel meer):
Front-end:
Programmeertaal: HTML, CSS, Javascript,
Library: React, VueJs
Framework: Angular, VueJs
HTML, CSS en JS zijn echt de core essentials voor een fullstack (en ook een front-end webbouwer) developer om kennis van te hebben. Want kennis hiervan is vrijwel altijd nodig. Vervolgens kan dit verrijkt worden met front-end frameworks zoals VueJS of AngularJS. Wat opvallend hierbij is, dat alle frameworks eindigen met JS. Dat komt omdat ze allemaal gebaseerd zijn op Javascript, en dus ook (grotendeels) de Javascript syntax gebruiken.
Back-end:
Programmeertaal: Ruby, PHP, Python, C#, Java
Library: Eloquent
Framework: Laravel, ASP.NET
Wil je een webshop bouwen? Dan zou een combinatie van laravel + react/VueJs een goede oplossing zijn, of bijvoorbeeld ASP.NET (c# taal) en Angular. In essentie kunnen beide combinaties hetzelfde, maar geschikt om webshops te bouwen, of SAP, of management tools.
Wil je een app maken? Wil je echt een native app maken, voor een smartphone of tablet en voor Android en Ios? Dan is een full stack developer misschien niet de beste oplossing voor je. Je zou dan misschien kunnen zoeken naar een applicatieontwikkelaar. Wil je een website maken die ook mobile proof is? Dan zou het meer een taak kunnen zijn voor een (UX/UI) designer en/of front-ender.
Vaardigheden en competenties van een full stack developer
Naast de werkzaamheden zijn competenties, eigenschappen en overige vaardigheden ook belangrijk. Verschillende vaardigheden kunnen ervoor zorgen dat een (freelance) full stack developer een echte aanwinst is voor je bedrijf. De volgende competenties maken een full stack developer succesvol, en zijn dus handig om op te letten wanneer je een full stack developer zoekt voor je team of bedrijf:
- Analytisch. Om de projectvereisten goed te kunnen bestuderen en om oplossingen te bedenken is het belangrijk dat een full stack developer analytisch is.
- Nieuwsgierig. De technologieën ontwikkelen zich snel. Dat betekent dat een full stack developer nieuwsgierig van aard moet zijn, om steeds op de hoogte te willen blijven en zichzelf ook te ontwikkelen.
- Gedisciplineerd. Elke programmeertaal heeft zijn eigen regels. Een goede full stack developer houdt zich aan de programmeer conventies en dat vergt discipline.
- Communicatief. Voor een goede samenwerking en ontwikkeling is het belangrijk dat een full stack developer communicatief is en openstaat voor input, ideeën en feedback van andere developers, collega’s en bijvoorbeeld de klant.
- Geduldig. Het ontwikkelen van software, websites, applicaties etc. vergt veel geduld. Vaak bestaat dit uit testen, testen en nog eens testen volgens methodische test processen voor het oplossen van problemen. Daarnaast komen regelmatig bugs voor en moet er getest worden op fouten in de code.
- Gedetailleerd. Code schrijven en ontwikkelen is precisie werk. Daarom is het belangrijk dat full stack developers oog voor detail hebben.
- Agile. Het is belangrijk dat een full stack developer agile werkt en het overzicht bewaakt. Zo vergeet je geen dingen, houd je je aan een goede planning en indirect communiceer je direct de voortgang met de opdrachtgever.
Wat voor opleiding heeft een full stack developer gedaan?
Een full stack programmeur heeft vaak een HBO of WO opleiding gevolgd in de richting van development.
- Full stack developer (hbo)
- Software development (hbo)
- IT & Informatica (hbo/wo)
- Computer Technologie (bachelor)
- Software Ontwikkeling en ondernemerschap (hbo/wo)
- Computerwetenschappen / Computer Science (wo)
Daarnaast zijn er ook heel veel bootcamps of trainingen beschikbaar. Zelfs voor professionals met een hele andere achtergrond, zoals bijv. communicatie. Voor deze carrière switchers zijn er veel verschillende mogelijkheden om de basis van full stack development te leren. Zo bestaan er verschillende bootcamps die je in enkele weken de basis leren en je klaarstomen om aan de slag te gaan.
➡️ Leestip: Wat doet een developer?
Wat verdient een full stack developer?
Uit onderzoek van werkzoeken.nl blijkt dat full stack developers gemiddeld rond de €3.770 bruto per maand verdienen. Wel hebben verschillende variabelen invloed op dit salaris. Zo verdienen Universitair opgeleide full stack developers gemiddeld meer (€4.050 bruto per maand) dan HBO (€3.780) of MBO (€3.570) geschoolde full stack developers.
Ook is het aantal jaren ervaring van invloed op het maandelijkse uurtarief. Zo geeft werkzoeken.nl aan dat een junior full stack developer met minder dan 2 jaar ervaring gemiddeld €3.660 per maand verdient; een medior met 3 tot 5 jaar ervaring, €3940 verdient en dit gaat naar rond de €4.000 wanneer je meer dan 5 jaar ervaring hebt wat in dit geval wordt aangegeven als senior.
Ben jij benieuwd naar de gemiddelde uurtarieven van freelancers per specialisatie en gespecificeerd op ervaring? Download dan hier de factsheet met alle gemiddelde uurtarieven van freelancers binnen IT & Development.
De meest gemaakte fout van een bedrijf die een full stack developer aanneemt of inhuurt
Vaak willen opdrachtgevers dat er te veel gemaakt wordt in een te korte tijd. In andere woorden: Te veel, te snel. Waar jij als bedrijf goed op kan letten is een goede balans in deze drie elementen: kwaliteit, geld en snelheid. Wil je kwaliteit en snelheid? Dat betekent dat de kosten hoog zullen zijn.
Daarnaast hebben veel opdrachtgevers of recruiters vaak onrealistische verwachtingen. Fulls stack developers zijn generalisten, en minder specialistisch. Dat is logisch, met zoveel verschillende mogelijkheden is het onmogelijk om over de volledige linie gespecialiseerd te zijn. Dat betekent dat hij/zij niet tot in de diepte verstand hebben van alle verschillende programmeertalen. Zorg dus dat je goed voor ogen hebt waarvoor je een developer nodig hebt. Misschien heb je wel een specifieke front-ender nodig, of juist een specialist in een specifieke taal zoals een WordPress programmeur, Arduino programmeur of een Wix specialist. Kijk ook goed naar wat voor website je wilt laten maken. Gaat het om een website die simpel, maar zakelijk moet zijn? Dan kan een website maker ook uitkomst bieden.
Het kost altijd tijd voor een developer om de structuur en logica te leren kennen. Dus zelfs wanneer je een heel ervaren developer inhuurt, kost het altijd tijd om de juiste draai te vinden. Je begint dus nooit direct op 100% snelheid, maar het bouwt langzaam op.
Hoe zet je een (freelance) full stack developer in?
Je kan een (freelance) full stack developer zelfstandig inzetten, in teamverband of als tijdelijke aansluiting bij team. Met wat meer ervaring in bepaalde talen, frameworks, etc. kan je full stack developers ook inzetten om een workshop of bijvoorbeeld coachingsessie te geven. Je hoeft niet altijd een developer in te huren om alleen maar te programmeren, maar dit moet je natuurlijk wel van te voren afstemmen.
Je kan een full stack programmeur inzetten voor alle projecten die binnen zijn skillset en talenpakket past. Vaak geldt: hoe meer senior een programmeur, hoe breder je ze kan in zetten. Maar kies voor een junior of medior, wanneer je ze inhuurt of aanneemt voor een opdracht/vacature die aansluit bij hun ervaring.
Wat doet een full stack developer bij Jellow?
Binnen Jellow hebben we geïnvesteerd in een eigen development team. Dit team bestaat uit een vast team met brede kennis en ervaring:
- 3 full stack developers
- Tester
- UX/UI designer
- Lead developer
- Head of development
Het development team werkt veel samen met een product owner.
Het team werkt Agile/Scrum, inclusief PR’s en Code Reviews en hebben een refinement en design feedback meeting.
Het team werkt aan de ontwikkeling van het product, in ons geval het platform en de database.
Voor projecten die meer marketing dan product gerelateerd zijn, outsourcen we het project naar een bedrijf of freelancer. In dat geval heb je een afgebakend losstaand project, die extern kan worden uitgevoerd. Alle aanpassingen en ontwikkelingen die te maken hebben met het platform of het product, worden intern uitgevoerd.
Op dit moment werken we met ons interne development team niet samen met freelancers. Wel hebben we 2 ‘nearshoring’ developers, die zijn ingehuurd via een buitenlands uitzendbureau. Nearshore outsourcing houdt dan ook het uitbesteden van banen of opdrachten in aan een organisatie of werknemer in een ander land. Het marketingteam werkt wel samen met een freelance (wordpress/front-end) developer.