Krav på nyckelkompetens för SQL-utvecklare på skärmen

Publicerad: Senast uppdaterad:
SQL: intervjufrågor för mjukvaruingenjörer

Du vill anställa en SQL-utvecklare och påbörja din IT-rekryteringskampanj. Du får många CV:n och ansökningsbrev - nu är det dags att börja sortera ut dem. När du tittar igenom ansökningarna och pratar i telefon med kandidaterna börjar du fundera på om en viss SQL-programmerare är tillräckligt bra för att bli en del av ditt IT-team och om de är värda att bjuda in till en teknisk intervju på plats. Å ena sidan vill du inte tacka nej till en SQL-utvecklare med potential som skulle kunna vara värdefull för ditt företag. Å andra sidan vill du inte bjuda in en svag kandidat till en intervju med ditt IT-team och höra dem klaga på att kandidatens programmeringsfärdigheter är dåliga och att de visste det efter fem minuters samtal.

Därför är det så viktigt att planera din screeningprocess för SQL-programmeringskunskaper och välja metoder som hjälper IT-rekryterare att göra det så korrekt som möjligt. Därför tänkte vi att vi ska ge dig en handledning. Nedan hittar du all viktig information om hur du snabbt och effektivt screenar kandidater. Låt oss börja.

1. Vad är SQL?

SQL är det mest populära 4GL-språket (Fourth Generation Programming Language), vilket innebär att programmerare endast anger hur resultatet ser ut, snarare än hur resultatet ska beräknas av databasen. Historiskt sett har detta deklarativa programmeringsparadigm varit en viktig funktion för ad hoc-förfrågningar som körs för dataintroduktion och som utförs av mänskliga användare direkt med SQL (snarare än med ett användargränssnitt). I modern tid är SQL också inbäddat i andra, mer allmänna programmeringsspråk som Java för att få tillgång till data från centrala databaser.

2. Vad är viktigt för IT-rekryterare att veta om SQL?

Det finns vissa tips som kan vara värdefulla för IT-rekryterare när det gäller SQL.

Vilka färdigheter krävs för en SQL-utvecklare? Det deklarativa programmeringsparadigmet skiljer sig mycket från objektorientering, procedurell programmering eller till och med funktionell programmering. Det krävs en speciell inställning och erfarenhet för att en utvecklare ska kunna bli en SQL-expert. Medan grundläggande uppgifter kan genomföras mycket lätt av alla (även av icke-programmerare, t.ex. affärsanalytiker, kravtekniker, projektledare osv.) är komplex SQL ganska svårt att göra rätt.

Detta är de saker om SQL som du bör tänka på:

  • Det är mycket viktigt för utvecklare som ofta arbetar med SQL att ha en grundlig bakgrund i (eller åtminstone en viss uppfattning om) mängdteori. Om en sådan bakgrund saknas tenderar utvecklarna att hämta enskilda dataelement ett efter ett och behandla dem i klienten med hjälp av ett allmängiltigt språk som Java, i stället för att utföra massoperationer på hela datamängder direkt i databasen. Detta får drastiska konsekvenser för prestandan.
  • De flesta universitet går tyvärr inte längre än till relationell algebra och några grundläggande SQL-92-funktioner. SQL har utvecklats mycket under de senaste decennierna, både i SQL-standardformen och i leverantörsspecifika dialekter. Det finns en mängd olika funktioner som fönsterfunktioner, Common Table Expressions (CTE) och mycket mer, som hjälper utvecklare att relativt enkelt köra komplexa rapporter. Typiskt sett hjälper kunskap om fönsterfunktioner och CTE till att skilja mellan SQL-begynnare och avancerade SQL-utvecklare. Detta är viktigt i ETL-, rapporterings-, BI- och analysanvändningsfall.
  • Kanske 90% av alla SQL-prestandarelaterade problem kan lösas med korrekt indexering. Det är därför viktigt att kunna identifiera situationer där ett index är till nytta (eller i sällsynta fall till skada). De övriga 10% arbetar vanligtvis för DBA- och driftsteam, och är ofta utanför räckvidden för utvecklare, såvida de inte arbetar i specialiserade konfigurationer.
  • I teorin optimeras ett deklarativt SQL-meddelande så mycket som möjligt av databasen. I praktiken behöver många databaser fortfarande hjälp från SQL-utvecklaren. Många SQL-utsagor är formellt sett likvärdiga, men vissa kommer att ge bättre exekveringsplaner än andra. Dessa saker skiljer sig från databas till databas. I vardagliga SQL-jobb räcker det oftast om utvecklarna känner till exekveringsplaner och att SQL behöver trimmas. De nödvändiga kunskaperna för den aktuella databasen kan fortfarande erhållas på jobbet. I mer specifika situationer (Big Data, hög skalbarhet) bör utvecklaren ha med sig tuningkunskap om just den databas som används.
  • SQL känns "mystiskt" för "moderna" utvecklare. Detta beror främst på språkets syntax, som härstammar från den tid då COBOL och FORTRAN fortfarande användes i stor utsträckning. Bortsett från syntaxen finns det inget hemlighetsfullt med tekniken. Detta subjektiva ämne bidrar till att skilja utvecklare som är nyfikna på att hitta rätt verktyg för jobbet från dem som följer dogmer (och därmed förmodligen kommer att göra fel val senare). I synnerhet bör tekniska rekryterare kunna skilja mellan utvecklare som vill gömma SQL bakom en ORM (det är dåligt) och de som förstår att ORM:er endast löser en delmängd av datalagringsproblemen, medan SQL fortfarande är en viktig teknik. Alla ORM-leverantörer är överens om denna distinktion, medan många utvecklare tyvärr föredrar att inte röra SQL.

3. Hur verifierar man SQL-programmeringskunskaper i screeningfasen?

IT-rekryterare använder sig av olika screeningmetoder, från att bedöma SQL-programmeringskunskaper utifrån CV:t via video- eller telefonintervjuer till kodningstester online.

Nedan hittar du några användbara och praktiska rekryteringstips om hur du kan verifiera SQL-kompetens med varje metod.

3.1. Teknisk screening av kunskaper i SQL-programmering på grundval av CV

Hur ska du läsa ett CV som SQL-utvecklare? Som IT-rekryterare kan du hitta mycket värdefull information i det CV du får från en SQL-utvecklare, men du måste veta hur du ska läsa det och vad du ska leta efter. På så sätt kan du tala samma språk med dina kandidater (eller åtminstone förstå grunderna som kandidaten talar om).

Det är därför vi har förberett denna grundläggande SQL-ordlista, ta en titt.

SQL-ordlista för tekniska rekryterare

Deklarativ programmering, 4GL SQL är ett helt annat programmeringsspråk (se även introduktion). Det faktum att det följer det deklarativa programmeringsparadigmet är viktigt för en rekryterare.
DDL Data Definition Language, den delmängd av SQL-språket som används för att definiera databasen.
DML Data Manipulation Language, en delmängd av SQL-språket som används för att manipulera data i databasen. De flesta frågor är DML
Plan för genomförande Den algoritm som optimeraren väljer för ett visst SQL-utdrag.
Optimiser Motorn som översätter ett SQL-meddelande till en exekveringsplan. Även enkla uttalanden har dussintals möjliga giltiga exekveringsplaner. En databas kan ha flera planer per instruktion.
Kostnadsbaserad optimering (CBO) De flesta moderna databaser levereras med en CBO, som fattar beslut baserat på statistik, histogram och heuristik om produktionsdata. Det är ganska svårt att överträffa de beslut som fattas av en CBO i en modern, kommersiell databas.
Regelbaserad optimering Äldre databaser använder enkla regelmotorer för att fatta beslut om exekveringsplaner. Dessa regler är ofta felaktiga i verkliga situationer, vilket är anledningen till att frågor i dessa situationer behöver anpassas mycket mer, t.ex. med hjälp av tips.
Gå med i En av de mest grundläggande operationerna i relationell algebra som hjälper till att "sammanfoga" / "ansluta" två databastabeller, till exempel böcker och författare för att producera resultat.
PL/SQL, T-SQL, pgplsql osv. Dessa är procedurella tillägg till SQL-språket, dvs. allmänna språk som integrerar SQL. Även om dessa färdigheter är mycket användbara i vissa projekt är de inte nödvändigtvis en viktig indikator för SQL-färdigheter.
Normalisering Metoden för att minska redundansen i en relationsdatabas genom att separera konceptuellt skilda data (t.ex. böcker, författare) i olika relationer (tabeller). Det finns flera olika nivåer av normalisering.
Relationella databaser (relationell modell, relationell algebra, etc.) SQL fungerar oftast med relationsdatabaser, men kan även användas i andra datalagringssystem. Relationella databaser tillämpar den relationella modellen
E.F. Codd Valfri bakgrundskunskap: Codd var den största bidragsgivaren till relationsalgebra och mycket mer.

Nu när du är bekant med SQL-grunderna kan vi gå in på fler detaljer. Om du inte är en teknisk person är det lätt att bli förvirrad av alla olika tekniknamn och förkortningar. Om kandidaten säger "sequel" betyder det då "ess-queue-el"? Eller är SQL något som liknar MySQL? Fortsätt bara att läsa så kommer du att få ett svar.

De vanligaste SQL-termerna som används synonymt:

  • Uttalande, kommando, fråga
  • MSSQL, SQL Server (inte att förväxla med MySQL)
  • Oracle (företaget), Oracle Database
  • Uttalet är antingen "ess-queue-el" eller "sequel". Under de senaste årtiondena har samhället aldrig kunnat enas om något av dessa uttal.
  • Gemensamma tabelluttryck, faktorisering av underfrågor, WITH-klausul

Förhållandet mellan olika versioner av SQL-tekniken:

  • SQL-92 är den första allmänt antagna standarden (även om det funnits standarder tidigare).
  • SQL-1999 gjorde SQL "turingkomplett", vilket innebär att alla program kan implementeras med vanliga tabelluttryck. Med enklare ord: Det gjorde SQL riktigt kraftfullt.
  • SQL-2003 lade till fönsterfunktioner, som är mycket användbara för analyser.
  • I allmänhet utvecklas SQL lite långsammare och är mer bakåtkompatibelt än andra ekosystem. Dessutom kan vanligtvis leverantörsspecifika funktioner vara mycket viktiga för specifika projekt som integreras nära med SQL, men som inte omfattas av den här förteckningen.

Viktiga SQL-kunskaper som du bör leta efter i ett CV

  • Injustering av SQL-prestanda
  • Kunskaper i SQL-design
  • Förståelse för relationell teori
  • Kunskaper om att ändra SQL
  • Erfarenhet av XSLT, funktionell programmering, NoSQL-teknik
  • Mängdteori
  • Kunskap om fönsterfunktioner och CTE

Om du ser i ett CV som SQL-utvecklare att de har några års erfarenhet ska du gräva lite djupare och leta efter följande saker i CV:t:

  • En av de mest värdefulla SQL-kunskaperna är att trimma SQL-prestanda, både ur ett utvecklarperspektiv (läsa exekveringsplaner, underhålla index etc.) och ur ett DBA-/operations-perspektiv (lösa problem med konkurrens, trimma lagring etc.). Det sistnämnda är lite mer specifikt för operationer, men det kan ändå vara ett plus om en SQL-utvecklare måste arbeta nära operationer.
  • Kunskaper i SQL-design och djupgående kunskaper om relationell teori är viktiga när nya projekt inleds. Det är mycket viktigt att få databasdesignen rätt i ett tidigt skede, eftersom det är mycket svårt att migrera dåligt designade databaser senare. I äldre system kan de flesta utvecklare helt enkelt följa de etablerade reglerna, där designkunskaper är mindre viktiga (även om de fortfarande är till hjälp).
  • Kunskaper i SQL-refaktorisering kan vara mycket användbara i större team där SQL börjar bli ganska komplex. Till skillnad från Java-refaktorisering som är ganska lätt numera (tack vare IDE-verktyg) är SQL-refaktorisering fortfarande mycket svårt eftersom SQL-koden är svår att testa.

Vad mer i CV:t kan vara värdefullt för att bedöma kunskaper i SQL-programmering?

Som IT-rekryterare kan du också dra följande slutsatser från ett CV som SQL-utvecklare:

  • SQL är en utmärkt teknik för statuslös, strömmande databehandling. En utvecklare som har erfarenhet av någon av dessa tekniker kommer också att vara bra på SQL:
    • XSLT
    • Funktionell programmering (Lisp, Clojure, Ocaml, Haskell, Scala)
    • Olika NoSQL-teknologier, inklusive MongoDB, CouchBase, Neo4j och många fler, som alla levereras med frågespråk inspirerade av SQL.
  • De flesta SQL-jobb är inte enbart SQL-jobb, dvs. utvecklaren måste kunna arbeta både med allmänna språk (som Java, C# osv.) och SQL. Ett bra tecken på att en utvecklare kan göra detta är att leta efter intresse och erfarenhet av många olika programmeringsspråk.

3.2. Teknisk screening av SQL-färdigheter under en telefon-/videointervju

Det räcker inte med ett CV i sig för att dra tillförlitliga slutsatser om kandidatens kunskaper i SQL-programmering. Därför genomför IT-rekryterare ofta en telefon- eller videointervju. En sådan intervju ger en möjlighet att gräva djupare i kandidatens färdigheter och erfarenheter. Ofta tjänar en sådan teknisk telefon- eller videointervju som underlag för att fatta ett beslut om huruvida kandidaten ska bjudas in till en teknisk intervju på plats med IT-teamet eller inte, så det är värt att välja och ställa rätt frågor.

Frågorna varierar naturligtvis mycket beroende på vilken tjänst du rekryterar till och vilka specifika färdigheter du vill kontrollera. Nedan hittar du några allmänna frågor för att ta reda på mer om kandidatens SQL-färdigheter.

1. SQL-intervjufråga om utvecklarens erfarenhet

  • Q1: Har du haft kommersiell erfarenhet av de tekniker som anges i ditt CV under de senaste två åren? Vilka ansvarsområden hade du? Vad var din största prestation?
  • Varför fråga Q1: Genom att ställa den här frågan kan du få reda på mer om kandidatens SQL-uppdaterade erfarenhet, ansvarsområden och prestationer. På så sätt lär du känna din kandidat bättre.

2. SQL-intervjufråga om utvecklarens beslutsfattande i fråga om SQL-teknik.

  • Q2: I vilket skede gick du med i de senaste projekten? Var du delaktig i valet av teknik eller i upplägget av projektet? Om ja, vilken teknik/ vilket system för hantering av relationsdatabaser valde du eller rekommenderade du för projektet och varför?
  • Varför ställa Q2: Denna fråga visar inte bara hur kandidaten gör val när det gäller teknik, utan också om kandidaten har varit delaktig i besluten. Särskilt viktigt om du söker någon med erfarenhet.

3. Beteendefrågor för SQL-utvecklare

  • Q3: Tänk på ett beslut om ett programmeringsprojekt som du fattade och som misslyckades. Varför tror du att det var ett misstag? Varför hände det? Kunde man ha gjort något annorlunda för att vända det till framgång? Vilka åtgärder vidtog du för att förbättra situationen? Vad lärde du dig av denna erfarenhet?
  • Varför fråga Q3: Den typen av fråga hjälper dig att ta reda på hur kandidaten uppfattar sina beslut, drar slutsatser och hur mycket han eller hon lär sig av sina tidigare erfarenheter.

3.3. Teknisk screening av SQL-färdigheter med ett kodningstest online.

Kodningstester online kan vara ett bra sätt att undersöka SQL-färdigheter. Nedan hittar du information om hur du kan använda programmeringstester och vilka du ska välja.

Online SQL-kodningstester - den primära eller kompletterande metoden för screening

Kodningstester kan användas på två sätt. Vissa företag bjuder in kandidater till programmeringstest om de klarar screeningprocessen, t.ex. när en IT-rekryterare går igenom deras CV eller intervjuar dem via telefon eller video. Det är dock vanligare att man bjuder in alla kandidater som söker vissa SQL-programmeringstjänster att göra ett test. Detta ger dem ett par fördelar. IT-rekryterare behöver inte lägga tid på alla ansökningar, utan endast på de kandidater som har potential att passa för ett jobb när det gäller deras programmeringsfärdigheter. Dessutom visar en kandidat som gör en kodningsbedömning ett visst engagemang och en viss vilja att delta i er IT-rekryteringsprocess. Det kan vara ett tecken på att de är mer benägna att vilja hitta ett jobb.

SQL-kodningstest online - vilken ska du välja?

För att kunna göra en korrekt screening måste kodningstesterna vara de rätta.

Det finns en del SQL-tester online på marknaden, men ofta verifierar de kandidatens akademiska kunskaper snarare än programmeringskunskaper och förmåga att lösa verkliga problem. Detta är vad som verkligen irriterar erfarna programmerare och det är därför de inte gillar den typen av kodningsbedömningar. Om kodningstestet verifierar bokliga kunskaper kan de inte visa sina färdigheter i handling och bevisa att de kan lösa verkliga programmeringsutmaningar.

Det är därför du bör välja kodningstester med omsorg i din IT-rekryteringsprocess. Nedan hittar du mina fem bästa egenskaper hos SQL-tester som du bör leta efter:

  1. SQL-kodningstesterna bör bestå av ett par uppgifter, inte bara flervalstester utan framför allt programmeringsuppgifter vars svårighetsgrad bör motsvara de ansvarsområden som kandidaterna kommer att ha om de får jobbet (testerna bör inte baseras på algoritmiska uppgifter, eftersom du då inte kan kontrollera om en kandidat kan lösa verkliga kodningsutmaningar).
  2. Det finns ingen mening med att förbjuda programmeraren att använda externa källor, det bästa sättet är att skapa en miljö som de har på jobbet, så ett öppet prov är mycket lämpligare. Dessutom bör kandidaten kunna använda den IDE som han eller hon föredrar, precis som han eller hon gör dagligen.
  3. Testerna för SQL-programmering bör verifiera inte bara SQL-färdigheter vad gäller teknik i allmänhet, utan även kunskaper som är specifika för vissa databaser.
  4. Kodningstestet kan också innehålla uppgifter med kodgranskningsutmaningar för att testa SQL-färdigheter. Det ger mycket korrekt information om kandidatens erfarenhet, deras inställning till kodkvalitet och effektiviteten när det gäller att felsöka och hitta fällor. En sådan bedömning bör vara obligatorisk vid rekrytering av seniora SQL-utvecklare.

4. DevSkiller redo att användas online-tester för bedömning av SQL-kodning

DevSkiller hjälper företag i IT-rekryteringsprocessen genom att förse dem med en infrastruktur som gör att de kan testa kandidaternas programmeringsfärdigheter i en miljö som efterliknar den första dagen på jobbet. Vi gör det möjligt för företag att använda sin egen kodbas, hela IT-projekt med hjälp av ramverk och bibliotek, för att testa programmerare online. Men vi har också några färdiga SQL-kodningstester som du kan använda i din tekniska rekryteringskampanj.

Node.JS
MIDDLE
Testade färdigheter
Varaktighet
87 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om JavaScript, Node.JS

Luckor i koden

bedömning av kunskaper om JavaScript, Node.JS, SQL

Programmeringsuppgift - Nivå:

Node.JS | Rest API | News backend service - Implement a news backend service created in Node.JS with Vanilla JS including writing authorization and Rest APIs.

SQL
JUNIOR
Testade färdigheter
Varaktighet
25 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Logiskt tänkande, Matematik, MySQL, SQL

Luckor i koden

bedömning av kunskaper om SQL

Uppgift - Nivå:

SQL | MySQL | Stämpelkatalog | AVG Funktion - Välj de stämplar (namn och pris) vars pris är större än eller lika med det totala genomsnittspriset.

SQL
JUNIOR
Testade färdigheter
Varaktighet
33 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Logiskt tänkande, SQL, MySQL

Luckor i koden

bedömning av kunskaper om MySQL, SQL

Uppgift - Nivå:

SQL | MySQL | Frimärkskatalog | A Self JOIN - Välj frimärken (namn och plats) som finns på samma plats.

SQL
MIDDLE
Testade färdigheter
Varaktighet
53 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om SQL, PostgreSQL

Luckor i koden

bedömning av kunskaper om PostgreSQL, SQL

Uppgift - Nivå:

SQL | PostgreSQL | Music Store | Time function - Beräkna varaktigheten för alla låtar på varje cd och ge ut en lista.

SQL
JUNIOR
Testade färdigheter
Varaktighet
26 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Logiskt tänkande, SQL

Luckor i koden

bedömning av kunskaper om SQL

Uppgift - Nivå:

SQL | PostgreSQL | Hotell - genomsnittliga priser - Förbered rapporten med de genomsnittliga priserna i städerna.

SQL
JUNIOR
Testade färdigheter
Varaktighet
27 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Logiskt tänkande, SQL

Luckor i koden

bedömning av kunskaper om SQL

Uppgift - Nivå:

SQL | PostgreSQL | Hotell - bokningar - Förbered bokningslistan med antal dagar, pris per dag och totalt pris för vistelsen.

SQL
SENIOR
Testade färdigheter
Varaktighet
52 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Logiskt tänkande, SQL

Uppgift - Nivå: Svår

SQL | PostgreSQL | Hotell - städer och de bästa hotellen - Förbered en lista över städer med datumet för den senaste bokningen och ett huvudfoto (photos[0]) av det mest populära (enligt antalet bokningar) hotellet i den här staden.

terraform
JUNIOR
Testade färdigheter
Varaktighet
69 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om DevOps, Terraform, AWS

Luckor i koden

bedömning av kunskaper om DevOps, Terraform, AWS

Programmeringsuppgift - Nivå:

DevOps | Terraform, AWS | Skapa EC2-instans med specifik AMI - Skapa EC2-instans med specifik AMI i en standard-VPC med SSH-åtkomst, med Terraform och AWS-provider.

Java
MIDDLE
Testade färdigheter
Varaktighet
57 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Java, Spring Boot

Luckor i koden

bedömning av kunskaper om PostgreSQL, SQL

Programmeringsuppgift - Nivå:

Java | Spring Boot | Mikrotjänst för att hämta artiklar - Implementera en mikrotjänst för att hämta artiklar från shopping-systemet.

SQL
MIDDLE
Testade färdigheter
Varaktighet
65 minuter max.
Utvärdering
Automatisk
Översikt över testet

Databasuppgift - Nivå: Medelhög

SQL | MSSQL | Hitta nollor - Skriv en fråga som returnerar namnen på alla objekt som inte är tillgängliga.

Databasuppgift - Nivå: Medelhög

SQL | MSSQL | Hitta datumintervall - Skriv en fråga som returnerar namnen på alla objekt som lagts till under de senaste 7 dagarna.

Databasuppgift - Nivå: Medelhög

SQL | MSSQL | Användning av aggregat - Skriv en fråga som returnerar namnen på alla objekt i en viss kategori.

Databasuppgift - Nivå: Medelhög

SQL | MSSQL | Hitta dubbletter - Skriv en fråga som returnerar namnen på alla objekt som är dubbletter.

Dela inlägg

Läs mer om rekrytering av tekniker

Prenumerera på vår Learning Hub för att få nyttiga insikter direkt i din inkorg.

Kontrollera och utveckla kodningsfärdigheter utan problem.

Se DevSkillers produkter i praktiken.

Säkerhetscertifieringar och efterlevnad. Vi ser till att dina data är säkra och skyddade.

DevSkillers logotyp TalentBoost logotyp TalentScore-logotyp