JavaScript har alltid vært populært i IT-bransjen fordi det lar utviklere raskt og enkelt lage nettsteder som ligner apper, ved hjelp av ett teknologisett og uten for mye bry eller høy tidsbruk.
Men det er ikke den enkleste oppgaven å velge en kandidat blant de mange søkerne.
Før du starter med ansettelsesprosessen, må du først finne ut hvilken type JavaScript-utvikler du trenger til prosjektet ditt. Her dekker dette, intervjuspørsmål og tips for å unngå utfordringer og hindringer under prosessen – tekniske og ikke-tekniske ferdigheter, screeningsfaser av intervjuet og mye mer.
Vi inkluderer også nyttig informasjon direkte fra rekrutterere og utviklere, fordeler og statistikk om JavaScript, og alt som er verdifullt for deg å vite for å kunne forkorte ansettelsesperioden uten å ofre kvaliteten.
Om JavaScript
JavaScript er et objektorientert, lettvekts dynamisk programmeringsspråk (skriptspråk) som vanligvis brukes for å lage nettapper, interaktive nettlesereffekter, spillutvikling med mer.
Tidligere kjent som LiveScript, ble dette programmeringsspråket først utgitt i 1995 som en integrert del i Netscape Navigator 2.0 (nettleser).
Til tross for at det er et programmeringsspråk for nettsidebruk, kan JavaScript også være perfekt for miljøer som ikke er nettlesere. Dette dynamiske språket tilbyr støtte for objektkonstruksjon basert på prototyper, og syntaksen ligner både Java og C++.
Statistikk om JavaScript
Lønnen til en JavaScript utvikler er i gjennomsnitt $94,260 årlig, med den høyeste lønnen på $109,796. En full stack-posisjon starter på rundt $109K årlig. Til tross for dette faktum er JavaScript rangert lavere enn de best betalte teknologiene.
Det som er bra med dette programmeringsspråket er at det er sterk etterspørsel, men det betyr ikke at det er lett å finne ekspertene som er tilgjengelige. 75 % av ulike bedrifter og arbeidsgivere trenger å finne og ansette en JavaScript-utvikler. Kampen om de beste er dermed høy.
Populariteten til dette språket er enestående, og 68,62 % av de spurte utviklerne foretrekker å jobbe med dette. Dette sikrer JS førsteplassen på rangeringslisten over popularitet, og 14.59% hevdet de har ønske om å bruke JavaScript, eller implementere det i arbeidet sitt.
Populære merker som er avhengige av JavaScript
JavaScript er et populært språk hos følgende merker/selskaper:
- Microsoft
- Uber
- Netflix
- PayPal
- Groupon
- Google
- Facebook
- LinkedIn
- eBay
- Walmart
- IMDB
- Twitter
- Trello
- BBC
Intervjue en JavaScript-utvikler
Nyttige tips for et screeningintervju
Et kritisk segment av hele finne- og ansettelsesprosessen er å la en talentanskaffelsespesialist utføre forhåndsscreeningen av utviklerne. Disse spesialistene har spesifikke spørsmål, og vurderingsoppgaver, som evaluerer en kandidats kunnskap.
Rekrutterere og spesialister på talentanskaffelse spør alltid om tidligere arbeidserfaringer, i form av hvor mange år utvikleren har jobbet med JavaScript, fordi dette er med på å bestemme ansiennitetsnivået til utvikleren.
En annen ting de sjekker er det språklige aspektet, eller engelskkunnskapene, for å sjekke om det vil være potensielle utfordringer i den daglige kommunikasjonen mellom oppdragsgiver og utvikler.
Soft skills er også avgjørende. Utviklerens kommunikativitet, punktlighet for samtalen og miljøet rundt utvikleren sjekkes. Yrkeserfaring kombinert med passende fremtoning og holdning lover alltid godt.
Tekniske kunnskaper hos en JavaScript-utvikler
Den erfarne JavaScript-utvikleren bør ha følgende ferdigheter:
For dette ba vi Diamant Isufi, en programvareingeniør i Proxify, om å beskrive mer om hva annet utvikleren trenger å vite, og han sa:
"I tillegg til problemløsningsferdighetene, må utvikleren mestre alt det grunnleggende innen JS. Med utgangspunkt i hvordan det fungerer, når det brukes og hvorfor, men også nøyaktig beskrivelse av enkle datatyper, variabler, funksjoner, klasser, konstruktørfunksjoner og modularitet."
Diamant Isufi
Ikke-tekniske ferdigheter hos en JavaScript-utvikler
De ikke-tekniske ferdighetene er en stor del av det totale intervjuinntrykket.
Rekruttererne vet at totalbildet ikke bare dreier seg om ekspertise, teknisk kunnskap og erfaring. Den viktige minimumsforventningen er selvfølgelig engelskkunnskaper og det å komme i tide til intervjuet. Punktlighet er en god indikator på nivået av ansvar og respekt utvikleren har for rekruttereren, selskapet eller klienten.
Men, det stopper ikke der. Når det gjelder et online intervju er det sterkt anbefalt at utvikler møter til samtalen i et egnet miljø/rom. Miljøet må være ryddig, med nok belysning, et kamera av god kvalitet og et headset (for en klar lyd) hvis mulig. Kandidaten bør følge en passende kleskode og være i et rom uten lyd eller distraksjoner.
En annen ting rekrutterere bør fokusere på er samtaleferdighetene til kandidaten eller hvordan de håndterer samtaleflyten. Å lytte uten avbrudd, snakke tydelig eller høflig be om at et spørsmål gjentas, er plusspoeng for utvikleren og legger til "poeng" til deres kommunikasjonsaspekt.
Det viktigste, og vurderingen av en JavaScript-utvikler
Vi nevnte ferdighetene og den tekniske kunnskapen til en JavaScript-utvikler ovenfor. Det er imidlertid greit å oppsummere det viktigste man ser etter:
- Kompetanse innen JavaScript, HTML, CSS og jquery
- Kjennskap til React.js, Node.js og TypeScript
- Kjennskap til React.js og Redux.js
- Gode ferdigheter med koding på tvers av nettlesere
- Asynkron programmering
Men også:
- En analytisk tankegang som holder tritt med raske nyheter
- Kunnskap om hvordan ulike nettlesere eller plattformer fungerer
- Kunnskap om Meteor (JS-plattform)
- Erfaring med versjonskontroll
- ES6 språkfunksjoner - (ECMAScript 6 - for standardisering av JavaScript)
Diamant tilførte videre:
“Utvikleren trenger også å vite om ES7 (eksponentieringsgenerator). Generelt ville jeg også vurdert problemløsningsevnen og spurt om rammene og bibliotekene til JS. Etter dette ville jeg spurt om deres erfaring med Angular, Vue og React. Men generelt sett er teknologiene de må kjenne godt til: DOM (document object model), Node.js, NPM og Yarn samt NVM (node version manager)”.
Hva skiller en dyktig JavaScript-utvikler fra en god en?
Det er alltid en fin linje mellom gode og dyktige utviklere, men når du først ser noe som utgjør en forskjell, kan det være avgjørende. I dette tilfellet må den erfarne og ideelle JavaScript-utviklerkandidaten ha betydelig kunnskap og erfaring med dette programmeringsspråket.
De må også kunne jobbe med desktop-apper, hybride mobilapper, spillutvikling, backend webapper, mikrotjenester, nettverkstjenester, samt innebygde apper med spesifikke verktøy.
I tillegg trenger en dyktig kandidat å ha kunnskap innen ECMAScript-rammeverk og -versjoner og bruke det beste IDE (integrated development environment).
Mulige utfordringer ved ansettelse av en JavaScript-utvikler
Det er utfordringer og enkelte hindringer under ansettelsesprosesser, men det er viktig å gjenkjenne eller forutse dem for å unngå, eller løse dem etter hvert som de dukker opp.
En mulig utfordring er mangelen på eksperter som genuint har omfattende dybdekunnskap og som passer kriteriene og kravene til stillingen. Videre er det utfordringen med feilkommunikasjon angående lønn, eller økonomiske forventninger, som vil tilsvare volumet og kompleksiteten til forpliktelsene.
Hvis etterspørselen etter JavaScript-utviklere er høy, vil det alltid være konkurrenter som prøver å kapre de beste utviklerne til seg selv. Med dette i tankene blir hele rekrutteringsprosessen mer presserende og utrolig dynamisk.
Rekrutteringsprosessen er dessuten kostbar i seg selv, så ideelt sett trenger du at den resulterer i at den beste utvikleren "ender opp" med å jobbe for din bedrift.
Når og hvorfor trenger du å ansette en JavaScript-utvikler?
Du kan forvente forbedringer i virksomheten din gjennom følgende aspekter når du bestemmer deg for å ansette en JavaScript-utvikler:
- "Valuta for pengene" - JS er et grunnleggende programmeringsspråk, og hvis utvikleren kan det, mestrer de sannsynligvis også andre språk og teknologier
- Opprettelse av sable web servere og apper
- Dynamisk oppdatert innhold
- Enkel kontroll av videoer, bilder og multimedieelementer
- Enkelt fremhevet gjennom animasjon
- Spillutvikling
- Bruk av kraftige rammeverk – bibliotek med mange strukturer for prosjektdetaljer, og mange funksjoner for rask og god kvalitetsutvikling
- Fullstack utvikling – både frontend og backend blir lett skrevet
- Enkel når det kommer til feilsøking og testing – identifiserer feil raskt, koder gjennomgås enkelt linje for linje
- Utvikling av mobil- og nettapper på tvers av plattformer
- Utmerkede grensesnitt – skape fengslende og visuelt lekre grensesnitt for brukerne, med dra-og-slipp og andre interessante og verdifulle funksjoner.
- Samtidighet – kjøre flere oppgaver samtidig, håndtere ulike operasjoner, og dermed spare tid totalt sett
- Cybersecurity
Diamant oppsummerer de fordelaktige aspektene ved JS som:
“En JavaScript-utvikler vil kunne skrive koder for flere plattformer, og de er sannsynligvis svært fleksible til å tilpasse seg nye rammeverk og biblioteker som bruker JS, som Angular, React og Vue. Å skrive mobil- og skrivebordsapper er en annen bemerkelsesverdig fordel. Kompetanse på JavaScript er nyttig når en virksomhet skalerer, og etterspørselen etter andre plattformer øker.”
Fordeler ved JavaScript
- Popularitet – JavaScript er et populært programmeringsspråk med mange bruksområder og implementeringer. Som nevnt kan en dyktig utvikler utføre relaterte oppgaver som ikke er begrenset kun til JS
- Hastighet – JavaScript gir mulighet for raskt arbeid og utvikling i nettleseren på klientsiden, ofte uten behov for eksterne ressurser
- Enkelhet – Lett å lære og implementere i arbeidet
- Oppretting av utmerkede grensesnitt
- Flere handlinger – JavaScript matcher godt med andre programmeringsspråk, og tilbyr kvalitetsbruk i andre apper
- Tilgang til åpen kildekode-prosjekter – utviklere som trenger hjelp eller veiledning kan enkelt finne det
- Enkel syntaks
- Allsidighet
- Ikke avhengig av en plattform
- Reduserte serverinteraksjoner
Om de generelle fordelene ved å jobbe med JavaScript, kommenterte Diamant også:
“Jeg liker dette språkets hastighet siden det ikke er et kompileringsspråk, men et tolket. Det er utbredt på nettet blant alle utviklere, så et massivt fellesskap av eksperter tilbyr kvalitetsinformasjon og tilgang til nødvendige ressurser, artikler, kurs og mer. Og gjengivelsen på serversiden er en annen stor fordel med JavaScript.”
JavaScript intervjuspørsmål og svar
Mange spørsmål er relevante for å teste kunnskapen til en JS-utvikler, men her er noen forslag til spørsmål du kan stille under intervjuet:
- Hva er isNaN og hvordan brukes det?
Forventet svar: Uttrykket 'NaN' betyr 'Not-a-Number', og isNaN lar oss vite om en verdi er NaN. Mer presist bruker vi funksjonen isNaN( ) hvis vi trenger å finne ut om en verdi har et ulovlig eller feil tall. Så hvis denne funksjonen/metoden kommer tilbake som "true", betyr det at verdien vi undersøker faktisk er NaN.
- Forklar hva ‘negative infinity er.’
Forventet svar: Når vi deler et negativt tall med null, får vi et negativt uendelig tall i JS. Dette negative infinty tallet er en konstant verdi som er den laveste tilgjengelige verdien vi kan motta, og det vil ikke være noe lavere tall enn dette.
- Hva er ‘global variables’?
Forventet svar: De globale variablene er variabler som er synlige fra alle omfang og erklært i et globalt omfang - de er alltid deklarert gjennom et vindusobjekt eller utenfor en bestemt funksjon, og de er tilgjengelige fra bokstavelig talt alle funksjoner.
Forenklet sett vil en global variabel beholde sin egen verdi så lenge programmet eksisterer gjennom hele levetiden.
- Forklar forskjellen mellom SessionState and ViewState.
Forventet svar: SessionState er data som kontinuerlig vedvarer på en bestemt server, og datatilgjengeligheten stoppes når nettleseren lukkes eller økten er utløpt. Det er superspesifikke data med tilgang fra alle sider i nettappen. ViewState er en gruppe kontrollers verdier på en bestemt side på klient-nettlesersiden. Mens SessionState er lagret på en server, er ViewState lagret på selve siden, og det kan sees fra én side, ikke flere. I bunn og grunn vil ViewState bare lagre informasjonen på klientens side.
- Hva er ‘looping structures’?
Forventet svar: Når vi bruker en loop eller looping-strukturer i JavaScript, bruker vi dem til noen oppgaver som trenger repetisjon, dvs. Denne egenskapen hjelper oss med å gjenta funksjoner. Loopene slutter ikke å kjøre med mindre tilstanden deres fremstår som "false." Vi har totalt 7 looping-strukturer i JS, listet opp nedenfor:
- do-while
- while
- forEach()
- for
- for…in
- for…of
- map()
- Forklar meningen bak ‘NULL’ in JS.
Forventet svar: Betydningen av ‘null’ er ingen gjenstand og/eller ingen verdi. Dette er også kjent som ‘null string’, og det er verdiløst med vilje. Vi kaller dette en primitiv verdi, og den har ikke noe array-objekt, og en feil booleansk verdi også.
- Hvordan brukes ‘Void (0)’?
Forventet svar: Enkelt sagt er en void noe som er tomt; selvfølgelig har den ingenting inni. I JS er 'void' lik 'retur av ingenting' eller en tom verdi. Så med 'void(0)' kaller vi en annen, ulike metode uten å oppdatere siden. Ved hjelp av 'void(0)' forhindrer vi mulige hindringer og bivirkninger på en side når vi skal sette inn noe på siden, for eksempel et uttrykk.
- Hva er ‘pop()’ metoden?
Forventet svar: Når jeg trenger å fjerne det siste array-elementet, bruker jeg 'pop()' for å hente det samme elementet. Med dette justerer jeg arraylengden tilsvarende, og jeg gjør dette med denne syntaksen: array.pop( )
- Forklar forskjellen på ‘.call()’ og ‘.apply()’.
Forventet svar: Disse to er noe like, men la oss se nærmerre på dem. Når jeg kjenner argumentene til en funksjon og dens nummer, bruker jeg .call(), og denne funksjonen er en forhåndsdefinert metode. Denne metoden lar et spesifikt objekt ta på seg en metode fra et helt annet objekt. Når jeg bruker .apply(), bruker jeg det hvis jeg ikke har noen anelse om hva tallet er, men jeg kan skrive en metode som skal brukes på flere, ulike objekter.
- Hvordan fungerer ‘deferred scripts’ i JS?
Forventet svar: Først må vi definere "defer" i JS, som er et booleansk attributt, og dens rolle er å bestemme når det nedlastede skriptet er synkronisert og parallelt med side parsingen. Det er viktig at skriptet kjøres når parsingen er fullført for den siden. Nå, med deferred scripts i JS, utsettes kjøring av skript når HTML-parseren er aktiv. Resultatet av dette er rask visning og mindre lastetid for nettsider.
- Hva er arrow functions i JS?
Forventet svar: Ved hjelp av pilfunksjoner i JS kan vi lage anonyme uttrykk eller skrive uttrykkene for anonyme funksjoner. Disse pilfunksjonene tilbyr ikke støtte for søkeord som ‘new. target’, ‘arguments’, ‘this’ eller ‘super’. Det er en ganske levende likhet mellom JS-pilfunksjonene og Python lambda-funksjonene. I et nøtteskall brukes pilfunksjoner når vi skal få en funksjon til å passere akkurat som en parameter for en mer krevende funksjon.
- List opp alle JavaScript Data typene.
Forventet svar: Vi har totalt 6 JavaScript Data typer, men de er fordelt på tre kategorier.
- Primary eller primitive – Disse er Boolean, String og Number.
- Composite (eller referanse) – Disse er Object, Function og Array
- Special – Disse er Null og Undefined data types.
- Skill mellom udefinerte og ikke definerte variabler.
Forventet svar: Begge typer variabler er nært knyttet til minneplass. Enkelt sagt, en udefinert variabel er den som eksisterer i minneplassen, men som ikke har noen verdi tilordnet den til nå. Den ikke-definerte variabelen er den ikke-eksisterende variabelen i minneplassen, men den er fortsatt referert til et sted.
- Hva er JavaScript timers?
Forventet svar: Når vi trenger å utføre en spesifikk funksjon eller oppgave innenfor en viss tidsramme, bruker vi timers. Timers kan hjelpe oss med enten å forsinke kjøringen av et program eller en kode, eller hjelpe oss med å utføre koden i tide. Alle timers fungerer i én enkelt tråd, så påfølgende hendelser og funksjoner vil stå i kø etterpå.
- Utdyp om Automatic type conversion og JavaScript.
Forventet svar: Automatic type conversion er en prosess med verditildeling. Mer presist er det en prosess der vi tildeler en viss verdi fra én numerisk datatype til en helt annen numerisk datatype – i JavaScript er denne typen automatic type conversion aktivert og støttet, og brukes ofte.
- Hva er event delegation modellen i JavaScript?
Forventet svar: Med JS-delegasjonsmodellen kan vi oppnå bedre organisering og arrangementshåndtering, og dette er en av de beste egenskapene til JavaScript. Når vi ønsker å bruke én behandler for flere elementer samtidig, bobler vi og fanger deretter den nevnte behandleren for å bruke den på flere elementer og deler samtidig – dette er hendelsesdelegeringen som forenkler arbeidet enormt.
- Definer JavaScript cookies.
Forventet svar: Når en bruker besøker et nettsted, lagrer nettstedet bittesmå testfiler på datamaskinen. Disse små testfilene er informasjonskapsler, og de opprettes hver gang brukeren klikker på nettstedet for å legge inn informasjon. Dette kan være personopplysninger ved utsjekking av en handlekurv eller utfylling av skjemaer og lignende, etter at nettsiden ber om tillatelse av denne typen og brukeren skriver det inn.
- Kan du kort definere the escape characters?
Forventet svar: Når utviklere trenger å utføre en spesifikk operasjon gjennom en escape-kommando, må de skrive inn et symbol (en omvendt skråstrek, " \ ” ) for å starte escape-kommandoen. Dette symbolet kalles et escape-tegn, og det brukes hovedsakelig med spesifikke tegn som ampersands, enkle anførselstegn, doble anførselstegn, apostrof og lignende. Omvendt skråstrek blir bare synlig hvis du skriver det før tegnene.
- Forklar JavaScript generatoren.
Forventet svar: En generator representerer en funksjon eller prosess som kan legges inn på nytt når vi går ut av den, og som også kan settes på pause før vi fortsetter å jobbe med den. Det som er bra med å bruke JS-generatoren er at midtveis kan du pause eller stoppe, for så å komme tilbake og fortsette der du slapp.
- Hvor mange feiltyper er det i JavaScript, og definer dem.
Forventet svar: Med JS er det tre feiltyper: Syntax, Runtime og Logical.
Syntax erroren er også kjent som parse feil - disse skjer hvis vi ønsker å tolke en kode, men den koden er ugyldig syntaksmessig. Syntax errors er vanlige og hyppige. For eksempel, hvis du skriver et semikolon, men i stedet burde du ha skrevet et dobbeltkolon, vil dette være en syntaksfeil.
Runtime error er også navngitt og kjent som exceptions. Disse skjer for det meste rett etter kompileringen og tolkningen, og de oppstår når vi i løpet av kjøretiden kaller en funksjon som ikke er deklarert, eksisterende eller tilstede på det tidspunktet. I dette tilfellet har syntaksen ingen feil.
Logical error oppstår når det er et problem med koden, men syntaksen ellers er riktig og gyldig. I dette tilfellet kan det hende at vi kjører programmet jevnt, men noe ser feil ut til slutt med resultatene. Denne feiltypen er ganske kompleks å løse og identifisere, og er ikke knyttet til kjøretid eller syntaks. Logical error oppstå ved feil dataflyt eller hvis utvikleren gjør en feil i skriptlogikken.