Test inför anställning som utvecklare

Permalänk
Avstängd

Test inför anställning som utvecklare

Jag håller på att byta jobb av diverse anledningar och på ett par av ställena fick jag göra tester för att de skulle bedöma min kompetens eller vad nu anledningen är. Jag tänkte jag kunde dela med mig av detta för att ge lite exempel på vilken typ av frågor man kan få.

Jag har också redan fått ett nytt jobb, och det var inte något där jag behövde göra något test, så det handlar inte om att jag vill ha hjälp med att klara testerna eller så. Jag har också skrivit om frågorna en del då de förstås var konfidentiella och jag tänker heller inte säga vilken arbetsgivare eller vilket jobb det var mer än att det handlade om att utveckla i .Net mot hårdvara.

Fråga 1. Ge exempel på ytterligare testfall för att testa en factorial-funktion (inte så svår direkt):

[Test] public static void TestaFaktorialer() { Assert.AreEqual(2*3*4, Factorial(4)) }

Fråga 2. Förklara kortfattat vad dessa två linq uttryck gör:

Directory.GetFiles(mapp, "*.jpg").OrderBy(o => int.Parse(string.IsNullOrEmpty(prefix) ? Path.GetFileNameWithoutExtension(o) : Path.GetFileNameWithoutExtension(o).Replace(prefix, string.Empty))).ToArray(); Enumerable.Range(0,512).Select(o => Math.Sin(frekvens * 2 * Math.Pi * o * samplingshagstighet)).ToArray();

Fråga 3. Det finns åtminstone ett mindre och ett större problem som har att göra med multitrådning i koden nedan. Beskriv problemen och varför de är ett problem.

public class ValueContainer { private readonly object m_Synkning = new object(); public event EventHandler VärdeÄndrat; private int m_Värde; public int Value { get { lock (m_Synkning) { return m_Värde; } } set { lock (m_Synkning) { m_Värde = value if (VärdeÄndrat != null) VärdeÄndrat(this. EventArgs.Empty); } } } }

Den sista här var svår för mig. Jag har aldrig jobbat med multithreading så jag snabbläste några tutorials/genomgångar och tyckte ändå jag greppade det ganska bra men det hjälpte inte riktigt med denna fråga. Jag var dock helt öppen redan innan att jag inte hade någon erfarenhet av multitrådning så det var väl inte mer än väntat. Sen tror jag inte mitt resultat på detta prov gjorde att jag inte fick jobbet utan det handlade mer om att min erfarenhet mer var från web och databaser främst och det var inte riktigt vad de var ute efter vad jag förstår.

Meningen var väl heller inte att jag skulle genomföra detta test och bli bedömd utifrån resultatet utan att vi skulle diskutera frågorna på intervjun med utvecklarteamet jag skulle bli en del av och kanske svara på liknande frågor med pseudokod på en whiteboard eller så.

På ett annat företag fick jag sätta mig med en dator och skulle skapa ett nytt webprojekt som skulle presentera en vy med ett antal funktioner. Bootstrap och dependency injection skulle användas. För mig var det en ny situation, att göra det medan någon (kanske) höll koll på vad jag gjorde hela tiden och så så nervositeten tog överhanden lite och det tog ett tag innan jag lugnade ner mig tillräckligt för att greppa deras konstiga data och hela MVC-biten som jag inte hade någon erfarenhet av. Följden var att jag knappt han klart på tiden jag hade på mig.

Permalänk
Medlem

Kan förstå sådana här tester om företaget är på jakt efter väldigt specifika skillsets eller om dom bara används som diskussions underlag, används dom av annan anledning för att testa vad man kan känns det väldigt ignorant av företaget. En duktig utvecklare kan snabbt läsa in sig på nya tekniker och språk, och inser att ingen kan allt, och ska inte förväntas göra det iheller.
Jag har tagit några tekniska intervjuer och har alltid frågat om syftet med dom och i de flesta fall har det rört sig om att ha någon form av material att resonera runt för att se hur man tänker runt att bygga kod och ens inställning till det.
Vid ett tillfälle var det en ren kompetenscheck, jag gjorde testet men la ingen större energi i det utan gick vidare till andra företag. Den tekniska intervjun jag gjorde för mitt nuvarande var att skriva en funktion som skulle bearbeta olika typer av data. Det tog ingen lång stund att skriva men vi satt och diskuterade koden i en halvtimme. Det kändes genuint och det tyckte nog dom också för det gick som det gick 😊

Skickades från m.sweclockers.com

Visa signatur

Oldschool [å:ldsku:l] adj. Användandet av datorprodukter som är äldre än 3 månader.

Permalänk
Hedersmedlem

De uppgifter jag fått under intervjuer, både från stora och små företag, har haft "Var sitter den dolda kameran?"-känsla. Jag har fått lösa uppgifter som jag enligt CV, anställningar, diskussioner, etc., uppenbart bör klara med båda händerna bakom ryggen, och därmed känts som slöseri med tid för alla parter. Det behöver inte betyda att de inte skulle kunna fungera som en konstruktiv diskussionsstartare, men jag har inte fått känslan av att de placerat personer med djupare teknisk insikt på andra sidan bordet.

Den mest intressanta diskussion jag minns var när jag i förbigående noterade koden vi skulle analysera uppenbarligen var skriven för Python 2 och inte 3 pga de kompileringsfel den skulle ge i Python 3, där personen som höll i testet inte var medveten om någon skillnad mellan dessa versioner. Det blev en trevlig längre diskussion, men det var nog främst jag som lämnade med frågetecken om nivån på företaget. Alla måste inte vara insatta i Python (även om företaget i fråga sökte C++/Python-kompetens), men det hade lett till mer djup i diskussionen om man satt någon med djupare insikt om övningsproblemet i rummet. Jag minns också att jag kände mig ställd när personen hävdade att ingen annan påpekat detta trots att de använt samma problem i flera år.

Ett annat företag hade ett flervalsquiz med ~30 frågor om syntax och liknande som jag skulle fylla i innan första intervjun, som jag tänkte mig kanske skulle vara någon sorts diskussionsunderlag, men enda återkopplingen jag fick var att det hade gått "bra", så det var bara en första grov utsortering (vilket mitt CV borde räckt till). Jag fick prata med en HR-representant utan ingenjörsbakgrund och fick återkoppling någon månad senare om att de ville att jag skulle göra ytterligare ett liknande prov (fast med svårare frågor, antar jag) inför en andra intervju. Då var det dock inte längre av intresse för mig att byta jobb, samt att min första bild inte var speciellt positiv just på grund av en sorts upplevd respektlöshet mot min tid samt en övertro på dessa test, så det var min sista kontakt med det företaget.

Jag har också, med en färsk civilingenjörsexamen i en matematisk tung inriktning från en välrenommerad och känd skola på mitt CV, under HR-samtalet fått frågor som "Fortsätt den här talföljden: 1, 4, 9, 16, 25, …" och "0, 1, 1, 2, 3, 5, 8, 13, 21, …" samt triviala "Vilken figur följer?"-frågor, vilket främst fått mig att fundera på utskjutningsknappen. Återigen har det i dessa fall inte varit frågor med någon uppföljning för diskussion, utan när man gett rätt svar har intervjuaren bockat i en ruta och gått vidare.

De erbjudanden jag seriöst har funderat på att acceptera, eller faktiskt accepterat, har inte innefattat några liknande prov (det kan finnas något samband här ). Jag skulle kunna tänka mig att det vore intressant att diskutera programmeringsproblem under en intervju likt @kundun nämner i sin avslutning, men i den formen jag stött på det har det alltid känts dåligt implementerat — lite cargokult från när Google började dammsuga upp kompetenta ingenjörer i dotcom-eran.

Jag minns att jag var negativ när min grupp skulle rekrytera och det föreslogs att låta alla sökande visa baskunskaper genom att kunna nå en tröskelnivå av poäng på sidor som Project Euler, CodeWars, Hackerrank, etc., innan intervjun. Det skulle i mina ögon visa så lite (och vara extremt lätt att fejka) gällande hur väl en person faktiskt fungerar i ett sammanhang där de ska skriva produktionsvärdig kod, samtidigt som det skulle ta tid från den sökande. Det är i mina ögon klart bättre om de lägger sin privata tid på att skriva egna projekt. En sökande som kan visa upp eget engagemang och egna initiativ står i mina ögon mil högre i kurs än någon som har höga poäng på någon sida med fiktiva småproblem — personligen skulle jag se lika mycket värde ifall någon kunde visa upp att de är vassa på att lösa korsord eller är bra i "På spåret" .

Kan också nämna att jag vid en viss anställning först skrivit på alla papper och fått all formalia klar (trodde jag) där jag efteråt fick höra "Vi har ett kontrakt med en extern firma som egentligen ska sköta våra rekryteringar, och de har detta obligatoriska moment", och därmed fick fylla i ett så kallat Matrigma-test ("Vilken figur följer?"-frågor) när jag redan var anställd. Väl spenderad arbetstid (och det lyfter också den intressanta frågan: vad hade hänt om jag "misslyckats"?).

Med det sagt så har jag också hamnat i projekt med personer som anställts till (stora, välrenommerade) firmor, med fina CV:n och till synes relevant arbetslivserfarenhet, som varit helt nollade när det väl kommit till kritan. Dessa erfarenheter gör att jag trots allt kan se en poäng i att ha någon sorts tröskel, men jag tycker den är mycket bättre implementerad av att inkludera närvaro av någon faktisk praktiserande ingenjör under intervjun. Kostnaden för detta måste gå att räkna hem för ett företag, både för att undvika att anställa någon med opassande kunskapsgrund, men i dagens klimat framför allt för att inte missa rätt kompetens. Inget ont om HR-avdelningar, men enligt min erfarenhet har de ingen möjlighet att bedöma användbar kompetens inom ingenjörsämnen på egen hand — inte ens om de har ett färdigkomponerat flervalstest framför sig.

Jag är övertygad om att vi missar stora mängder användbar kompetens pga stolpiga företagspolicys angående rekryteringar. Det är också därför jag knyter näven i fickan en aning när jag ser rubriker om att Sverige saknar x antal tusen programmerare (60 000 var senaste siffran jag såg) — om det handlar om något annat än ett försök till lönedumpning så kan företagen börja med att lägga mer resurser på rekryterings- och inte minst upplärningsprocesser, för nog fasen finns det kompetens i det här landet, även om den ofta fastnar på konstiga platser. Jag säger inte att det vore trivialt, men det är lättare än att trolla fram 60 000 programmerare med 5 års relevant arbetslivserfarenhet ur tomma intet.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

En fråga, skriver du kod på svenska?

Bra delning!

Permalänk
Medlem
Permalänk
Hedersmedlem

Vi använder en programmeringsuppgift i vår rekrytering. Det är mer av typen att man ska skriva ett faktiskt program än typen som TS listat. Syftet är dels att se hur kandidaten löser uppgifter, men även att kunna diskutera kod. Visa att man kan förklara varför man har gjort som man har gjort samt diskutera saker som man inte hann med osv. osv. Väldigt utslagsgivande.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Proffsmoddare

Påminner mycket om rekrytering inom spelindustrin. Problemet är att de riktigt duktiga artisterna aldrig har tiden att göra banala uppgifter vid sidan av så det slutar med att de istället söker sig nån annanstans.

De har dock börjat lära sig att faktiskt kolla på folks CV:n istället.

Visa signatur

"Computer games don't affect kids, I mean if PacMan affected us as kids, we'd all be running around in darkened rooms, munching pills and listening to repetitive music." - Kristian Wilson, Nintendo 1989

Permalänk
Avstängd
Skrivet av Can0n:

En fråga, skriver du kod på svenska?

Bra delning!

Nej, inte normalt. Jag funderade på att göra det, eller i alla fall kommentera på svenska, på mitt förra jobb då de ofta var inne på att outsourca våra jobb och det hade ju varit roligt för en indier/litauer/kines att försöka klura ut det.

Permalänk
Tangentbordskonnässör
Skrivet av giplet:

Vi använder en programmeringsuppgift i vår rekrytering. Det är mer av typen att man ska skriva ett faktiskt program än typen som TS listat. Syftet är dels att se hur kandidaten löser uppgifter, men även att kunna diskutera kod. Visa att man kan förklara varför man har gjort som man har gjort samt diskutera saker som man inte hann med osv. osv. Väldigt utslagsgivande.

Även vi har löst det på detta vis. Tycker det är OK, förutsatt att man faktiskt har tid att sätta sig och skriva ett program på fritiden.
Jag personligen vet inte om jag skulle hinna med det med tanke på hur min fritid ser ut just nu och då lär det finnas potentiella nya medarbetare som även de inte har tid att skriva ett program på fritiden trots att de är grymma kodare.

Permalänk
Hedersmedlem
Skrivet av huttala:

Även vi har löst det på detta vis. Tycker det är OK, förutsatt att man faktiskt har tid att sätta sig och skriva ett program på fritiden.
Jag personligen vet inte om jag skulle hinna med det med tanke på hur min fritid ser ut just nu och då lär det finnas potentiella nya medarbetare som även de inte har tid att skriva ett program på fritiden trots att de är grymma kodare.

Jag förstår problemet, men samtidigt så kan jag tycka att även det är utslagsgivande. Vill man ha jobbet tar man sig lite tid. Vår uppgift är utformad så att man kan lägga allt ifrån 8h - 80h. Det är inte viktigt hur mycket tid man lägger, det viktiga är att man skriver lite kod som vi sedan kan diskutera. Det är också viktigt att den tid man säger att man lagt lirar med resultatet. Det säger en del om hur effektiv man är.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Avstängd

Jag förstår ju poängen med testerna, vi har haft en del som kommit direkt från skolan och förstås kan allt men som det sen visar sig inte kan någonting liksom. Men samtidigt får man ju förhålla sig till hur arbetsmarknaden ser ut och för utvecklare är det verkligen arbetstagarens marknad nu liksom.

Jag håller på att byta jobb och har inte behövt söka själv utan det ringer rekryterare eller headhunters hela tiden så mycket att jag fick ta bort mitt telefonnummer från LinkedIn. Om ett företag kräver att jag ska lägga en hel dag på att göra ett test så är det väldigt negativt i mina ögon. Jag är erfaren och de har fått referenser osv. så lita på att jag kan det jag säger att jag kan liksom. Inte så att det nödvändigtvis är avgörande så att jag skulle tacka nej till drömjobbet på grund av det men de flesta jobb är ju inte drömjobb liksom och då borde de tänka mer på att vara en attraktiv arbetsgivare på de områden där de kan påverka, som arbetsmiljö och anställningsprocess.

Jag tackade exempelvis nej till ett jobb nyligen mestadels för att arbetsplatsen inte var så trevlig, med små skrivbord och mycket folk på liten yta. Sen var det ett ganska stort företag så det kändes ganska opersonligt alltihop, men det var arbetsplatsen som avgjorde det. Hade de krävt ett test så hade jag inte gått på andraintervjun alls liksom.

Permalänk
Hedersmedlem
Skrivet av snajk:

Jag förstår ju poängen med testerna, vi har haft en del som kommit direkt från skolan och förstås kan allt men som det sen visar sig inte kan någonting liksom. Men samtidigt får man ju förhålla sig till hur arbetsmarknaden ser ut och för utvecklare är det verkligen arbetstagarens marknad nu liksom.

Jag håller på att byta jobb och har inte behövt söka själv utan det ringer rekryterare eller headhunters hela tiden så mycket att jag fick ta bort mitt telefonnummer från LinkedIn. Om ett företag kräver att jag ska lägga en hel dag på att göra ett test så är det väldigt negativt i mina ögon. Jag är erfaren och de har fått referenser osv. så lita på att jag kan det jag säger att jag kan liksom. Inte så att det nödvändigtvis är avgörande så att jag skulle tacka nej till drömjobbet på grund av det men de flesta jobb är ju inte drömjobb liksom och då borde de tänka mer på att vara en attraktiv arbetsgivare på de områden där de kan påverka, som arbetsmiljö och anställningsprocess.

Jag tackade exempelvis nej till ett jobb nyligen mestadels för att arbetsplatsen inte var så trevlig, med små skrivbord och mycket folk på liten yta. Sen var det ett ganska stort företag så det kändes ganska opersonligt alltihop, men det var arbetsplatsen som avgjorde det. Hade de krävt ett test så hade jag inte gått på andraintervjun alls liksom.

Av alla jag har skickat vårt test till, och det är kanske 20 pers, så är det bara en som inte gjort uppgiften. Jag vet inte om det var för att den tog för lång tid, det framgick inte. Men jag håller med dig.

Är inte arbetsgivare attraktiv och känns rätt så lägger man så klart inte ner jobbet. Och jag tänker att det är en del av det hela också, att sålla bort de där som inte är säkra på att det är just detta jobbet de vill ha.

Kan också säga att anledningen till att vi har en uppgift som man förbereder hemma är att vi inte vill ha som vissa företag som slänger ur sig en uppgift på intervjun och vill att den sökande ska haspla ur sig något på stående fot. Ett sådant test är ju helt skilt från hur man kommer att arbeta.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Avstängd
Skrivet av giplet:

Av alla jag har skickat vårt test till, och det är kanske 20 pers, så är det bara en som inte gjort uppgiften. Jag vet inte om det var för att den tog för lång tid, det framgick inte. Men jag håller med dig.

Är inte arbetsgivare attraktiv och känns rätt så lägger man så klart inte ner jobbet. Och jag tänker att det är en del av det hela också, att sålla bort de där som inte är säkra på att det är just detta jobbet de vill ha.

Kan också säga att anledningen till att vi har en uppgift som man förbereder hemma är att vi inte vill ha som vissa företag som slänger ur sig en uppgift på intervjun och vill att den sökande ska haspla ur sig något på stående fot. Ett sådant test är ju helt skilt från hur man kommer att arbeta.

Jo, det är ju bättre att ha ett test att göra hemma ur den synvinkeln, samtidigt skulle man ju kunna be någon annan göra det då liksom. Men det är ju med utveckling som meds alla andra komplexa jobb: Man kan inte veta i förväg om personen klarar av jobbet. Test kan ge en indikation men man kan ju inte täcka upp allt som ska göras i ett test liksom. Låter man någon testa hemma så kan den fuska, och har man ett test på intervjun så kan det vara ett stort hinder för personer som har svårt för den typen av stress (att prestera när någon man inte känner hänger över axeln och kontrollerar vad man gör). Att diskutera lite kod på intervjun tillsammans med några blivande kollegor eller så är ett bättre alternativ i mina ögon. Man får då ganska snabbt en uppfattning om ifall personen har kompetensen som krävs men också om den är nyfiken och mottaglig för utbildning liksom. Att ha ett test som tar många timmar som jag förväntas göra på min fritid hemma säger mig att de värderar sin tid väldigt mycket högre än min tid och det är ju ingen bra indikation liksom. Det säger också att de inte litar på att jag talar sanning i mitt CV eller på intervjun, vilket inte heller är bra.

Sen finns det ju så mycket som påverkar ifall ett jobb är attraktivt för en viss person. Men vill man ha de bästa utvecklarna så måste man göra sitt bästa för att ha en attraktiv arbetsplats, om den inte redan är det av någon anledning. Allt ifrån hur mycket semester man får, möjlighet till flextid eller hemarbete, tjänstebil till vart arbetsplatsen ligger och hur kontoret är fysiskt utformat. Ska jag sitta i bilkö ett par timmar om dagen istället för att cykla till jobbet på tio minuter så får det allt vara bra attraktivt, och nog också ge ett ganska stort lyft i lön, för att det ska vara värt det liksom.

Permalänk
Inaktiv

Tackar för exemplen då det är bra att veta vad som kan komma.

Jag har aldrig någonsin fått gjort ett test på en intervju som programmerare, men det beror nog på vad för jobb man söker. Är det ett företag som är specialiserat på ett litet område så är det enkelt. Är det mer ett brett område, så kan det vara struntsamma om personen inte kan ett skit om frågorna högst upp. Och det är dessutom väldigt svårt att testa då det är så mycket olika.

Angående tester att göra hemma så glöm att de får några bra kandidater för enklare jobb, många har liksom redan ett jobb där de lägger 50-60h på och ska de vid sidan av göra ett obetalt prov som bara kan leda till en anställning, ja då får företaget heta Apple, Google, Dice eller något liknande.

Så vissa företag gör så att om någon säger att den är bra på X, så kan en av de bättre som är tillgänglig på kontoret inom detta område få vara med i intervjun.

Permalänk
Medlem

Jag skulle nog hellre ta ett mer realistiskt prov av typen "gör ett projekt" som är relevant för företaget än whiteboard frågor om fibonnaci och annat nonsens som det mer ofta handlar om.

Finns ganska bra utläggningar att läsa på nätet varför whiteboard övningar inte funkar för många, även om man är en duktig utvecklare i övrigt.

Permalänk
Medlem

Hej, Företaget jag jobbar på har ett utvecklartest som vi använder när vi anställer nyexade, detta är inte för att sätta onödig press eller vara jobbiga mot personerna utan för att faktiskt se att de klarar att lämna in en uppgift som har en deadline samt även lite kontroll kring kunskaper.

Vi har fullförståelse för att alla inte kan allt men man måste kunna kommunicera om det är något man fastnar på eller behöver hjälp med.