• 1
  • 2
2021-03-11, 21:15
  #13
Medlem
Citat:
Ursprungligen postat av wot34man
Men vi är kodare här Där får du ett test, som har används på intervjun på ett bolag (PHP)

Är det du som skrivet den efterblivet formulerade uppgiften? Hade jag fått en sån uppgift hade jag vänt i dörren. Helvete vad dåligt.
Citera
2021-03-16, 21:04
  #14
Medlem
Citat:
Är det du som skrivet den efterblivet formulerade uppgiften? Hade jag fått en sån uppgift hade jag vänt i dörren. Helvete vad dåligt.

Citat:
På riktigt, har någon ställt en så dåligt formulerad fråga på en intervju?

Ingen bryr sig om dina todo listor och pathfinding

Man vill se hur du tänker och resonerar. Och "hitta X i mängden Y" används överallt. Intressant vad du tycker är viktigt i uppgiften.

Sen behöver man inte göra allt och många saker kan diskuteras.
Du kommer knappast få detaljerade arbetsuppgifter i framtiden.

Det du ska få ut från uppgifter är krav på utrymme och minnet.
Svarstid 1ms betyder att sökningen ska gå på O(1) och du inte få plats med hela filen i minnet.

Lösningen årskurs 1, helt OK:

- Skapa MySQL Memory table med index.
- använd stream reader och läs filen rad för rad
- splittra strängen, kontrollera om id innehåller bokstäver, lägg till i db om inte.
- visa nån progress bar
- gör REST api för db.
- Vi låtsas att den ligger på AWS/etc med 99% uptime.
- vi hoppas att minnet på din bärbar räcker eftersom index blir > 3Gb.

Bättre lösning:

Man kan nästan gissa att api kommer användas ofta och gärna. WTF annars.
Kan nästan gissa att systemet är gammal (csv) och om den är i utlandet kan du säga hejdå till hastigheten.

1. ladda ner filen lokalt.
2. innan du kollar uppdateringen ska du kolla HEAD headers och Last-Modified och inte ladda ner filen.
3. Resilience / transient-fault-handling. Hantera exception (server med filen nere, timeouts, slow provider).
4. Sen kan du kolla hur data ser ut och spridningen, finns kanske meta som kan extraheras. Folk har lyckats komprimera den till 50mb med Roaring bitmaps (https://roaringbitmap.org/). Får plats i minnet typ.
5. Kan vanlig GET ge svar på 1ms? Är det aktuellt med HTTP persistent connection? Redis?
6. Nämna AWS/etc, SLA, docker.
7. Kan snabba upp saker och processa 1000 id i bulk.

Sett knäpp lösning i PHP med .data fil och fopen/fseek under 20 rader som funkade bättre än jag trodde.
Finns oändligt många svar. Det är mer "tänka fråga" än "koda fråga".
Citera
2021-03-19, 22:49
  #15
Medlem
Citat:
Ursprungligen postat av KillenArCP
På riktigt, har någon ställt en så dåligt formulerad fråga på en intervju?

Citat:
Ursprungligen postat av wot34man
(...)
Min tanke också. Riktig varningsflagga. Jävla autister.
__________________
Senast redigerad av tummen 2021-03-19 kl. 22:54.
Citera
2021-03-19, 23:08
  #16
Medlem
KillenArCPs avatar
Citat:
Ursprungligen postat av wot34man
Ingen bryr sig om dina todo listor och pathfinding

Man vill se hur du tänker och resonerar. Och "hitta X i mängden Y" används överallt. Intressant vad du tycker är viktigt i uppgiften.

Sen behöver man inte göra allt och många saker kan diskuteras.
Du kommer knappast få detaljerade arbetsuppgifter i framtiden.

Det du ska få ut från uppgifter är krav på utrymme och minnet.
Svarstid 1ms betyder att sökningen ska gå på O(1) och du inte få plats med hela filen i minnet.

Lösningen årskurs 1, helt OK:

- Skapa MySQL Memory table med index.
- använd stream reader och läs filen rad för rad
- splittra strängen, kontrollera om id innehåller bokstäver, lägg till i db om inte.
- visa nån progress bar
- gör REST api för db.
- Vi låtsas att den ligger på AWS/etc med 99% uptime.
- vi hoppas att minnet på din bärbar räcker eftersom index blir > 3Gb.

Bättre lösning:

Man kan nästan gissa att api kommer användas ofta och gärna. WTF annars.
Kan nästan gissa att systemet är gammal (csv) och om den är i utlandet kan du säga hejdå till hastigheten.

1. ladda ner filen lokalt.
2. innan du kollar uppdateringen ska du kolla HEAD headers och Last-Modified och inte ladda ner filen.
3. Resilience / transient-fault-handling. Hantera exception (server med filen nere, timeouts, slow provider).
4. Sen kan du kolla hur data ser ut och spridningen, finns kanske meta som kan extraheras. Folk har lyckats komprimera den till 50mb med Roaring bitmaps (https://roaringbitmap.org/). Får plats i minnet typ.
5. Kan vanlig GET ge svar på 1ms? Är det aktuellt med HTTP persistent connection? Redis?
6. Nämna AWS/etc, SLA, docker.
7. Kan snabba upp saker och processa 1000 id i bulk.

Sett knäpp lösning i PHP med .data fil och fopen/fseek under 20 rader som funkade bättre än jag trodde.
Finns oändligt många svar. Det är mer "tänka fråga" än "koda fråga".
Du vet väl om att branschen aldrig kommer se dig som senior?
Citera
2021-03-19, 23:10
  #17
Medlem
KillenArCPs avatar
Citat:
Ursprungligen postat av tummen
Min tanke också. Riktig varningsflagga. Jävla autister.
Ja, min fundering är hur fan han någonsin ska kunna förklara för Britt-Marie vad de har gjort med hennes surt betalade konsulttimmar.
Citera
2021-04-01, 15:10
  #18
Medlem
Citat:
Ursprungligen postat av havhimmel
Måste man bli en senior utvecklare efter x antal år i arbetslivet för att få stanna kvar på företaget/få nya jobb? Får man kicken eller får inga nya jobb annars?

Inte alla kan bli seniora utvecklare säkert med allt vad det innebär men jag är inte säker på att jag själv vill bli senior då det kräver mycket mer ansvar och en större arbetsbörda. Livet ska levas också. Dessutom skiljer sig lönen inte så mycket mellan mid och senior utvecklare, inte i Sverige i alla fall. Livet blir inte så mycket bättre med 10,000 mer i lön om ens det.

Så känner jag just nu i alla fall.

Man ska nog ta det där med en nypa salt. Du är på din nivå och du bör också kunna välja att vara kvar på din nivå eller att höja den. Många konsultföretag gör regelmässigt så att de kallar alla som har mer än 7-8 år i yrket för "seniora utvecklare". Mest för att då kunna begära högre timpris (inte alltid reflekterat i lika mycket höjda löner). En del av dem kan säkert ha motsvarande kompetens men många har inte det. Är ju också ett luddigt begrepp som inte är standardiserat så det kan betyda lite vad som helst.

Jag tycker att det är fel att dela in utvecklare så simpelt i två stora fack. Antingen junior eller senior. Inom både den juniora och den seniora gruppen finns det ju ett väldigt stort spann av kompetens, energi, och duglighet på andra sätt.

För vissa tekniker som är rätt nya, låt säga gRPC och Kubernetes, så är ju alla "juniorer" egentligen eftersom man kan inte ha haft 15 års erfarenhet av det som funnits i några år. Det kan t.o.m vara bättre då att hitta någon som har jobbat i totalt 3-4 år bara, men då jobbat exakt med det som efterfrågas i ett uppdrag, jämfört med nån trött gammal VBA- eller Oracle-programmerare som suttit med bara det i 25 år och helt plötsligt ska börja skapa appar med React Native ("detta borde ju gå, med en så pass senior konsult")

Jag tycker att både lön och timpris bör återspegla mer vad en konsult faktiskt åstadkommer, inte hur många år den har på nacken. Samtidigt borde det vara helt OK att fortsätta harva med VBA och Oracle om någon trivs med det och efterfrågan finns.
Citera
2021-04-01, 18:51
  #19
Medlem
Vireks avatar
Citat:
Ursprungligen postat av wot34man
Ingen bryr sig om dina todo listor och pathfinding

Man vill se hur du tänker och resonerar. Och "hitta X i mängden Y" används överallt. Intressant vad du tycker är viktigt i uppgiften.

Sen behöver man inte göra allt och många saker kan diskuteras.
Du kommer knappast få detaljerade arbetsuppgifter i framtiden.

Det du ska få ut från uppgifter är krav på utrymme och minnet.
Svarstid 1ms betyder att sökningen ska gå på O(1) och du inte få plats med hela filen i minnet.

Lösningen årskurs 1, helt OK:

- Skapa MySQL Memory table med index.
- använd stream reader och läs filen rad för rad
- splittra strängen, kontrollera om id innehåller bokstäver, lägg till i db om inte.
- visa nån progress bar
- gör REST api för db.
- Vi låtsas att den ligger på AWS/etc med 99% uptime.
- vi hoppas att minnet på din bärbar räcker eftersom index blir > 3Gb.

Bättre lösning:

Man kan nästan gissa att api kommer användas ofta och gärna. WTF annars.
Kan nästan gissa att systemet är gammal (csv) och om den är i utlandet kan du säga hejdå till hastigheten.

1. ladda ner filen lokalt.
2. innan du kollar uppdateringen ska du kolla HEAD headers och Last-Modified och inte ladda ner filen.
3. Resilience / transient-fault-handling. Hantera exception (server med filen nere, timeouts, slow provider).
4. Sen kan du kolla hur data ser ut och spridningen, finns kanske meta som kan extraheras. Folk har lyckats komprimera den till 50mb med Roaring bitmaps (https://roaringbitmap.org/). Får plats i minnet typ.
5. Kan vanlig GET ge svar på 1ms? Är det aktuellt med HTTP persistent connection? Redis?
6. Nämna AWS/etc, SLA, docker.
7. Kan snabba upp saker och processa 1000 id i bulk.

Sett knäpp lösning i PHP med .data fil och fopen/fseek under 20 rader som funkade bättre än jag trodde.
Finns oändligt många svar. Det är mer "tänka fråga" än "koda fråga".

Själv hade jag frågat mig varför en "fil" ska användas här och inte bara 2 databaser och jämföra skillnaden vid skrivning eller nåt över ett API

men ok, vill du ha en programmeringslösning så kör in allt i nåt spark/kafka kluster och starta 10 AWS instanster där du betalar per cykel eller kör nåt serverless framework som kan köra 100000 operationer parallellt i sekunden

och ang 2), varför inte bara döpa filen enligt datum eller version, sen ha senaste processade version i en databas och göra en enkel jämförelse där istället för att hålla på med headers och grejer...
__________________
Senast redigerad av Virek 2021-04-01 kl. 19:03.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in