Citat:
Ursprungligen postat av
Icnivad
Tack för att du delar, vilket är sällan folk gör. Fast måste säga ändå att det var oväntat svåra vissa. Hur tusan ska man kunna besvara fråga 3 bara på rak arm om man inte gjort det tidigare till exempel? Tvivlar ärligt talat på att många hade klarat de där intervjufrågorna om man bortser från fråga 2 och 4 som är enkla rutinfrågor.
edit:
Såg nu att du skrev att man fick börja på den hemma.
Den rekursiva varianten är väldigt simpel dock, man behöver bara skriva return Fib(n-2) + Fib(n-1) tillsammans med lämpliga basfall. Kan vara bra dock att motivera att den är exponentiell, lär lätt kunna bli overflow i stacken med alla funktionsanrop.
Är inte påläst på Java för tillfället, fast såhär ungefär:
public int Fib(int n) {
if (n == 1) return 1;
if (n == 2) return 1;
return (Fib(n-2) + Fib(n-1));
}
Jag tror att folk som har bra koll på programmering och matte klarar frågorna utan större bekymmer. Jag har som sagt själv fått dessa frågor, det var inga större problem att klara. Företagen som ställde dessa frågor söker ofta folk med civilingenjörsexamen i data/fysik/elektro och en viss arbetslivserfarenhet inom branschen.
Fråga 1 (Svenskt musikstreamingföretag) klarar man enkelt om man har koll på generics i java. Det finns kanske en liten twist med felhantering som verkade ge bonuspoäng om man tänkte på det.
Fråga 2 (Svenskt musikstreamingföretag) är inte så trivial som du tror. Du har löst uppgiften men det är en väldigt ineffektiv lösning. En självklar följdfråga kommer vara: Vad är komplexitet av algoritmen och hur förbättras den? Din lösning har komplexitet på O(2^n), inte speciellt bra m.a.o.
Fråga 3 (Svenskt företag som gör system för trading på börsen) är en sådan man får lösa hemma på några timmar och presentera på intervjun. Tanken är inte att göra uppgiften perfekt, utan visa tecken på att man är bra på att designa system och skriva testbar kod m.m. Valet av uppgift brukar spegla det företaget håller på med. Man kan även få sådana uppgifter på intervjutillfället, men då bara diskutera hur systemet ska designas. Man får kanske 10-20 min för sig själv och får sedan presentera sin design och diskutera den.
Fråga 4 (Stort IT-konsultbolag). Även detta problem kan lösas på trivialt sätt eller på mer komplicerade (snabbare) sätt som kräver att man har lite koll på matte.
Jag har varit på många intervjuer med varierande svårighetsgrad. Det som är gemensamt är att intervjuaren aldrig söker triviala lösningar trots att problemen till synes är triviala. Det är alltid bra att tänka lite extra innan man hoppar på svaret. Självklart förväntas inga perfekta lösningar heller, man får komma ihåg att intervjuaren har ställt samma fråga till väldigt många och har stenkoll på uppgiften. Det finns självklart undantag där triviala frågor med triviala svar förväntas. Dessa företag brukar inte vara något att hänga i julgranen.