Screen SQL-udvikler Nøglekompetencer Krav

Udgivet: Sidst opdateret:
SQL: spørgsmål til interview med softwareingeniør

Du ønsker at ansætte en SQL-udvikler og starte din it-rekrutteringskampagne. Du modtager mange CV'er og følgebreve - nu er det tid til at begynde screeningsprocessen. Når du gennemgår ansøgninger og taler i telefon med kandidater, begynder du at spekulere på, om en bestemt SQL-programmør er god nok til at blive en del af dit it-team, og om vedkommende er værd at invitere til et teknisk interview på stedet. På den ene side ønsker du ikke at afvise en SQL-udvikler med et potentiale, som kan være værdifuldt for din virksomhed. På den anden side ønsker du ikke at invitere en svag kandidat til en samtale med dit it-team og høre dem klage over, at kandidatens programmeringsfærdigheder er dårlige, og at de vidste det efter 5 minutters snak.

Derfor er det så vigtigt at planlægge din screeningsproces af SQL-programmeringskompetencer og vælge metoder, der kan hjælpe it-rekrutteringsmedarbejdere med at gøre det så præcist som muligt. Så vi tænkte, at vi vil give dig en hånd med. Nedenfor finder du alle de afgørende oplysninger om, hvordan du hurtigt og effektivt screener kandidater. Lad os begynde.

1. Hvad er SQL?

SQL er det mest populære 4GL (fjerde generations programmeringssprog), hvilket betyder, at programmører kun angiver, hvordan resultatet ser ud, og ikke hvordan resultatet skal beregnes af databasen. Historisk set har dette deklarative programmeringsparadigme været en vigtig funktion for ad hoc-forespørgsler, der er udført af menneskelige brugere direkte med SQL (snarere end med en brugergrænseflade). I moderne tider er SQL også indlejret i andre, mere generelle programmeringssprog som Java med henblik på at få adgang til data fra centrale databaser.

2. Hvad er vigtigt for IT-rekrutteringsmedarbejdere at vide om SQL?

Der er visse tips, som kan være værdifulde for it-ansøgere, når det gælder SQL.

Hvilke færdigheder skal en SQL-udvikler have? Det deklarative programmeringsparadigme er meget forskelligt fra objektorientering, procedureprogrammering eller endog funktionel programmering. Det kræver en særlig tankegang og erfaring for en udvikler at blive SQL-ekspert. Mens grundlæggende opgaver kan gennemføres meget let af alle (også af ikke-programmører, f.eks. forretningsanalytikere, kravteknikere, projektledere osv.), er kompleks SQL ret svært at udføre korrekt.

Det er disse ting om SQL, som du bør huske på:

  • Det er meget vigtigt for udviklere, der ofte arbejder med SQL, at have en grundig baggrund i (eller i det mindste en vis intuition om) mængdelære. Hvis en sådan baggrund ikke er til stede, har udviklerne en tendens til at hente individuelle dataelementer et for et og behandle dem i klienten ved hjælp af et alment sprog som Java i stedet for at udføre bulkoperationer på hele datasæt direkte i databasen. Dette har drastiske konsekvenser for ydeevnen.
  • De fleste universiteter går desværre ikke længere end til relationel algebra og nogle grundlæggende SQL-92-funktioner. SQL har udviklet sig meget i løbet af de seneste årtier, både i SQL-standardformen og i leverandørspecifikke dialekter. Der findes en række funktioner som vinduesfunktioner, Common Table Expressions (CTE) og meget mere, som hjælper udviklere med at køre komplekse rapporter relativt nemt. Typisk er viden om vinduesfunktioner og CTE med til at skelne mellem SQL-begyndere og avancerede SQL-udviklere. Dette er vigtigt i ETL-, rapporterings-, BI- og analysebrugstilfælde.
  • Måske 90% af alle SQL-præstationsrelaterede problemer kan løses med korrekt indeksering. Det er derfor vigtigt at kunne identificere situationer, hvor et indeks vil være gavnligt (eller i sjældne tilfælde skadeligt). De andre 10% arbejder normalt for DBA- og driftsteams og er ofte uden for udviklernes rækkevidde, medmindre de arbejder i specialiserede opsætninger.
  • I teorien vil en deklarativ SQL-anvisning blive optimeret så meget som muligt af databasen. I praksis har mange databaser stadig brug for hjælp fra SQL-udvikleren. Mange SQL-angivelser er formelt set ækvivalente, men nogle vil give bedre eksekveringsplaner end andre. Disse ting er forskellige fra database til database. I daglige SQL-jobs er det normalt tilstrækkeligt, hvis udviklerne kender til udførelsesplaner og til, at SQL skal tunes. De nødvendige færdigheder til den pågældende database kan stadig erhverves på jobbet. I mere specifikke situationer (Big Data, høj skalerbarhed) bør udvikleren medbringe tuningviden om den pågældende database, der er i brug.
  • SQL føles "mystisk" for "moderne" udviklere. Det skyldes især sprogets syntaks, som stammer fra dengang, hvor COBOL og FORTRAN stadig var meget udbredt. Bortset fra syntaksen er der intet mystisk ved teknologien. Dette subjektive emne er med til at adskille udviklere, der er nysgerrige efter at finde det rigtige værktøj til opgaven, fra dem, der følger dogmer (og dermed sandsynligvis senere vil træffe forkerte valg). Især tekniske rekrutteringsfolk bør kunne skelne mellem udviklere, der ønsker at skjule SQL bag en ORM (det er dårligt), og dem, der forstår, at ORM'er kun løser en delmængde af datalagringsproblemer, mens SQL stadig er en vigtig teknologi. Alle ORM-leverandører er enige om denne skelnen, mens mange udviklere desværre foretrækker ikke at røre SQL.

3. Hvordan kan man kontrollere SQL-programmeringskompetencer i screeningsfasen?

IT-rekrutteringsfolk anvender forskellige screeningsmetoder, lige fra vurdering af SQL-programmeringsevner baseret på CV'et via video- eller telefoninterviews til online kodningstests.

Nedenfor finder du nogle nyttige og praktiske rekrutteringstips om, hvordan du kan kontrollere SQL-færdigheder ved hjælp af de enkelte metoder.

3.1. Teknisk screening af SQL-programmeringskompetencer på grundlag af CV

Hvordan skal du læse et resume som SQL-udvikler? Som it-rekrutteringsmedarbejder kan du finde nogle virkelig værdifulde oplysninger i det CV, du får fra en SQL-udvikler, men du skal vide, hvordan du skal læse det, og hvad du skal kigge efter. Dette vil gøre dig i stand til at tale det samme sprog med dine kandidater (eller i det mindste forstå det grundlæggende, som kandidaten taler om).

Derfor har vi udarbejdet denne grundlæggende SQL-glossar, som du bare skal kigge på.

SQL-ordliste for tekniske rekrutteringsfolk

Deklarativ programmering, 4GL SQL er et fundamentalt anderledes programmeringssprog (se også intro). At det følger det deklarative programmeringsparadigme er vigtigt for en rekrutteringsspecialist.
DDL Data Definition Language, den delmængde af SQL-sproget, der bruges til at definere databasen
DML Data Manipulation Language, den delmængde af SQL-sproget, der bruges til at manipulere dataene i databasen. De fleste forespørgsler er DML
Plan for udførelse Den algoritme, som optimeringsværktøjet har valgt for en given SQL-angivelse.
Optimiser Den motor, der oversætter en SQL-anvisning til en udførelsesplan. Selv simple udsagn har snesevis af mulige gyldige udførelsesplaner. En database kan have flere planer pr. udsagn.
Omkostningsbaseret optimering (CBO) De fleste moderne databaser leveres med en CBO, som træffer beslutninger baseret på statistik, histogrammer og heuristik om produktionsdata. Det er ret svært at slå en CBO's beslutning i en moderne, kommerciel database.
Regelbaseret optimering Ældre databaser implementerer simple regelmotorer for at træffe beslutninger om udførelsesplaner. Disse regler er ofte forkerte i virkelige situationer, og derfor skal forespørgsler i disse situationer justeres meget mere, f.eks. ved hjælp af hints.
Tilmeld dig En af de mest grundlæggende operationer i relationel algebra, der hjælper med at "sammenføje" / "forbinde" to databasetabeller, f.eks. bøger og forfattere, for at producere resultater.
PL/SQL, T-SQL, pgplsql osv. Det er proceduremæssige udvidelser af SQL-sproget, dvs. sprog til generelle formål, der integrerer SQL. Selv om disse færdigheder er meget nyttige i nogle projekter, er de ikke nødvendigvis en vigtig indikator for SQL-færdigheder.
Normalisering Praksis med at reducere redundans i en relationel database ved at adskille begrebsmæssigt forskellige data (f.eks. bøger, forfattere) i forskellige relationer (tabeller). Der findes flere forskellige niveauer af normalisering.
Relationel database (relationel model, relationel algebra osv.) SQL fungerer for det meste med relationelle databaser, men det kan også fungere på andre datalagringssystemer. Relationelle databaser implementerer den relationelle model
E.F. Codd Valgfri baggrundsviden: Codd var den største bidragyder til relationel algebra og meget mere.

Nu hvor du er bekendt med SQL-grundlaget, kan vi gå i detaljer. Hvis du ikke er en teknisk person, er det let at blive forvirret af alle de forskellige teknologinavne og forkortelser. Hvis kandidaten siger "sequel", betyder det så "ess-queue-el"? Eller er SQL noget, der svarer til MySQL? Bare bliv ved med at læse, så får du et svar.

De mest almindelige SQL-termer, der bruges i flæng:

  • Oplysning, kommando, forespørgsel
  • MSSQL, SQL Server (ikke at forveksle med MySQL)
  • Oracle (virksomheden), Oracle Database
  • Udtalen er enten "ess-queue-el" eller "sequel". I de seneste årtier har samfundet aldrig kunnet enes om nogen af de to udtaler.
  • Fælles tabeludtryk, faktorisering af underafspørgsler, WITH-klausul

Forholdet mellem de respektive versioner af SQL-teknologien:

  • SQL-92 er den første, bredt vedtagne standard (selv om der havde været standarder før)
  • SQL-1999 gjorde SQL "turing komplet", hvilket betyder, at ethvert program kan implementeres med almindelige tabeludtryk. Med enklere ord: Det gjorde SQL virkelig kraftfuldt.
  • SQL-2003 tilføjede vinduesfunktioner, som er yderst nyttige til analyser
  • Generelt udvikler SQL sig lidt langsommere og er mere bagudkompatibelt end andre økosystemer. Desuden kan leverandørspecifikke funktioner normalt være meget vigtige for specifikke projekter, der integreres tæt med SQL, men som ikke er omfattet af denne liste.

Vigtige SQL-færdigheder, som du skal kigge efter på et CV

  • Afstemning af SQL-præstationer
  • SQL-designfærdigheder
  • En forståelse af relationel teori
  • Færdigheder inden for SQL-refactoring
  • Erfaring med XSLT, funktionel programmering, NoSQL-teknologier
  • mængdelære
  • Viden om vinduesfunktioner og CTE

Hvis du kan se på et CV som SQL-udvikler, at vedkommende har et par års erfaring, skal du grave lidt dybere og kigge efter følgende ting i CV'et:

  • En af de mest værdifulde SQL-færdigheder er SQL-præstationsjustering, både fra et udviklerperspektiv (læsning af udførelsesplaner, vedligeholdelse af indekser osv.) og fra et DBA/operationsperspektiv (løsning af problemer med konkurrence, justering af lagring osv.). Sidstnævnte er lidt mere specifikt for operationer, men det kan stadig være et plus, hvis en SQL-udvikler skal arbejde tæt sammen med operationer.
  • SQL-designfærdigheder og et indgående kendskab til relationel teori er vigtigt, når nye projekter startes. Det er meget vigtigt at få designet databasen rigtigt i de tidlige faser, da det er meget svært at migrere dårligt designede databaser senere hen. I legacy-systemer kan de fleste udviklere blot følge de etablerede regler, hvor designfærdigheder er mindre afgørende (om end stadig nyttige).
  • SQL-refactoring-færdigheder kan vise sig at være ret nyttige i større teams, hvor SQL begynder at blive ret komplekst. I modsætning til Java-refactoring, som er ret let i dag (takket være IDE-værktøjer), er SQL-refactoring stadig meget svært, fordi SQL-koden er vanskelig at teste.

Hvad mere i CV'et kan være værdifuldt for at vurdere SQL-programmeringskompetencer?

Som it-rekrutteringsmedarbejder kan du også drage følgende konklusioner af et resume som SQL-udvikler:

  • SQL er en fremragende teknologi til statusløs, streaming databehandling. En udvikler, der har erfaring med en af disse teknologier, vil også være god til SQL:
    • XSLT
    • Funktionel programmering (Lisp, Clojure, Ocaml, Haskell, Scala)
    • Forskellige NoSQL-teknologier, herunder MongoDB, CouchBase, Neo4j og mange flere, som alle leveres med forespørgselssprog inspireret af SQL
  • De fleste SQL-jobs er ikke kun SQL-jobs, dvs. at udvikleren skal kunne arbejde både med generelle sprog (som Java, C# osv.) og SQL. Et godt tegn på, at en udvikler er i stand til dette, er at kigge efter interesse for og erfaring med mange forskellige programmeringssprog.

3.2. Teknisk screening af SQL-færdigheder under et telefon-/videointerview

Resumeet i sig selv er ikke nok til at drage pålidelige konklusioner om kandidatens SQL-programmeringsevner. Derfor gennemfører it-rekrutteringsfolk ofte et telefon- eller videointerview. Et sådant interview giver mulighed for at grave dybere ned i kandidatens færdigheder og erfaring. Ofte tjener et sådant teknisk telefon- eller videointerview som grundlag for at træffe en beslutning om, hvorvidt kandidaten skal inviteres til et teknisk interview på stedet med it-teamet eller ej. Det er derfor værd at vælge og stille de rigtige spørgsmål.

Spørgsmålene varierer naturligvis meget afhængigt af den stilling, du rekrutterer til, og de specifikke færdigheder, du ønsker at kontrollere. Nedenfor finder du nogle generelle spørgsmål til at finde ud af mere om kandidatens SQL-færdigheder.

1. SQL-interviewspørgsmål om udviklerens erfaring

  • Q1: Har du inden for de seneste 2 år haft kommerciel erfaring med de teknologier, der er anført i dit CV, inden for de seneste 2 år? Hvad var dit ansvarsområde? Hvad var din største præstation?
  • Hvorfor stille Q1: Ved at stille dette spørgsmål kan du finde ud af mere om kandidatens SQL up-to-date erfaring, ansvarsområder og resultater. På den måde lærer du din kandidat bedre at kende.

2. SQL-interviewspørgsmål om udviklerens beslutningstagning vedrørende SQL-teknologi

  • Spørgsmål 2: På hvilket stadium gik du ind i de seneste projekter? Var du involveret i valget af teknologi eller i projektets opbygning? Hvis ja, hvilken teknologi/det relationelle databaseadministrationssystem valgte eller anbefalede du til projektet, og hvorfor?
  • Hvorfor stille spørgsmål 2: Dette spørgsmål viser ikke kun, hvordan en kandidat træffer valg vedrørende teknologi, men også om han/hun blev inddraget i beslutningerne. Det er især vigtigt, hvis du leder efter en person med erfaring.

3. Adfærdsspørgsmål til SQL-udvikler

  • Q3: Tænk på en beslutning om et programmeringsprojekt, som du har truffet, og som var en fiasko. Hvorfor tror du, at det var en fejl? Hvorfor skete det? Kunne der gøres noget anderledes for at vende det til en succes? Hvilke skridt tog du for at forbedre situationen? Hvad lærte du af denne erfaring?
  • Hvorfor stille Q3: Den type spørgsmål vil hjælpe dig med at finde ud af, hvordan kandidaten opfatter sine beslutninger, drager konklusioner og lærer af sine tidligere erfaringer.

3.3. Teknisk screening af SQL-færdigheder med en online kodningstest

Online kodningstests kan være en god måde at screene SQL-færdigheder på. Nedenfor finder du oplysninger om, hvordan du kan bruge programmeringstests, og hvilke du skal vælge.

Online SQL-kodningstest - den primære eller supplerende metode til screening

Kodningsprøver kan bruges på to måder. Nogle virksomheder inviterer kandidater til programmeringstest, hvis de består screeningsprocessen, f.eks. når en it-rekrutteringsmedarbejder gennemgår deres CV eller interviewer dem over telefonen eller video. Det er dog mere almindeligt at invitere alle kandidater, der ansøger om visse SQL-programmeringsstillinger, til at tage en test. Dette giver dem et par fordele. IT-rekrutteringsmedarbejdere behøver ikke at bruge tid på alle ansøgninger, men kun på kandidater, der har potentiale til at passe til et job, hvad angår deres programmeringsfærdigheder. Desuden viser en kandidat, der tager en kodningsevaluering, et vist engagement og vilje til at deltage i jeres it-rekrutteringsproces. Det kan være et tegn på, at de er mere tilbøjelige til at ønske at finde et job.

SQL online kodningstest - hvilken skal du vælge?

For at kunne screene præcist skal kodningsprøverne være de rigtige.

Der findes nogle SQL-onlinetests på markedet, men ofte kontrollerer de kandidatens akademiske viden snarere end programmeringsfærdigheder og evner til at løse problemer i det virkelige liv. Det er det, der virkelig irriterer erfarne programmører, og det er derfor, de ikke bryder sig om den slags kodningsvurderinger. Hvis kodningsprøven verificerer boglig viden, kan de ikke vise deres færdigheder i praksis og bevise, at de er i stand til at løse reelle programmeringsudfordringer.

Derfor bør du vælge kodningstest med omhu i din it-ansættelsesproces. Nedenfor finder du mine 5 bedste egenskaber ved SQL-tests, som du bør kigge efter:

  1. SQL-kodningstests bør bestå af et par opgaver, ikke kun multiple-choice-tests, men først og fremmest programmeringsopgaver, hvis sværhedsgrad bør svare til de ansvarsområder, som kandidaterne vil få, hvis de får jobbet (testene bør ikke være baseret på algoritmiske opgaver, da du dermed ikke kan kontrollere, om en kandidat kan løse reelle kodningsopgaver).
  2. Der er ingen grund til at forbyde programmøren at bruge eksterne kilder, den bedste måde er at skabe et miljø, som det de har på arbejdet, så en åben eksamen er meget mere passende. Desuden bør kandidaten kunne bruge sin foretrukne IDE, ligesom han gør det til daglig.
  3. SQL-programmeringstests bør ikke kun kontrollere SQL-færdigheder, hvad angår teknologi generelt, men også viden, der er specifik for bestemte databasemotorer
  4. Kodningstesten kan også omfatte opgaver med udfordringer til gennemgang af kode for at teste SQL-færdigheder. Det giver meget præcise oplysninger om kandidatens erfaring, deres tilgang til kodekvalitet og effektiviteten i forbindelse med fejlfinding og finde fælder. En sådan vurdering bør være obligatorisk, når der ansættes senior SQL-udviklere.

4. DevSkiller klar til brug online test til vurdering af SQL-kodning

DevSkiller hjælper virksomheder i it-ansættelsesprocessen ved at give dem en infrastruktur, der giver dem mulighed for at teste kandidaternes programmeringsfærdigheder i et miljø, der efterligner den første arbejdsdag på arbejdspladsen. Vi giver virksomheder mulighed for at bruge deres egen kodebase, hele it-projekter ved hjælp af frameworks og biblioteker, til at teste programmører online. Vi har dog også nogle færdige SQL-kodningstests, som du kan bruge i din tekniske rekrutteringskampagne.

SQL
JUNIOR
Testede færdigheder
Varighed
25 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Logisk tænkning, Matematik, MySQL, SQL

Huller i koden

vurdering af viden om SQL

Opgave - Niveau: Let

SQL | MySQL | Frimærkekatalog | AVG Funktion - Vælg frimærker (navn og pris) med en pris, der er større end eller lig med den samlede gennemsnitspris.

SQL
JUNIOR
Testede færdigheder
Varighed
33 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Logisk tænkning, SQL, MySQL

Huller i koden

vurdering af viden om MySQL, SQL

Opgave - Niveau: Let

SQL | MySQL | Frimærkekatalog | A Self JOIN - Vælg frimærker (navn og placering), der befinder sig samme sted.

SQL
MIDDLE
Testede færdigheder
Varighed
53 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om SQL, PostgreSQL

Huller i koden

vurdering af viden om PostgreSQL, SQL

Opgave - Niveau: Medium

SQL | PostgreSQL | Music Store | Time function - Beregn varigheden af alle sange på hver cd og udskriv en liste.

SQL
JUNIOR
Testede færdigheder
Varighed
26 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Logisk tænkning, SQL

Huller i koden

vurdering af viden om SQL

Opgave - Niveau: Let

SQL | PostgreSQL | Hoteller - gennemsnitspriser - Forbered rapporten med de gennemsnitlige priser i byerne.

SQL
JUNIOR
Testede færdigheder
Varighed
27 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Logisk tænkning, SQL

Huller i koden

vurdering af viden om SQL

Opgave - Niveau: Let

SQL | PostgreSQL | Hotels - bookings - Forbered reservationslisten med antal dage, pris pr. dag og den samlede pris for opholdet.

SQL
SENIOR
Testede færdigheder
Varighed
52 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Logisk tænkning, SQL

Opgave - Niveau: svær

SQL | PostgreSQL | Hoteller - byer og de bedste hoteller - Forbered en liste over byer med datoen for den sidste reservation og et hovedbillede (photos[0]) af det mest populære (efter antal bookinger) hotel i denne by.

JUNIOR
Testede færdigheder
Varighed
69 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om DevOps, Terraform, AWS

Huller i koden

vurdering af viden om DevOps, Terraform, AWS

Programmeringsopgave - Niveau:

DevOps | Terraform, AWS | Opret EC2-instans ved hjælp af specifik AMI - Opret EC2-instansen ved hjælp af specifik AMI i et standard-VPC med SSH-adgang ved hjælp af Terraform og AWS-udbyderen.

Java
MIDDLE
Testede færdigheder
Varighed
57 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Java, Spring Boot

Huller i koden

vurdering af viden om PostgreSQL, SQL

Programmeringsopgave - Niveau: Medium

Java | Spring Boot | Items Retriever Microservice - Implementer en microservice til at hente varer fra indkøbssystemet.

SQL
MIDDLE
Testede færdigheder
Varighed
65 minutter max.
Evaluering
Automatisk
Testoversigt

Databaseopgave - Niveau: Medium

SQL | MSSQL | Finde nulls - Skriv en forespørgsel, der returnerer navnene på alle emner, der ikke er tilgængelige

Databaseopgave - Niveau: Medium

SQL | MSSQL | Finde datointervaller - Skriv en forespørgsel, der returnerer navnene på alle emner, der er tilføjet inden for de sidste 7 dage.

Databaseopgave - Niveau: Medium

SQL | MSSQL | Brug af aggregater - Skriv en forespørgsel, der returnerer navnene på alle emner i en given kategori

Databaseopgave - Niveau: Medium

SQL | MSSQL | Finde dubletter - Skriv en forespørgsel, der returnerer navnene på alle emner, der er dubleret

Python
SENIOR
Testede færdigheder
Varighed
82 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Store data, PySpark, Python

Huller i koden

vurdering af viden om SQL

Programmeringsopgave - Niveau: svær

Python | PySpark | Fleet management corporation - Registrerer hastighedsoverskridelser og verificerer korrektheden af en eksisterende forudsigelse.

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