JavaScript is altijd populair geweest in de IT industrie omdat het ontwikkelaars toe staat om snel gemakkelijks websites te maken die lijken op apps, allemaal met behulp van een technologie en zonder teveel gedoe of dat het teveel tijd kost.
Het is niet de eenvoudigste staak om een kandidaat te kiezen uit de vele sollicitanten.
Voordat je verder gaat met het inhuurproces moet je eerst vaststellen wat voor soort JavaScript ontwikkelaar je nodig hebt voor jouw project. Dat zullen we bespreken, naast ook interviewvragen en tips om uitdagingen en obstakels tijdens het proces te voorkomen – technische en non-technische vaardigheden, screening fases van het interview en nog veel meer.
We hebben ook nuttige informatie direct van onze ontwikkelaars inbegrepen, voordelen en statistieken over JavaScript en alles wat waardevol is voor jou om jouw inhuur periode in te korte zonder dat je kwaliteit inlevert.
Over JavaScript
JavaScript is een object-georiënteerd, lichtgewicht, dynamische programmeertaal (scripting taal) die veel gebruikt word om web apps, web browser interactieve effecten, game ontwikkeling en nog veel meer te creëren.
Voormalig bekend als LiveScript, werd deze programmeertaal voor het eerst uitgegeven in 1995 als een geïntegreerd deel binnenin Netscape Navigator 2.0 (web browser), maar werd later LiveScript genoemd.
Ondanks dat het een programmeertaal is voor webpagina gebruik, kan JavaScript ook perfect bestemd zijn en gebruikt worden voor non-browser omgevingen en gebruiken. Deze dynamische taal biedt ondersteuning voor op object constructie gebaseerde prototypes, en zijn syntax lijkt zowel op Java als op C++.
Statistieken over JavaScript
Het salaris van een JavaScript ontwikkelaar is gemiddeld $94,260 per jaar waarbij het hoogste salaris $109,796 is – een full stack positie begint rond de $109K en hoger per jaar. Ondanks dit feit wordt JavaScript lager gerangschikt dan de hoogst betaalde technologieën.
Het goede aan deze programmeertaal is dat het er veel vraag naar is, maar dit feit komt niet overeen met de beschikbare experts. 75% van bedrijven en werkgevers zijn actief op zoek naar een JavaScript ontwikkelaar om in te huren.
De populariteit van deze taal is uitzonderlijk met 68.62% van de gevraagde ontwikkelaars die JavaScript kiezen voor het meeste van hun werk. Dit feit geeft JS de eerste plek op de populariteit ranglijst, en een kleiner percentage van 14.59% beweerde dat ze JavaScript wilde gebruiken of het wilde implementeren in hun werk.
Populaire merknamen die afhankelijk zijn van het gebruik van JavaScript
JavaScript is een populaire taal bij de volgende merken/bedrijven:
- Microsoft
- Uber
- Netflix
- PayPal
- Groupon
- Google
- Facebook
- LinkedIn
- eBay
- Walmart
- IMDB
- Twitter
- Trello
- BBC
Een JavaScript ontwikkelaar interviewen
Handige tips voor een voorselectie interview
Een kritisch onderdeel van het hele zoek- en inhuurproces is om een talent acquisitie specialist te hebben die de voorselectie van de ontwikkelaars uitvoert. Deze specialisten hebben specifieke vragen en beoordelingstaken die helpen om de expertise van een kandidaat te evalueren.
Wervers en talentacquisitie specialisten vragen altijd naar voorgaande werkervaring, in termen van jaren gewerkt met JavaScript omdat dit hen helpt om het senioriteitsniveau van de ontwikkelaar vast te stellen.
Een ander ding dat ze controleren is het taalaspect of de vaardigheid van Engels om te controleren of er enige potentiële uitdagingen zijn in de dagelijkse communicatie tussen de cliënt en de ontwikkelaar.
Soft skills zijn ook cruciaal, zoals communicatie, punctualiteit van de ontwikkelaar op het gesprek en de omgeving rondom de ontwikkelaar. Professionele ervaring gecombineerd met gepaste vertoning en houding doen het altijd goed.
Technische vaardigheden van een JavaScript ontwikkelaar
De ervaren JavaScript ontwikkelaar zou de volgende vaardigheden of uitgebreide kennis moeten hebben:
Hiervoor hebben we Diamant Isufi, een software engineer bij Proxify, gevraagd om meer te omschrijven over wat een ontwikkelaar moet weten, en hij zei:
“Naast de probleemoplossende vaardigheden, moet de ontwikkelaar alle JS basics beheersen. Beginnend bij hoe het werkt, wanneer het gebruikt wordt en waarom, maar ook moeten ze in staat zijn om simpele data types, variabelen, functies, klassen, constructor functies en modulariteit juist te omschrijven.”
Diamant Isufi
Non-technische vaardigheden voor een JavaScript ontwikkelaar
De non-technische vaardigheden zijn een groot deel van de algehele interview indruk.
De wervers weten dat niet alles enkel expertise, technische kennis en ervaring is. De essentiële minimale verwachting is natuurlijke beheersing van de Engelse taal en op tijd zijn voor het interview. Punctualiteit is een goede indicator van het verantwoordelijkheidsniveau en het respect dat de ontwikkelaar heeft voor de werver, het bedrijf of de cliënt.
Maar, het gaat verder. Het is goed, zelfs sterk aanbevolen dat de ontwikkelaar het gesprek bijwoont vanuit een geschikte omgeving/ruimte. De omgeving moet netjes zijn met genoeg licht, goede camerakwaliteit en een headset (voor duidelijk geluid) indien mogelijk. De kandidaat zou moeten voldoen aan een passende dresscode en zich in een ruimte zonder teveel geluid of afleidingen moeten bevinden.
Iets anders waar wervers op focussen in de conversatie vaardigheden van de kandidaat of hoe ze omgaan met de conversatiestroom. Luisteren zonder onderbrekingen, duidelijk praten en beleefd vragen om een vraag te herhalen zijn allemaal pluspunten voor de ontwikkelaar en voegen ‘punten’ toe aan hun communicatie aspect.
Hoofdzaken en beoordeling van een JavaScript ontwikkelaar
We hebben hierboven de vaardigheden en technische kennis van een JavaScript ontwikkelaar genoemd; het is echter goed om de hoofdzaken waar je op moet letten samen te vatten:
- Expertise in JavaScript, HTML, CSS en jQuery
- Kennis van React.js, Node.js, en TypeScript
- Kennis van React.js en Redux.js
- Goede codeer vaardigheden op verschillende browsers
- Asynchrone programmering
Maar, ook:
- Een analytische mindset die de snelle vernieuwing bijhoudt
- Kennis van hoe verschillende browsers of platformen werken
- Kennis van Meteor (JS platform)
- Versie controle ervaring
- ES6 taal eigenschappen-(ECMAScript 6–voor standaardisering van JavaScript)
Diamant voegde hier nog toe:
“De ontwikkelaar moet kennis hebben over de ES7 (exponentiation generator). Doorgaans zou ik ook de probleemoplossende vaardigheden beoordelen en vragen naar de frameworks en libraries van JS. Hierna zou ik vragen naar hun ervaring met Angular, Vue en React. Maar in het algemeen zijn de technologieën die ze goed moeten kennen DOM (document object model), Node.js, NPM en Yarn, en NVM (node version manager).”
Wat onderscheid een geweldige JavaScript ontwikkelaar van een goede?
Er is altijd een dunne lijn tussen uitstekende en (erg) goede ontwikkelaars maar wanneer je eenmaal iets ziet dat het verschil maakt, kan dit cruciaal zijn. In dit geval moet de ervaren en ideale JavaScript ontwikkelaar kandidaat substantiële kennis en ervaring hebben met deze programmeertaal.
Ook moeten ze in staat zijn om te werken aan desktop apps, hybride mobiele apps, games ontwikkeling, backend web apps, microdiensten, netwerk diensten, evenals ingebedde apps met specifieke tools.
Daarnaast moet een geweldige ontwikkelaar kandidaat ook kennis hebben over ECMAScript frameworks en versies en gebruik maken van de beste IDE (integrated development environment).
Mogelijke uitdagingen tijdens het inhuren van een JavaScript ontwikkelaar
Er zijn uitdagingen en bepaalde obstakels bij tijdens het proces van het inhuren maar het is belangrijk om die te herkennen of te anticiperen zodat je ze kunt vermijden of kunt oplossen wanneer ze verschijnen.
Een mogelijke uitdaging is een schaarste van experts die werkelijk uitgebreide diepgaande kennis hebben en die passen binnen de criteria en vereisten voor de functie. Dan is er verder de uitdaging van miscommunicatie als het gaat om salarissen of financiële verwachtingen die overeen zouden komen met het volume en de complexiteit van de verplichtingen.
In deze context, als de vraag naar JavaScript ontwikkelaars op de markt hoog is, zullen er altijd concurrenten die de beste ontwikkelaars zelf willen binnenhalen. Met dit in het achterhoofd wordt het hele proces voor het inhuren urgenter en ongelofelijk dynamisch.
Natuurlijk is het wervingsproces zelf al prijzig, dus idealiter, wil je dat de beste ontwikkelaar voor jouw bedrijf komt te werken.
Waarom en wanneer moet je een JavaScript ontwikkelaar inhuren?
Je kunt verbeteringen in jouw bedrijf verwachten via de volgende aspecten wanneer je besluit om een JavaScript ontwikkelaar in te huren:
- ‘Bang for a buck’ – JS is een fundamentele programmeertaal, en als de ontwikkelaar dat weet proberen ze waarschijnlijk ook andere talen en technologieën te leren
- Creëren van sable web servers en apps
- Dynamisch geüpdatet inhoud
- Gemakkelijk beheer van video’s, afbeeldingen en multimedia elementen
- Gemakkelijk benadrukken via animatie
- Game creatie en ontwikkeling
- Gebruik maken van krachtige frameworks – library van vele structuren voor specifieke projecten, met vele functies voor snelle en goede kwaliteitsontwikkeling
- Fullstack ontwikkeling – zowel front-end als backend worden makkelijk geschreven
- De eenvoud van debuggen en testen – bugs snel identificeren, codes worden eenvoudig regel voor regel herzien
- Creëren van mobiele en web apps voor meerdere platformen
- Uitstekende interfaces – het creëren van pakkende en visueel prachtige interfaces voor de gebruikers, met slepen en neerzetten en meer interessante en waardevolle functies.
- Gelijktijdigheid – meerdere taken tegelijkertijd runnen, verschillende operatie afhandelen en zo tijd
- Cyberveiligheid
Diamant vat de voordelige aspecten van JS samen als:
“Een JavaScript ontwikkelaar zal in staat zijn om code te schrijven voor meerdere platformen, en ze passen zich waarschijnlijk zeer snel aan, aan nieuwe frameworks en libraries die JS gebruiken, zoals Angular, React, en Vue. Het schrijven van mobiele en desktop apps is een anders noemenswaardig voordeel. Expertise in JavaScript is voordelig als een bedrijf groeit en de vraag naar andere platformen groter wordt."
Voordelen van JavaScript
- Populariteit – JavaScript is een populaire programmeertaal met vele gebruiken en implementaties. Zoals al eerder genoemd kan een vaardige ontwikkelaar gerelateerde en andere taken uitvoeren die niet beperkt zijn tot alleen JS
- Snelheid – Met JavaScript is snel werk en snelle ontwikkeling binnen de cliënt-zijde browser mogelijk zonder dat er gebruik gemaakt hoeft te worden van externe middelen
- Eenvoud – Gemakkelijk om te leren en te implementeren in het werk
- Creatie van uitstekende interfaces
- Meerdere acties – JavaScript komt goed overeen met andere programmeertalen en biedt kwaliteitsgebruik in andere apps
- Open source projecten toegang – de ontwikkelaar die assistentie of begeleiding nodig heeft kan die gemakkelijk vinden
- Simpele syntax
- Veelzijdigheid
- Niet afhankelijk van een platform
- Verminderde server interacties
Over de algemene voordelen en pluspunten van het werken met JavaScript, zei Diamant:
“Ik hou van de snelheid van deze taal aangezien het geen compilerende taal is maar een geïnterpreteerde. Het is een heersende taal op het web onder alle ontwikkelaars dus een enorme gemeenschap van experts biedt kwaliteitsinformatie en toegang tot benodigde middelen, artikelen, cursussen en meer. En de serverzijde rendering is ook een groot voordeel bij JavaScript.”
JavaScript interviewvragen en antwoorden
Vele vragen zijn relevant voor het testen van de expertise van de JS ontwikkelaar, maar hier zijn wat suggesties die je zou kunnen gebruiken tijden het interview:
- Wat is isNaN, en hoe wordt het gebruikt?
Verwachte antwoord: ‘NaN’ betekent ‘Not-a-Number’, dus opeenvolgend vertelt isNaN ons weten of een waarde NaN is. Nauwkeuriger gezegd, we gebruiken de functie isNaN() als we moeten ontdekken of een waarde een illegaal of onjuist nummer bevat. Dus als uit deze functie/methode ‘waar’ komt, betekent dit dat de waarde die we beoordelen inderdaad NaN is.
- Leg ‘negative infinity’ uit.
Verwachte antwoord: Wanneer we een negatief getal delen door nul krijgen we een Negative Infinity nummer in JS. Dit negative infinity nummer is een constante waarde die de laagst beschikbare waarde is die we kunnen ontvangen, en er zal geen nummer lager zijn dan deze.
- Wat zijn ‘globale variabelen’?
Verwachte antwoord: De globale variabelen zijn variabelen die zichtbaar zijn vanuit alle scopes en die verklaard worden in een globale scope – ze zijn altijd verklaard via een window object of buiten een bepaalde functie, en ze zijn ook bereikbaar vanuit letterlijk elke functie.
Simpel gezegd, een globale variabele zal zijn eigen waarde behouden zolang het programma bestaat en gedurende zijn gehele levensduur.
- Leg het verschil uit tussen SessionState en ViewState.
Verwachte antwoord: De SessionState is data die voortdurend bestaat in een bepaalde server, en de data beschikbaarheid wordt gestopt wanneer de browser gesloten wordt of de sessie verlopen is. Het is super-specifieke data met toegang van alle pagina’s op de web app. De ViewState is een groep van de waardes van besturingen op een bepaalde pagina op de cliënt browser zijde. Terwijl SessionState opgeslagen wordt op een server, wordt ViewState opgeslagen op de pagina zelf, en kan het gezien worden vanuit een pagina, niet meerdere. ViewState zal in principe de info alleen opslaan op de cliëntzijde.
- Wat zijn ‘looping structures’?
Verwachte antwoord: Wanneer we een loop of looping structures gebruiken in JavaScript, gebruiken we ze voor bepaalde taken die repetitie vereisen, i.e., deze eigenschap helpt ons om functies te herhalen. De loops stoppen niet met runnen tenzij hun staat ‘onjuist’ lijkt te zijn. We hebben een totaal van 7 looping structures in JS die hieronder worden genoemd :
- do-while
- while
- forEach()
- for
- for…in
- for…of
- map()
- Leg de betekenis van ‘NULL’ in JS uit.
Verwachte antwoord: De betekenis van ‘null’ is geen object en of geen waarde. Dit staat ook bekend als ‘null string’, en het is intentioneel waardeloos. We noemen dit ook wel primitieve waarde en het heeft geen array object en ook een onjuiste boolean waarde.
- Hoe wordt ‘Void (0)’ gebruikt?
Verwachte antwoord: Simpel gezegd is een void iets dat leeg is; waar uiteraard niks in zit. In JS is ‘void’ hetzelfde als ‘return of nothing’ of een lege waarde. Dus met ‘void(0)’, roepen we nog een andere methode op zonder pagina verversing. Met behulp van ‘void(0)’ voorkomen we enige obstakels en bijwerkingen op een pagina wanneer we iets op de pagina moeten plaatsen, zoals een uitdrukking.
- Wat is de ‘pop()’ methode?
Verwachte antwoord: Wanneer is het laatste array element moet verwijderen gebruik ik de ‘pop()’ om dat zelfde element terug te halen. Hiermee pas ik de array lengte overeenkomstig aan en dit doe ik met deze syntax: array.pop( )
- Leg het verschil tussen ‘.call()’ en ‘.apply()’ uit.
Verwachte antwoord: Deze twee lijken een beetje op elkaar maar laten we er dieper op ingaan. Wanneer ik de argumenten van een functie en zijn nummer weet gebruik ik .call(), en deze functie is een vooraf gedefinieerde methode. Met deze methode is het mogelijk dat een bepaald object een methode aanneemt van een totaal ander object. Wanneer ik .apply(), gebruik ik het als ik geen idee heb wat het nummer is, maar ik zou een methode kunnen schrijven om te gebruiken op meerdere verschillende objecten.
- Hoe werken ‘deferred scripts’ in JS?
Verwachte antwoord: Eerst moeten we de ‘defer’ in JS definiëren, en dit is een boolean attribuut en zijn rol is om vast te stellen wanneer het gedownloade script synchroon en parallel is met de pagina parsing. Het is essentieel dat het script wordt uitgevoerd wanneer de parsing voor die pagina voltooid is. Nu, met deferred scripts in JS, stellen scripts de uitvoering van het script uit wanneer de HTML parser actief is. Het resultaat hiervan is snelle weergave en minder webpagina laadtijd.
- Wat zijn arrow functies in JS?
Verwachte antwoord: Met de hulp van arrow functies in JS, kunnen we anonieme uitdrukkingen creëren of de uitdrukkingen schrijven voor anonieme functies. Deze arrow functies bieden geen ondersteuning voor sleutelwoorden zoals ‘new. target’, ‘arguments,’ ‘this,’ of ‘super’. Er zijn redelijk wat gelijkenissen tussen JS arrow functies en de Python lambda functies. Kort samengevat, worden arrow functies gebruikt wanneer we een functie pass moeten maken zoals een parameter voor een zwaardere functie.
- Noem alle JavaScript Data types.
Verwachte antwoord: er zijn 6 JavaScript Data types in totaal, maar ze zijn verdeel in drie categorieën.
- Primaire of primitief – Dit zijn de Boolean, String, en Number.
- Samengesteld (of referentie) – Dit zijn Object, Function, en Array.
- Speciaal – Dit zijn de Null en Undefined data types.
- Differentieer tussen ongedefinieerde en niet gedefinieerde variabelen.
Verwachte antwoord: Beide type variabelen zijn nauw verbonden met geheugenruimte. Simpel gezegd is een ongedefinieerde waarde degene die bestaat in de geheugenruimte maar tot nu toe nog geen waarde toegewezen had. De niet gedefinieerde variabele is een niet bestaande variabele in de geheugenruimte maar het wordt nog steeds ergens genoemd.
- Wat zijn JavaScript timers?
Verwachte antwoord: Wanneer we een bepaalde functie of taak binnen een bepaald timeframe moeten uitvoeren gebruiken we timers. De timer kan ons helpen om de uitvoering van het programma of de code uit te stellen of om de code op tijd uit te voeren. Alle timers opereren op een enkel thread, dus opeenvolgende evenementen en functies zullen in de wachtrij geplaats worden.
- Vertel meer over automatische type conversie en JavaScript.
Verwachte antwoord: Automatische type conversie is een proces van waarde toewijzen. Nauwkeuriger gezegd is het een proces waarbij we een bepaalde van een numeriek data type toewijzen aan een totaal anders numeriek data type – in JavaScript is dit soort automatische type conversie mogelijk, het wordt ondersteund en vaak gebruikt.
- Wat is het evenement delegatie model in JavaScript?
Verwachte antwoord: Met het JS delegatie model kunnen we betere organisatie en evenement afhandeling bereiken, en dit is een van de beste eigenschappen van JavaScript. Wanneer we een handler tegelijkertijd voor meerdere elementen willen gebruiken, bubbelen en vangen we de genoemde handler om het tegelijkertijd toe te passen op meerdere elementen en onderdelen – dit is de evenement delegatie die het werk ontzettend versimpelt.
- Definieer JavaScript cookies.
Verwachte antwoord: Wanneer een gebruiker een website bezoekt, slaat de computer kleine test bestanden op, op de computer. Deze kleine test bestanden zijn de cookies en ze worden gecreëerd wanneer een gebruiker op de website klikt om informatie in te voeren. Dit kan persoonlijke informatie zijn tijdens het afrekenen voor een winkelwagen of het invullen van formulieren en soortgelijke dingen, nadat de website hiervoor toestemming vraagt en de gebruiker het intypt.
- Kun je kort de escape karakters definiëren?
Verwachte antwoord: Wanneer ontwikkelaars een specifieke operatie uit moeten voeren met een escape commando, moeten ze een symbool typen (een backslash, “ \ ” ) om dat escape commando te starten. Dat symbool wordt een escape karakter genoemd en het wordt voornamelijk gebruikt bij specifieke karakters zoals ampersands, enkele aanhalingstekens, dubbele aanhalingstekens, apostroffen en soortgelijke. De backslash zal alleen zichtbaar worden als het typt voordat je de karakters typt.
- Leg de JavaScript generator uit.
Verwachte antwoord: Een generator vertegenwoordigt een functie of proces waar we weer opnieuw in kunnen nadat we het hebben verlaten. Het kan ook gepauzeerd worden voordat we er weer verder aan werken. Het voordeel van het gebruik van de JS generator dat je halverwege kunt pauzeren of stoppen en verder kunt gaan waar je gebleven was wanneer je terug komt.
- Hoeveel errorsoorten zijn er in JavaScript, en definieer ze.
Verwachte antwoord: Met JS, zijn er drie soorten errors, Syntax, Runtime, en Logical.
De Sytnax errors staan ook bekend als parsing errors – deze komen voor als we een code willen interpreteren die syntaxwijs ongeldig is. Syntax errors komen veel en vaak voor. Bijvoorbeeld als je een puntkomma typt maar je in plaats daarvan een dubbele punt had moeten typen zal dat een syntax error zijn.
De Runtime errors worden ook wel uitzonderingen genoemd. Deze komen meestal meteen na de compilatie en interpretatie voor en ze verschijnen tijdens de runtime, we roepen een functie op die op dat moment niet verklaard, bestaand of aanwezig is. In dit geval zijn er geen fouten in de syntax.
De Logical errors komen voor wanneer er een probleem is met de code, maar de syntax verder juist en geldig is. In dit geval runnen de programma’s soepel maar lijkt er iets fout te zijn met de eindresultaten. Dit soort errortype is redelijk complex om op te lossen en te identificeren en het is niet gelinkt aan runtime of syntax. Logical errors verschijnen bij foutieve datastroom of als de ontwikkelaar een fout maakt in de script logica.