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.