Sådan screener du React Native-udviklerens færdigheder

Udgivet: Sidst opdateret:
React-udviklerfærdigheder

Mens React får al den store omtale, er React Native efterhånden blevet en vigtig del af JavaScript-universet. Det gør det muligt for mobiludviklere at skrive mobilapplikationer, der kan porteres til både iOS og Android. Fordelen ved dette er, at i stedet for at skulle udvikle separate iOS-færdigheder (Objective-C og Swift) og Android-færdigheder (Java og Kotlin) kan mobilapp-udviklere trække på JavaScript, som er det mest anvendte sprog i øjeblikket. Men som i alle teknologiske stakke er det ikke nok blot at kunne JavaScript. Du skal have en dybdegående forståelse af React Native. Så hvordan kan arbejdsgivere se, om en React Native-udvikler har de færdigheder, de har brug for?

En guide til screening af React Native-udviklerens færdigheder

Denne vejledning giver tekniske rekrutteringsfolk alle de oplysninger, de har brug for til at screene React Native-udviklerkandidater. I guiden finder du:

Hvad er en React Native-udvikler?

1. Hvad er React Native?

React Native er en ramme designet og vedligeholdt af Facebook med det formål at forenkle processen med at udvikle mobilapplikationer på tværs af platforme, primært i forbindelse med brugergrænsefladen. Det er bygget oven på et andet JavaScript-bibliotek React, som hurtigt har nået status som det mest populære og genkendelige værktøj blandt fronted-udviklere. Men dets fremgang har tiltrukket sig en del kontroverser.

React Native blev lanceret i 2015 som et open source-projekt og delte hurtigt mobiludviklerfællesskabet. Før React Native kom frem, havde der været en række værktøjer, der viste websider skrevet i HTML, CSS og JavaScript i en selvstændig browser, som efterlignede den native app. Hvis det lyder klodset, har du ret. De har vist sig at være besværlige at bruge og har ikke været særlig populære.

React Native undgår på den anden side at tage de samme genveje som sine forgængere. Det visningshierarki, der gengives af programmet, er helt naturligt for det system, det kører på. Sagt på en anden måde ser det ud som om, at appen er en native app og ikke en webside. Det gør React Native-apps umulige at skelne fra almindelige applikationer, der er skrevet i Swift, Objective-C, Kotlin eller Java. Hvis du vil se, hvordan det fungerer i praksis, kan du tjekke populære apps som Facebook, Messenger, Instagram eller Discord. Selv en ekspert ville have svært ved at se, hvilke dele af disse apps der er skrevet i React Native, og hvilke der er skrevet med en anden teknisk stak.

1.1 Forskellen mellem React vs. React Native

React og React Native er begge open source-projekter, der er skabt af Facebook, men er ikke det samme. React er et JavaScript-bibliotek til opbygning af webapps front-end, mens React Native er en ramme, der giver et samlet sæt værktøjer til opbygning af mobilapplikationer til både iOS og Android. Dette fører til grundlæggende forskelle som f.eks. det faktum, at React renderes i HTML, mens React Native ikke gør det. React Native giver også React Native-udviklere mulighed for at konvertere eller bygge bro mellem native visninger, der er skrevet i platformsspecifikke sprog som Swift eller Kotlin, til noget, der kan bruges af React Native.

Men på trods af deres forskelle er React og React Native utroligt ens, idet React Native bruger mange af de grundlæggende elementer fra React. Arbejdet med React Native kræver, at man bruger 70-80% af React-komponenterne og -praksis. På grund af dette er indlæringskurven for en React-udvikler for at lære React Native ikke særlig stejl for en React-udvikler. Alligevel er det to separate teknologier, som ikke bør forveksles med hinanden.

2. Hvad bruges React Native til?

Den største fordel ved React Native er, at React Native-udvikleren kan skabe applikationer til forskellige platforme uden at skulle lære og bruge flere forskellige teknologiske stakke. Facebook kalder denne tilgang for "lær én gang, skriv hvor som helst". Deres mål med udviklingen af React Native er at forene den viden, der er nødvendig for at bygge mobilapplikationer.

React Native giver udviklere en deklarativ måde at opbygge brugergrænseflader på. I lægmandsudtryk giver dette en meget mere let indlæringskurve sammenlignet med det native UIKit til iOS eller Android SDK. Det har betydet, at mange app-udviklere bruger det som en måde at komme ind i udviklingen af mobilapps på. Det har også ført til en række konkurrerende værktøjer som Googles Flutter eller Apples nyligt annoncerede SwiftUI, der er udviklet efter lignende principper.

Men selv om det er en nem måde at komme i gang med app-udvikling på, er React Native grundlaget for nogle effektive apps. Bloomberg, Airbnb og UberEats er alle gode eksempler på apps, der er bygget med React Native.

Hvad skal en it-ansøger vide om en React Native-udvikler

3. Hvad er vigtigt for en it-rekrutteringsmedarbejder at vide om React Native?

React Native er stadig et ret ungt framework og er derfor genstand for adskillige ændringer med enten mindre eller større indvirkning på udviklerens arbejde. For det meste er disse ændringer opt-in, og der er få eller ingen hårde deprecationer, der kan få en React Native-udvikler til at migrere sin kodebase.

På grund af den åbne karakter er køreplanen med alle de planlagte ændringer og forbedringer tilgængelig for fællesskabet. Med den nylige tilføjelse af hooks og endnu flere ændringer, der er planlagt i den nærmeste fremtid, vil processen med at lave en mobilapplikation blive endnu hurtigere og mere bekvem end nogensinde før.

En ubestridelig fordel ved React Native er det brede og hjælpsomme fællesskab. Mange spørgsmål på alle niveauer er allerede blevet besvaret i enten en blogartikel, et indlæg på Stack Overflow eller et mikrobibliotek, der er lagt ud som en NPM-pakke. Der er mange ressourcer for begyndere til at lære og for avancerede udviklere til at udvide deres viden.

Det er dog vigtigt at huske på, at man ikke må forveksle Facebooks "lær én gang, skriv hvor som helst"-tilgang med "skriv én gang, skriv hvor som helst". Det er stadig svært i React Native at skrive en app, der kan fungere i iOS og Android. Det skyldes, at der stadig er mange systemafhængige funktioner, som kræver, at dele af din kode opdeles i separate iOS- og Android-versioner. Alligevel er målet med React Native at forene færdighederne til at bygge apps, ikke at skabe én app, der virker på begge platforme.

3.1 Hvilken erfaring bør en React Native-udvikler have

Når du vurderer et CV som React Native-udvikler, afhænger det i virkeligheden af, hvilken type stilling kandidaten er ansat til. Det er et must at være involveret i kommercielle projekter, når der er tale om stillinger på senior- eller lederniveau, da forretningsrelateret knowhow forventes i disse stillinger. For andre niveauer betyder det ikke så meget. En fordel ved open source-bidrag er, at de kan give rekrutteringspersonalet yderligere indsigt i kodens stil eller i den måde, kandidaten interagerer med fællesskabet på. For at opsummere er det virkelig vigtigt at forstå teamets behov og rollens ansvarsområder, før screeningprocessen påbegyndes.

Hvordan kan man kontrollere React Native-færdigheder i screeningsfasen?

4. Teknisk screening af en React Native-udviklers færdigheder på baggrund af et CV

React Native er ret unikt med hensyn til, hvordan folk kommer ind i det, og hvilken baggrund de kommer fra. Nogle webudviklere, der er fortrolige med JavaScript og muligvis også med selve React, ønsker måske at udvide deres færdigheder til også at omfatte mobiludvikling. Omvendt kan nogle native mobiludviklere måske genkende styrkerne i React Natives tilgang og værktøjer og vil gerne udnytte dem i deres daglige arbejde. Begge kan yde et væsentligt bidrag til teamet, idet førstnævnte kan bidrage med JS- eller React-specifikke mønstre og bedste praksis, mens sidstnævnte kan bidrage med viden om nogle funktioner og begrænsninger i et mobilspecifikt miljø. Det ville være godt for rekrutteringsmedarbejderen at vide, hvad kandidatens rolle præcist er, og hvilke færdigheder teamet efterspørger.

React Native-glossar for udviklere

5. React Native-glossar for tekniske rekrutteringsfolk

Nuværende JavaScript-standarder ECMAScript2015 (også kendt som ES6), ECMAScript2019 (også kendt som ES10)
JavaScript supersæt, der tilføjer stærk typning TypeScript
React Native-biblioteker React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL

Pakkeadministratorer

NMP, garn
JavaScript-udvidelser JSX
Værktøjer, der hjælper med at vedligeholde kodens stil ESLint, TSLint, Prettier
Testløbere Jest, Mokka

5.1 Hvilke teknologier skal du kigge efter i et CV som React Native-udvikler?

En vigtig ting at se efter er den JavaScript-standard, som kandidaten er fortrolig med. Fra og med 2015 med ECMAScript2015 (også kaldet ES6) udgives der hvert år en ny JavaScript-standard. Den aktuelle iteration fra 2019 hedder ECMAScript2019 (ES10). Disse forskellige standarder kan have en indvirkning på den React Native API, som kandidaten hidtil har brugt.

Den mest markante ændring skete mellem standarderne ES5 (2009) og ES6 (2015). Men kode, der er skrevet i de nyere standarder, kan altid overføres til de ældre standarder ved hjælp af værktøjer som Babel.

5.2 Andre ting at se efter på et CV som React Native-udvikler

TypeScript er en kompetence, som også kan være nyttig for en React Native-udvikler. Dette er en overordnet version af JavaScript, der bruger statisk typning. Statisk typing hjælper generelt med at identificere nogle fejl i koden meget hurtigere (men det erstatter ikke enhedstests på det område) og giver udviklerne mulighed for at udtrykke deres intentioner om de offentlige API'er, de eksponerer for offentligheden, på en mere klar og bedre struktureret måde.

Der findes også en masse ad hoc React Native-biblioteker, der fokuserer på at løse bestemte problemer som navigation eller tilstandshåndtering. Kendskabet til disse er stærkt korreleret med de typer projekter, som kandidaten har arbejdet på. Hvis en kandidat nævner et bibliotek som React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL eller mange andre, kan det være et interessant indgangspunkt for diskussionen om kandidatens tidligere erfaring.

Interviewspørgsmål om React Native-udvikler

6. React Native-interviewspørgsmål

Et CV giver dig mulighed for at se, hvordan en ansøger præsenterer sin viden. Men det er ikke nok til at fortælle dig, om de har de færdigheder, du har brug for. Alle kan jo skrive hvad som helst på et CV. De skal derefter udspørges om deres færdigheder i en telefonscreening eller interviewes efter at have bestået vurderingen af kodningsevnerne.

6.1 Spørgsmål om en React Native-udviklers erfaring

Spørgsmål 1: Kan du beskrive de applikationer, som du tidligere har arbejdet med? Hvordan har du brugt React Native i disse applikationer?

Begrundelse: Dette spørgsmål skal mest tjene som en opvarmning for kandidaten til at åbne op og tage initiativ til at fortælle om sine generelle erfaringer. Det er vigtigt at spørge, hvordan React Native blev brugt af deres team som opfølgning. Dette giver rekrutteringsmedarbejderen mulighed for at vurdere, hvilke områder af React Native kandidaten måske er bekendt med - f.eks. om RN blev brugt i hele appen eller kun i nogle af skærmbillederne, blev der bygget bro til native dele skrevet i Objective-C/Java osv.

Q2: Hvorfor valgte du og dit team at bruge React Native? Hvad var det største salgsargument for jer? Hvordan hjalp det i de applikationer, du har arbejdet på?

R: Svaret på dette spørgsmål kan fortælle rekrutteringsmedarbejderen flere ting. Det viser til dels, hvilken stilling eller hvilket ansvar kandidaten havde i sit team - var han/hun involveret i beslutningsprocessen? Og selv hvis ikke, er de så klar over de vigtigste React Native-formål, som måske har solgt ideen til deres kolleger? Det viser også, om kandidaten er i stand til at træffe en teknisk beslutning baseret på forretningskravene i de applikationer, han har arbejdet med, eller om han bare følger med i udviklingen.

Q3: Hvordan har du håndteret tilstand i disse ansøgninger? Hvordan fungerede det?

R: Dette er et lidt mere teknisk spørgsmål. Da React Native i sin kerne blot er brugergrænsefladelaget, er det vigtigt at vide, hvad kandidaten har brugt til at udfylde de resterende tomrum, hvoraf et af dem er tilstandshåndtering. Dette har potentiale til at åbne op for diskussionen om unidirektionel datastrøm (redux, flux) eller håndtering af tilstand fra eksterne tjenester (REST, GraphQL). Det giver også en fornemmelse af kandidatens evne til at vurdere fordele og ulemper ved den valgte tilgang, hvilket er en afgørende færdighed i selvudvikling.

6.2 Spørgsmål om en React Native-udviklers viden og holdninger

Q1: Hvilken slags komponenter kan man bruge i React Native? Hvordan adskiller de sig fra hinanden? Hvornår skal man bruge hvilke?

R: Spørgsmålet kan fortolkes af kandidaten på forskellige måder. Komponenterne kan opdeles enten i container/præsentationskomponenter eller i tilstands-/ren/funktionelle komponenter. Det er ligegyldigt, hvilken tankegang kandidaten viser her, dette spørgsmål handler mere om, at kandidaten skal være i stand til at tale om formålet eller grænserne for hver enkelt helst i forbindelse med sin egen erfaring.

Q2: Hvordan kan du genbruge kode i din applikation? Hvilke teknikker kender du til at dele fælles logik, og hvad er din mening om dem?

R: Der er flere måder at genbruge kode på, hvoraf de mest populære er Higher Order Components, Render Props, Hooks og Context. Brugen af dem er normalt baseret på teamets præference, så det vigtigste her er, at kandidaten forklarer, hvorfor han/hun ville bruge den ene i stedet for den anden. Det bør give rekrutteringsspecialisten en fornemmelse af, hvor dyb kandidatens viden er, en forståelse af React Native-internals, og hvor meget kandidaten går op i ren og vedligeholdelsesvenlig kode.

Q3: Hvordan debugger du programmet? Hvilke værktøjer bruger du, og hvor nyttige er de?

R: Det meste af en React Native-udviklers tid går med at læse, analysere og fejlfinde den eksisterende kodebase. Derfor er de færdigheder og den viden, der kræves for at debugge appen på en korrekt og effektiv måde, afgørende. Kandidaten kan nævne forskellige tilgange, der varierer fra at bruge almindelige logfiler til at tilknytte en debugger for at bruge breakpoints eller inspicere view-hierarkiet via React Dev Tools. Hver af disse har nogle specifikke tilfælde, hvor den er bedst, så kandidaten bør også nævne en eksempelsituation, hvor den blev brugt. Bonuspoint for at nævne en enhedstest, der reproducerer fejlen og får den til at bestå som en måde at fastslå, at fejlen er rettet og fortsat vil være rettet i fremtiden.

Q4: Har du nogensinde oplevet problemer med ydeevnen i din app? Hvad har du brugt til at diagnosticere dem? Hvordan løste du dem?

R: React Natives ydeevne bliver ofte nævnt af skeptikere, når det gælder dets anvendelighed. Selv om det er sandt, at det er let at falde i nogle fælder, der får billedfrekvensen til at falde i processen, er det lige nok at forstå React- og React Native-internalerne til at afhjælpe disse problemer. Kandidaterne kan nævne teknikker som memorisering, forbedringer som rene komponenter eller faldgruber som inline-funktioner. Disse dækker en betydelig del af de årsager, der forårsager, at grænsefladen er mindre responsiv. Når kandidaterne taler om værktøjer som profiler og begreber som blending og offscreen rendering, bliver det klart, at de har stået over for virkelig komplekse problemer (sandsynligvis med animationer). Det ideelle svar bør også nævne, at man for at forbedre ydeevnen skal have et sæt målinger, som man skal minimere eller maksimere (som FPS, hukommelses- eller CPU-forbrug osv.), da det uden dem er svært at vurdere, om React Native-udvikleren går i den rigtige retning.

Q5: Hvad med test? Har du brugt dem? Hvordan har de hjulpet dit team? Hvilke typer af test brugte I?

R: Testning er stadig et overraskende kontroversielt emne. Uanset om man kan lide det eller ej, skal en applikation i det mindste testes på en eller anden måde, før den sendes i produktion for at sikre, at nye funktioner fungerer som specificeret, og endnu vigtigere, at den gamle ikke gik i stykker. At have et stærkt og dedikeret QA-team hjælper helt sikkert på dette, men at have unit- eller snapshot-tests giver React Native-udvikleren øjeblikkelig feedback, som han kan bruge til at rette koden. Tests er et værktøj for udviklere, der øger deres tillid til de ændringer, der indføres i kodebasen, betydeligt. En test vil fange det øjeblik, hvor applikationen fungerer korrekt, og opretholde denne korrekthed fra det tidspunkt og fremefter. Der findes flere JavaScript-testløbere, hvoraf Jest er den mest anbefalede i forbindelse med React Native, især fordi den kommer fra React Natives forfattere. Derudover kan man bruge en react-test-renderer til enten at teste opførsel af en bestemt komponent eller snapshot af et helt visningshierarki for at beskytte det mod uventede ændringer.

Q6: Hvordan opretholder du kodens stil i dit team? Hvordan forvalter I kodebasen sammen?

R: Dette er et lettere spørgsmål, der skal afdække kandidatens viden om forskellige værktøjer, der anvendes i udviklingsprocessen. Svarene her kan være meget brede. De kan spænde fra Prettier og ESLint, som tilsvarende automatiserer kodeformatering og kontrollerer, om den skrevne kode passer til de regler, som teamet har fastsat, til begreber som kontinuerlig integration eller endda versionsstyringssystemer som Git. Kandidaten kan endda nævne praksis som kodegennemgang. Hovedformålet med spørgsmålet er at vise, hvordan og på hvilken måde kandidaterne samarbejdede med deres team, og hvor meget af det gentagelige arbejde de var i stand til at automatisere.

6.3 Adfærdsspørgsmål til en React Native-udvikler

Q1: Hvad var den største bedrift i din karriere? Hvad var den største fejltagelse? Hvilke skridt ville du tage for at gentage succesen eller undgå at gentage fiaskoen?

R: Et ret generisk spørgsmål, men det viser kandidatens evne til selvindsigt og selvkritik. Begge dele er nødvendige i den læringsproces, som er en konstant del af at være en god softwareudvikler.

Q2: Hvordan ville du håndtere en situation, hvor dit projekt har en deadline i morgen, men hvor der stadig er nogle funktioner, der skal implementeres?

R: Det er slet ikke så svært at forestille sig, og der er stor sandsynlighed for, at kandidaten har stået i en sådan situation tidligere. Måske har kandidaten forsøgt at forhandle og få mere tid til at gøre arbejdet færdigt. Måske har de sat sig ned med produktejeren eller lederen for at prioritere funktionerne og holde sig til en slags MVP. Måske har de implementeret nogle funktioner på en måde, der var hurtig, men ikke særlig vedligeholdelsesvenlig, for at vinde tid og sætte en påmindelse om at foretage en oprydning senere. Der er forskellige tilgange, og formålet med dette spørgsmål er at vise rekrutteringsspecialisten, om kandidaterne forstår vigtigheden af forretningsmålene, og om de er i stand til at foretage nogle kompromiser på det tekniske niveau for at opfylde dem.

Q3: Hvilke ressourcer vil du anbefale junior/regelmæssige udviklere, som kan give dem mulighed for at forbedre deres færdigheder? Kunne du tænke dig at være mentor for en sådan udvikler? Har du gjort det tidligere?

R: Svaret på dette spørgsmål er en indirekte måde at kontrollere, hvilke af disse ressourcer kandidaten har brugt før og hvorfor. Dette giver rekrutteringsmedarbejderen yderligere oplysninger om baggrunden. Mentordelen kan indikere, om React Native-udvikleren kan lide at dele viden, hvilket også kan have en positiv indvirkning på teamet.

Q4: Hvilke områder inden for mobiludvikling eller softwareudvikling vil du gerne udforske eller blive mere fortrolig med? Hvorfor?

R: Dette spørgsmål giver rekrutteringsmedarbejderen et hint eller to om, hvilke emner der kan være interessante for kandidaten, og i hvilken retning kandidaten gerne vil udvikle sin karriere. Det giver rekrutteringsmedarbejderen mulighed for at vurdere, om det projekt, som kandidaten ansættes til, vil passe godt til ham.

React Native Developer Kodningstest

7. Teknisk screening af React Native-udviklerens færdigheder ved hjælp af en online kodningstest

Et CV som React Native-udvikler indeholder de færdigheder, som dine kandidater siger, at de har, og telefonscreeningen giver dig mulighed for at tjekke, om de har teoretisk viden om koncepter relateret til React Native-udvikling. Men bare fordi en kandidat har teoretisk viden, er det ikke sikkert, at han/hun kan anvende den i praksis i forbindelse med softwareudvikling. En online kodetest kan give dig et indblik i, hvor godt en kandidat kan udvikle en applikation ved hjælp af React Native.

7.1 Hvilken React Native-programmeringstest skal du vælge?

Der findes et par muligheder, men det er vigtigt at vælge en test, der specifikt bruger React Native og ikke JavaScript eller React. Her er nogle retningslinjer:

  • Testen afspejler det arbejde, som din virksomhed udfører
  • Den har en rimelig længde på en til to timer (eller endnu mindre).
  • Afsendelsen er automatiseret
  • Prøven kan tages i ansøgerens hjem
  • Den kontrollerer kodekvalitet og edge cases samt løsninger
  • Kandidaten har adgang til alle de normale ressourcer, som de bruger til at udvikle software
  • Det er et in stack-projekt, som ikke kun giver kandidaten adgang til React Native-rammen, men også til de forskellige biblioteker, der bruges med React Native.
  • Den er kalibreret til at matche niveauet for positionen

7.2 DevSkiller klar til brug online test til kodning af React Native-udviklere

Devskillers react Native-tests er bygget på vores RealLifeTesting™-metodologi for at sikre et helt nøjagtigt øjebliksbillede af kandidatens færdigheder. Testen kan tages på det sted og tidspunkt, hvor kandidaten er mest komfortabel og klar. De har adgang til alle de ressourcer, de har brug for, såsom GitHub, Stack Overflow, Google og andre React Native-biblioteker. Dette er en funktion og ikke en fejl, da det viser de beslutninger, som kandidaten træffer i et naturligt programmeringsmiljø. Du kan se, hvor godt kandidaten løser opgaven, men også de beslutninger, de træffer, den forretningslogik, de anvender, effektiviteten og renheden af deres kode, og hvor godt de kender den tekniske stak.

Du kan bygge din egen test eller bruge en af DevSkillers egne tests, som er bygget af erfarne React Native-eksperter.

React Native
MIDDLE
Testede færdigheder
Varighed
107 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om React Native

Huller i koden

vurdering af viden om JavaScript, React Native

Programmeringsopgave - Niveau: Medium

React Native | Cheeper - en ny app til sociale medier - Færdiggør implementeringen, så grundlæggende socialisering er mulig.

React Native
SENIOR
Testede færdigheder
Varighed
108 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om ES6, JavaScript

Programmeringsopgave - Niveau: svær

React Native | Movie Store - Implementer en applikation, der giver brugerne mulighed for at købe alle de film, de kan forestille sig.

React Native
MIDDLE
Testede færdigheder
Varighed
101 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om ES6, JavaScript

Programmeringsopgave - Niveau: Medium

React Native | HR Companion App - Implementer en applikation til at hjælpe HR-afdelingen med at vedligeholde listen over jobkandidater, der skal evalueres.

React Native
JUNIOR
Testede færdigheder
Varighed
70 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om ES6, JavaScript

Programmeringsopgave - Niveau:

React Native | Ultimate BugTracker - Implementer manglende funktioner og løser fejl i applikationen, der bruges som intern fejlfinding i et softwarehus.

Del indlæg

Få mere at vide om ansættelse af teknologiske medarbejdere

Tilmeld dig vores Learning Hub for at få nyttig viden direkte i din indbakke.

Kontroller og udvikl kodningsevner uden problemer.

Se DevSkiller-produkterne i aktion.

Sikkerhedscertificeringer og overholdelse. Vi sørger for, at dine data er sikre og beskyttede.

DevSkiller-logo TalentBoost-logo TalentScore-logo