Skærm C og C++-udvikleres færdigheder

Udgivet: Sidst opdateret:
C og C++: spørgsmål til interview med softwareingeniører

C og C++-udviklere får ikke den samme opmærksomhed som udviklere af andre sprog. De er ikke lige så allestedsnærværende som JavaScript-udviklere. De er ikke lige så godt forbundet med hotte emner som datalogi som Python-udviklere. De bruger ikke en teknologi, der er lige så up-and-coming som Kotlin-udviklere gør. Men i modsætning til de teknologier, der skaber alle overskrifterne, er C og C++ fortsat arbejdshestene i mange vigtige systemer samt på områder som indlejret teknologi og spil. Derfor er der stadig stor efterspørgsel efter C og C++-udviklere. Så spørgsmålet er, hvordan man screener C og C++-udviklerkompetencer?

C og C++ har begge eksisteret i lang tid, så der er meget at lære om dem. Der findes forskellige versioner, teknologier og ressourcer, der er blevet udviklet til disse teknologiske stakke. Du er nødt til at bruge specifikke C og C++-interviewspørgsmål, da de spørgsmål, du bruger til sprog som Java, simpelthen ikke er tilstrækkelige. Der er begreber, som du simpelthen ikke vil se uden for C i C++. Desuden skal du bruge den rigtige tekniske skærm for at se, om en person har C- eller C++-færdigheder. Men bare rolig, i dette indlæg får du alt det, du skal vide om screening og ansættelse af C og C++-udviklere.

I denne vejledning finder du:

liste over færdigheder for c++-udviklere1. Hvad er C og hvad er C++?

Det første, du skal forstå, er, at C og C++ ikke er det samme. Som du kan forestille dig, har C eksisteret lidt længere end C++. C blev introduceret i 1972 og blev de facto-standard i slutningen af det årti. Den første C++-version udkom først i 1984. Men igen tog det kun 10 år at få fat i det hele. I begyndelsen af 90'erne havde C++ vundet stor popularitet.

1.1 Hvad er forskellen mellem C og C++?

For det første er C et processuelt sprog. C++ er på den anden side et sprog med flere paradigmer. Det udmærker sig ved både procedurel og objektorienteret programmering. Desuden gør nye funktioner det til et praktisk valg til funktionel programmering. I de fleste tilfælde i den virkelige verden vil C++-programmer bruge alle tilgængelige programmeringsparadigmer i en eller anden grad. Faktisk vil man ofte se enll tre paradigmer blandes sammen.

Programmeringsparadigmer er ikke den eneste forskel mellem de to. C er ret tæt på maskinniveauet og kaldes nogle gange for "den bærbare assembler". C++ er derimod tættere på sprog på højere niveau som Java, C# og D (men har stadig nogle af C's funktioner på lavt niveau).

1.2 Hvad er ens ved C og C++?

Ud over disse forskelle er det helt sikkert rigtigt, at der er visse ligheder. Den syntaks, der anvendes af begge disse sprog, kaldes ofte "C-familiens syntaks". Fordi C har været så populært, vil du faktisk opdage, at C's grammatik og syntaks er grundlaget for en række programmeringssprog som Java, C#, C++, D, Objective-C, JavaScript og mange flere.

Hvad bruges C og C++ til?2. Hvad bruges C og C++ til?

2.1 Hvad bruges C til?

Fordi de er så tæt på maskinniveauet, bruges C og C++ hovedsagelig til applikationer, hvor behandlingshastighed og manuel indstilling er vigtigere end ingeniørtid. Det drejer sig bl.a. om programmering på lavt niveau (BIOS), indlejret programmering (enheder), systemprogrammering (operativsystemer) og præstationsorienteret programmering (f.eks. spilmotorer, GPU/videnskabelige beregninger, kryptografi).

Den virkelige fordel ved C og C++ er, at programmøren får mulighed for at sige, hvad der sker med programmet på det laveste niveau, tættest på maskinniveauet. På den ene side giver dette C og C++ en utrolig ydeevne. Ulempen er, at der er en meget mindre fejlmargin for at få koden korrekt, da de mangler hukommelsesstyringsfunktionen i sprog på højere niveau. I praksis betyder det, at det kan tage meget længere tid at skrive fungerende kode i C og C++ end i et programmeringssprog på højere niveau som Java eller Python.

Fordi C er så tæt på maskinniveauet, er det i princippet programmeringens lingua franca. De fleste andre programmeringssprog er bygget op med C, og de fleste programmer har deres funktioner i C. Næsten alle andre sprog kan kalde C-funktioner.

På et grundlæggende niveau er C ret let at lære. Dens syntaks og grammatik er ret enkel at lære de grundlæggende ting, men vanskelig at mestre. I modsætning til andre sprog mangler C de værktøjer, der løfter byrden af det travle arbejde, som en udvikler normalt gerne vil undgå.

2.2 Hvad bruges C++ til?

C++ blev delvist udviklet for at løse nogle af C's problemer på lavt niveau, samtidig med at man beholdt C's programmeringsstil. Desværre har dette betydet, at indlæringskurven for C++ er utrolig stejl, og det er et meget mere ekspertvenligt sprog. Det kan gøre det endnu vanskeligere at bruge en fremmed kodebase. Heldigvis giver de nye versioner af C++ mulighed for sikkert og nemt at understøtte en udenlandsk kodebase. Det er stadig op til kodningsholdet at undgå at bruge de usikre konstruktioner og håndhæve reglerne.

C++ plejede at være en udvidelse af C, men det har ikke været tilfældet siden 1998. Det er nu i høj grad sit eget sprog. De fleste C-koder kan kompileres i C++ uden at blive ændret, men ingen af dem er en streng delmængde af den anden. Alligevel bliver kløften mellem de to stadig større, efterhånden som der udgives nye standarder.

2.3 Hvad er forskellen mellem C og C++?

C++ gør det muligt at kompilere de fleste C-konstruktioner og -kode som C++-kode, samtidig med at det giver mulighed for flere programmeringsværktøjer som f.eks. skabeloner, RAII (Resource Acquisition Is Initialization), klasser, lambdaudtryk, et større og mere kraftfuldt standardbibliotek og et stærkere typesystem.

Samtidig har C nogle værktøjer, som C++ ikke har. Det drejer sig bl.a. om udpegede initialisatorer og VLA'er (Variable Length Arrays). En generel tommelfingerregel er, at hvis der er et C++-miljø til stede, kan man være hundrede procent sikker på, at der er et C-miljø til stede. Det modsatte er ikke nødvendigvis tilfældet.

Hvad skal en it-ansøger vide om C og C++?3. Hvad skal en it-ansøger vide om C og C++?

C har ikke ændret sig i et stykke tid. De sidste to revisioner, C11 og C18, var begge ret små og indebar ikke store ændringer. Den kommende C21 ser heller ikke ud til at være banebrydende.

C++ er på den anden side begyndt at gøre fremskridt efter at have været meget lidt i det sidste årti. Der er nu udgivet en revision hvert tredje år siden C++ 11, og C++ 20 forventes at komme til tiden.

Næsten alle tilgængelige biblioteker har en C API eller binding, selv om de er skrevet i et andet sprog. C++ kan bruges til alle disse biblioteker. Der findes også nogle biblioteker, der kun kan bruges i C++, f.eks. Boost, Qt og POCO.

3.1 Hvilke værktøjer og teknikker bør en C- eller C++-udvikler være bekendt med?

Det vigtigste for en C-udvikler er nok at have en forståelse af pointer-arkitmetik og af, hvad der udgør udefineret adfærd. Desuden bør en C-udvikler være fortrolig med at bruge fejlfindingsværktøjer som Address/Memory/UndefinedBehavior Sanitizer, Valgrind, debuggere (f.eks. GDB) og værktøjer til statisk kodeanalyse.

En C++-udvikler bør være i stand til at forstå alle C-værktøjer samt Boost- og Qt-bibliotekerne godt nok til at kunne bruge dem.

Når man ser på en udviklers oplevelse, er det kommercielle og open source-projekter, der fortæller mest om, hvad de kan.

Kontrollere C- og C++-færdighederSådan kontrolleres C og C++-udviklerens færdigheder i screeningsfasen

Tekniske interviews er dyre og tidskrævende for dig og dine kandidater. Du ønsker ikke at interviewe alle, der ansøger. I stedet er det vigtigt at screene dine kandidater, så kun de, der når frem til interviewfasen, har de tekniske færdigheder, der er nødvendige for jobbet.

ANBEFALET LÆSNING: Komplette lønoplysninger for C++-udviklere

4. Screening af en C-udvikler eller en C++-udvikler ved hjælp af deres cv

CV'et er det første sted, du kan kigge for at finde spor om, hvad din kandidat kan gøre. For en ikke-teknisk rekrutteringsmedarbejder kan det ofte være et vanskeligt sted at starte, da oplysningerne ofte er meget tekniske. For at hjælpe dig har vi samlet en liste over ting, du skal kigge efter i en C og C++-udviklers CV.

Ordliste for C og C++4.1 Ordliste over C og C++ for tekniske rekrutteringsfolk

C-biblioteker C Standardbiblioteket

  • Biblioteket, der er beskrevet i C standarddokumentet, og som leveres sammen med hver compiler

Andre, mindre udbredte, men stadig populære biblioteker:

GTK

  • Et bibliotek til oprettelse af grafiske brugergrænseflader

Cairo

  • Et 2d grafikbibliotek

ALSA

  • Et bibliotek til grænseflade med Advanced Linux Sound Architecture

BLAS

  • Grundlæggende lineære algebra-underprogrammer. Dette bibliotek bruges til effektive vektor- og matrixoperationer

GMP

  • GNU Multi Precision. Et bibliotek til aritmetiske operationer på tal med vilkårlig præcision

cURL

  • Biblioteket til filoverførsel med flere protokoller. Mest almindeligt anvendt til HTTP-kommunikation

OpenSSL

  • Et kommercielt og meget populært bibliotek, der bruges til kryptografisk understøttelse
C++-biblioteker C++-standardbiblioteket

  • Det bibliotek, der er beskrevet i C++-standarddokumentet, og som leveres sammen med hver compiler

Boost

  • Et af de mest populære biblioteker til C++, et sæt af flere dusin af hinanden uafhængige biblioteker, som frit kan bruges i C++-programmer

Qt

  • Den bedste GUI-ramme til C++

STL

  • Et kontroversielt akronym, som normalt betyder C++ Standard Library, men som forstås som Bibliotek med standardskabeloner, som om de dele, der ikke indgår i skabelonen, ikke var en del af den

Andre, mindre udbredte, men stadig populære biblioteker:

Egen

  • C++-skabelonbibliotek til lineær algebra (matricer, vektorer, numeriske opløsere og relaterede algoritmer)

GSL

  • Retningslinjer Support library implementation, anbefalet af Bjarne Stroustrup, Herb Sutter og Co. i C++ Core Guidelines

Loki

  • designmønstre

Folly

  • Et sæt C++11-komponenter, der udvider standardbiblioteket. Designet med effektivitet og praktisk anvendelighed for øje. Udviklet af Facebook

Abseil

  • En samling af C++-biblioteker, der udvider standardbiblioteket. Oprettet af Google

POCO

  • Et sæt biblioteker, der understøtter HTTP, netværk, kryptering og understøttelse af zip-filer

WxWidgets

  • Et bibliotek, der gør det muligt at skabe systemuafhængige GUI-applikationer

OpenCV

  • Et computer vision-bibliotek, der er designet med henblik på beregningseffektivitet med fokus på realtidsapplikationer

OpenMP

  • Mindre et bibliotek og mere en specifikation til compilere om, hvordan C++ kan udvides til at tillade enkel og veltilrettelagt parallelisme

IntelTBB

  • Et skabelonbibliotek til opgaveparallelisme. Designet af Intel
Compiler Det værktøj, der bruges til at oprette en eksekverbar fil (et program) fra C/C++-kilden, mest populært:

  • GCC - GNU Compiler Collection
  • MinGW GCC - Windows-version af GCC
  • Clang - Compiler fra LLVM-projektet
  • MSVC (også kaldet, lidt fejlagtigt, MSVS eller Visual Studio) - Microsofts compiler
  • ICC - Intels compiler
Debugger Et værktøj til at finde fejl i kørende programmer

  • Valgrind
  • GDB
  • LLDB
  • WinDBG
Instrumentering af kode Dette er en udvidelse af compileren til at producere en programversion, der er rettet mod at finde fejl i stedet for at finde ydeevne

  • Adresse/hukommelse/udefineret adfærd Sanitizer
Statisk analyse En analyse af kildekoden med hensyn til fejl. Der findes kommerciel software, som kan finde nogle klasser af fejl på denne måde

  • CppCheck
  • Clang
  • Klocwork statisk kodeanalyse
  • PC-Lint
  • Coverity
  • PVS-Studio

4.2 De mest almindelige teknologinavne i C og C++, som bruges i flæng

  • C++ Standard Library og STL bruges nogle gange i flæng, men ikke korrekt

4.3 De forskellige versioner af C og C++

Versioner af C

Versioner af C er mærket med det år, de blev udgivet (f.eks. C89 er C fra 1989). Der findes ingen mellemliggende versioner (f.eks. C06), men nogle kan henvise til versioner fra før C89

De mest populære revisioner er:

  • C89
  • C95
  • C99
  • C11
  • C18
  • C21 (endnu ikke offentliggjort),
  • ANSI C

Versioner af C++

Versioner af C++ er mærket på samme måde som versioner af C med årstallet for udgivelsen.

De mest populære revisioner er:

  • C++84 - ikke en egentlig revision, men bruges nogle gange til at definere præ-standard C++
  • C++98
  • C++03
  • C++11
  • C++14
  • C++17
  • C++20 (endnu ikke offentliggjort)

Desuden kan du se de navne, som versionerne fik under udviklingen.

  • C++0x (navn under udarbejdelse for C++11, som skulle have været leveret inden 2010)
  • C++1y (navn under udarbejdelse for C++14)
  • C++1z (navn under udarbejdelse for C++17)
  • C++2a (navn under udarbejdelse for C++20?)

4.4 Hvor tæt de respektive versioner af C- og C++-teknologier ligger på hinanden

  • C11/C18 - næsten det samme
  • C++98/C++03 - næsten det samme
  • C++11/C++14 - mindre ændringer
  • C++14/C++17 - mindre ændringer (men nok til at gøre forskellen mellem C++11/C++17 betydelig)

4.5 Hvilke versioner er helt forskellige?

  • C++03/C++11 - den største ændring i C++'s historie
  • C++11/C++17 - gradvise ændringer i løbet af revisionerne
  • C89/C99 - store ændringer med hensyn til typesikkerhed og understøttelse af ældre problemkode

4.6 Hvor vigtige er C- og C++-certifikater for vurderingen af en kandidats kodningsevner?

Der findes ingen anerkendte C/C++-certificeringer. Derfor er det bedst at ignorere dem i et CV, da de ikke fortæller dig noget om ansøgerens færdighedsniveau.

4.7 Andre ting, du skal være opmærksom på i en C eller C++-udviklers CV

Hold øje med, om kandidaten:

  • Angiver den version af sproget, de har brugt
  • Har arbejdet på et typisk C++-projekt
  • Har deltaget i store projekter, der har med unikke og strenge krav at gøre

Hvis følgende er nævnt, kan tekniske interviews desuden vurdere kandidaten på baggrund af deres offentligt synlige historik:

  • Taler på konferencer
  • Deltagelse i konferencer
  • Skrivning af artikler til tekniske tidsskrifter
  • Skrivning af en teknisk blog
  • Bidrag til OSS
  • Bidrage til svarwebsteder (f.eks. Stack Overflow)

Spørgsmål til telefoninterview om C og C++ - liste over færdigheder for c++-udviklere5. Spørgsmål til C og C++-interviews, der skal stilles under et teknisk interview pr. telefon/video

Det kan være ret svært at stole udelukkende på et CV. Når alt kommer til alt, er det vigtigt at udfordre kandidaten på det, han/hun hævder, for at se, om han/hun rent faktisk har de pågældende færdigheder, eller om han/hun blot siger, at han/hun har dem. Selv om et telefoninterview ikke kan erstatte en ordentlig kodningstest, kan det hjælpe dig med at forstå, hvad kandidaten tænker, og hvordan han/hun går til værks for at løse problemer.

5.1 Spørgsmål om ansøgerens erfaring

Q1: (C/C++) Hvad var begrænsningerne for dine tidligere projekter?

Hvorfor du skal spørge Q1: Kandidaten skal kunne dele sin erfaring med den pågældende branche. I indlejret programmering er det f.eks. vanskeligt at bruge dynamisk hukommelse, og i spil er det meget vigtigt at sikre, at alle beregninger er færdige, når et billede er blevet gengivet.

Q2: (C/C++) Hvilke systemer har du programmeret til?

Hvorfor du bør spørge Q2: På nogle måder er programmering til Embedded/Desktop og Linux/Windows/OSX vidt forskellige.

Q3: (C/C++) Kodede du i overensstemmelse med specifikke standarder?

Hvorfor du skal spørge Q3: Kandidaten kan fortælle dig, om han/hun har erfaring med MISRA osv.

5.2 Spørgsmål om ansøgerens viden og holdninger

Q1: (C++) Hvad er de vigtigste forskelle mellem C++ og C?

Hvorfor du bør spørge Q2: Dette spørgsmål giver kandidaten mulighed for at vise sin forståelse af sprogene, samt om han/hun betragter C++ som et lille supplement til C-sproget eller som et separat sprog med forskellige brugsmønstre.

Q2: (C) Hvad er pointer aritmetik?

Hvorfor du bør spørge Q2: Dette er mest for C. Spørgsmålet giver kandidaten mulighed for at udtrykke sin forståelse af den grundlæggende måde, hvorpå C håndterer hukommelse.

Q3: (C++)Hvad er pointeraritmetik?

Hvorfor du skal spørge Q3: Dette spørgsmål giver kandidaten mulighed for at give udtryk for sin forståelse af den grundlæggende måde, hvorpå C behandler hukommelse. Pas på: For C++ indebærer dette spørgsmål, at du skal bruge usikre og forældede mønstre i din kodebase.

Q4: (C++, begynderniveau) Hvad er forskellen mellem en klasse og et objekt?

Hvorfor du skal spørge Q4: At afgøre, om kandidaten forstår det grundlæggende i C++.

Q5: (C++) Hvad er et lambda-udtryk?

Hvorfor du bør spørge Q5: At afgøre, om kandidaten kender til de fremskridt, C++ har gjort siden C++03 (lambdaudtryk blev indført i C++11), og forstår dem.

Q6: (C/C++) Hvad er låse, hvilke problemer løser de, og hvad er de potentielle problemer med dem?

Hvorfor du skal spørge Q6: Dette vil vise kandidatens forståelse af låse, race conditions, deadlocks og livelocks.

Q7: (C/C++, ekspert) Hvad er flygtige, og hvordan hænger det sammen med spørgsmålet om låse og synkronisering?

Hvorfor du bør spørge Q7: Ansøgeren skal kunne fortælle, at flygtige må kun bruges til at få adgang til hardware og ikke til synkronisering.

Q8: (C++) Hvordan kan du oprette et dynamisk array?

Hvorfor du bør spørge Q8: Dette vil vise, om kandidaten vil anvende en god fremgangsmåde, som f.eks. std::vektor, eller den forældede og usikre ny.

Q9: (C++) Hvad er RAII? Har andre sprog det?

Hvorfor du bør spørge Q9: Dette vil vise, om kandidaten kender dette grundlæggende C++-idiom, og om han/hun forstår, hvad det betyder. Bonuspoint for at beskrive lignende valgfrie funktioner i andre sprog, som f.eks. med() i Python eller ved hjælp af i C#.

Q10: (C++) Kan man kaste fra en destruktor?

Hvorfor du bør spørge Q10: Kandidaten vil kunne gå i detaljer her. Kernen i det hele er: Det kan man godt, men det er en dårlig praksis, og det er deaktiveret som standard siden C++11, da destruktorer så implicit er nothrow.

Q11: (C++) Kan man arve en konstruktor?

Hvorfor du bør spørge Q11: Kandidaten kan svare på, at dette har været muligt siden C++11, den lille ændring i den måde, det fungerede på i C++14, og konsekvenserne af denne ændring.

Q12: (C++) Kan man have en virtuel konstruktør?

Hvorfor du bør spørge Q12: Det korte svar er nej, men kandidaten kan vise, at han/hun tænker hurtigt ved at nævne fabrikken og prototypemønstrene.

Q13: (C++) Hvad er en grænseflade?

Hvorfor du bør spørge Q13: Dette er lidt af et trickspørgsmål, da C++ ikke har grænseflader. Det har dog abstrakte klasser, og det er meningen, at kandidaten skal tale om dem.

Q14: (C++, ekspert) Kan man have en implementering af en ren virtuel funktion?

Hvorfor du bør spørge Q14: Svaret er ja, men brugervenligheden er begrænset.

Q15: (C++, ekspert) Kan man have en virtuel skabelonfunktion og hvorfor?

Hvorfor du bør spørge Q15: Kandidaten skal være i stand til at vise sin forståelse af forskellen mellem kompileringstid og køretid samt implementeringsdetaljer som f.eks. vtables.

Q16: (C++, ekspert) Hvordan vil du implementere std::is_same?

Hvorfor du bør spørge Q16: Kandidaten vil kunne vise sin viden om metaprogrammering ved at implementere dette trivielle eksempel.

Q17: (C/C++) Hvad er din foretrukne ændring (eller en række ændringer) i Cnn/C++nn?

Hvorfor du bør spørge Q17: At vise, om kandidaten følger med i ændringerne i sproget/sprogene, og om han/hun er opmærksom på lidt forskellige kodningsidiomer i forskellige versioner af sproget.

Q18: (C++) Hvad er forskellene mellem C++98 og C++11

Hvorfor du skal spørge Q18: C++11 var et stort skift i C++-sproget, dets paradigmer og mønstre. Kandidaten skal være i stand til at vise sin viden om denne store ændring.

Q19: (C/C++) Hvordan vil du opdage og rette en fejl i forbindelse med hukommelseskorruption?

Hvorfor du skal spørge Q19: At vise tankeprocessen, viden om og værktøjer, der er nyttige i en sådan bestræbelse.

Q20: (C/C++) Har du erfaring med at bruge brugerdefinerede allokatorer?

Hvorfor du bør spørge Q20: Kandidaten vil kunne dele sin erfaring med brugerdefinerede allokatorer.

Q21: (C/C++) Hvis du har ramme/bibliotek X i dit CV, skal du beskrive din erfaring med det. Var det et godt valg at bruge det? Er der et alternativ, som du havde foretrukket, eller som du ville foretrække nu?

Hvorfor du bør spørge Q21: Dette er et åbent spørgsmål, der giver rekrutteringsmedarbejderen mulighed for at vide, om kandidaten har et bredt overblik over områderne, kender alternativerne og forstår de kompromiser, der skal indgås ved at vælge den ene eller den anden løsning.

Q22: (C/C++) Hvilket er dit foretrukne build-system og hvorfor? Hvordan er det i forhold til konkurrenterne?

Hvorfor du bør spørge Q22: Dette vil vise ansøgerens viden om build-systemer.

5.3 Adfærdsmæssige spørgsmål du bør spørge for at forstå, hvordan kandidaten har handlet tidligere

Q1: Hvad er din største succeshistorie inden for programmering? Hvorfor skete det? Hvordan kan du gentage den?

Hvorfor du skal spørge Q1: Dette spørgsmål vil give kandidaten mulighed for at præsentere en succeshistorie og vil vise rekrutteringsmedarbejderen, om kandidaten er mere interesseret i at løse problemet eller få ros.

Q2: Hvad var din største fejl i programmeringen? Hvorfor skete det? Hvordan kan du undgå at gentage det i fremtiden?

Hvorfor du bør spørge Q2: Dette spørgsmål giver kandidaten mulighed for at præsentere en potentielt bekymrende historie og viser rekrutteringsmedarbejderen, om kandidaten er åben om den. Det vil desuden vise, om de er mere interesserede i at løse problemet eller i at skyde skylden fra sig.

Q3: (for ansøgere på mere seniorniveau) Kunne du tænke dig at være mentor for en juniorudvikler? Hvorfor? Hvordan ville du gøre det? Har du nogen erfaring med at være mentor for andre mennesker?

Hvorfor du skal spørge Q3: Dette vil give rekrutteringsmedarbejderen mulighed for at vurdere kandidatens interesse for og de nødvendige bløde færdigheder, der kræves for at dele viden.

Teknisk screening af C og C++-udviklerfærdigheder6. Teknisk screening af C eller C++-udviklerens færdigheder ved hjælp af en online kodningstest

Det, du skal være helt klar over med C og C++ udviklere, er, at det er vigtigt, at de har ulastelige kodningsevner. C giver ikke mulighed for nogen fejlmargin, og C++ giver ikke mulighed for meget mere. En CV-screening og en telefonscreening kan helt sikkert hjælpe dig med at frasortere nogle af dine kandidater. Når det er sagt, er det sidste, du ønsker at gøre, at invitere en kandidat til en teknisk samtale for så at opdage, at vedkommende aldrig har haft de kodningsevner, som du har brug for hele tiden.

6.1 Hvilken C eller C++ online programmeringstest skal du vælge?

Når du leder efter den rigtige C eller C++ online programmeringstest skal du sikre dig, at de opfylder følgende kriterier.

  • De afspejler det reelle arbejde, der udføres
  • De tager ikke for meget af kandidaternes tid, højst en til to timer.
  • De kan sendes automatisk og kan tages med overalt
  • De går ud over at kontrollere, om løsningen fungerer, og kontrollerer også kodens kvalitet og hvor godt den fungerer i edge cases.
  • De er så tæt på det naturlige programmeringsmiljø som muligt og giver kandidaten adgang til de ressourcer, som han/hun normalt ville have adgang til på arbejdspladsen.
  • De lader kandidaten bruge alle de biblioteker, frameworks og andre værktøjer, som de normalt ville bruge
  • De er på et passende niveau, der passer til ansøgerens evner

7. DevSkiller klar til brug online C og C++ kodevurderingstests for udviklere

DevSkiller-kodningstests bruger vores RealLifeTestingTM metodologi, der afspejler det faktiske kodningsmiljø, som din kandidat arbejder i. I stedet for at bruge uklare algoritmer kræver DevSkiller-testene, at kandidaterne skal opbygge applikationer eller funktioner. De bedømmes helt automatisk og kan tages hvor som helst i verden. Samtidig har kandidaten adgang til alle de ressourcer, som de normalt ville bruge, herunder biblioteker, frameworks, StackOverflow og endda Google.

Virksomheder bruger DevSkiller til at teste kandidater ved hjælp af deres egen kodebase fra et hvilket som helst sted i verden. For at gøre det nemt tilbyder DevSkiller også en række færdige C og C++ kodetests som f.eks. dem her:

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