Dit første udvikler(programmør) job

By: Saxo Merrild 01-30-2020

Categories:Nyheder,

Sådan finder du det første udvikler job (som er godt for din karriere)

Jobmarkedet for udviklere er rigtig godt i disse dage. Der er flere jobs, end der er udviklere, der er klar til at blive hyret. For nyuddannede er det nemt at finde et job, men den kedelige sandhed er, at mange af disse jobs ikke tilbyder gode muligheder for at udvikle sig. Ofte kan virksomheder ikke tilbyde udfordringer, som kan skubbe dig mod at lære nye ting. 

Hos Promando har vi i mange år beskæftiget os med at rekruttere programmører og udviklere, og har set mange både gode og mindre gode jobs for nye udviklere igennem tiden.  

Her er 5 råd, som hjælper dig, så du selv kan finde en god arbejdsgiver at starte din karriere hos.  

  1. Start tidligt! 

At lære at programmere er en kompleks opgave. At forstå version control, algoritmer, operativsystemer og design patterns er kun nogle af de få ting, som enhver programmør bør vide. At lære alt dette kan tage år, og de fleste udviklere, når aldrig senior niveauerne i deres karriere.  

Ifølge Malcom Gladwell’s teori, skal man bruge 10,000 timer på at mestre en evne. Mange forskere har dog stillet spørgsmålstegn ved Gladwells teori, fordi den er baseret på en for lille forsøgsgruppe.  

Men at bruge 10,000 timer på at kode alene, gør dig ikke til en god programmør. Du skal lære de rette ting, udover at kode.  

 

  1. Find en lærer eller mentor 

Til ”Den usynlige udstilling” i Warszawa, Polen, er der en udstilling i en normal lejlighed, som er fuldt udstyret og møbleret. Der er kun en ting, som er anderledes – det er fuldstændig mørkt. En blind guide hjælper dig med at opleve udfordringerne ved at være blind. Det er utroligt, hvor svært det er at bruge noget så simpelt som en vaskemaskine, hvis man ikke kan se den. 

At lære at programmere er lidt det samme. Du kan lære ting ved at søge på internettet, men det går meget mere glat, hvis du har en der kan guide dig. Det er derfor, du har brug for en lærer, én som kan hjælpe dig med at følge den rigtige sti, forklare dig de svære dele og vise dig den rigtige retning. 

At have en lære eller mentor accelererer din indlæring eksponentielt, men det kan være svært at finde en. Du kan med fordel have flere lærere eller mentorer; du skal bare finde en virksomhed med et kompetent udviklerteam, som er villig til at undervise nyansatte.  

Hvordan genkender man et kompetent team? 
Alle virksomheder praler med at deres softwareudviklere følger ”best pratices”. Nyudklækkede programmører ved ikke, hvordan de skal kunne genkende den bedste arbejdsgiver eller hvilke spørgsmål, de skal stille til en jobsamtale.  

Joel Spolsky lavede Joel Testen, som har til mål at identificere effektiviteten af et udviklingsteam. Testen er så svær, at virksomheder sjældent klare den. Det er ikke sikkert, at din fremtidige arbejdsgiver vil heller. No worries – ingen virksomhed er perfekt. 

De følgende 3 tips vil hjælpe dig med at indsnævre dit felt til de bedste mulige virksomheder i din jobsøgning.  

Teamet bruger et moderne version control system som Git eller Mercurial. Hvis de deler filer via e-mail, FTPs eller netværk drives, så lad være med at slå dig til dem. Det er ikke det rette sted at lære at udvikle software.  

Teamet skriver automatiserede tests for hver ny feature. De fleste teams er måske ikke helt der endnu, men så længe de arbejder på at komme i gang med automatiseret testning, så er alt godt. Ikke kun unit tests, men også integration og end-to-end tests.  

Automatiserede tests er hurtigere sammenlignet med manuelle testere. En endnu større fordel ved at bruge dem er, at de kan udføres, når en udvikler opdaterer kodebasen.  

Teamet har etableret en måde at integrere ændringer til kodebasen. Når en udvikler opdaterer koden i kodebasen, så kører en automatiseret proces, som laver et kvalitetstjek og compiler-applikationen. Hvis den nye kode ikke lever op til kravene, så fejler processen og holder andre udviklere tilbage fra at tilføje deres ændringer, indtil problemet er løst. Ofte kaldes dette for Continuous Integration (CI). Dette er den vigtigste proces fra en udviklers standpunkt.  

At etablere en CI-proces er svært og kan være ressourcekrævende. Det er okay, hvis en virksomhed ikke har det endnu, men de bør arbejde imod det. Dette er en god mulighed for at lære.  

  1. Undgå dårlige jobs 

Nogle udviklingshuse laver opgaver for store kunder og har mange projekter. Det betyder dog ikke, at det er gode projekter! Du kan ende med at sidde og lave den ene simple hjemmeside med lav kvalitet efter den anden for forskellige kunder, hvor du måske kun har 2 måneder til et projekt.  

De mest erfarende udviklere i sådanne virksomheder er stoppet med at tillære sig nye evner for længe siden. I begyndelsen af deres karriere byggede de frameworks til at udvikle hjemmesider til deres kunder. Det framework var mere eller mindre genbrugeligt, så de ændrede det ikke i 6 år, ud over at ændre små ting efter deres kunders behov. Arbejdet var ikke udfordrende længere, det var rart og nemt.  

Du har ikke lyst til at være i den situation, hvis du gerne vil gøre noget ud af din karriere. Det er vigtigt at huske, at alle jobs er midlertidige, og du altid skal være en attraktiv kandidat for andre arbejdsgivere.  
 
Ofte lærer du mere af at arbejde for virksomheder, som arbejder med deres eget produkt eller større og mere langvarige projekter, som ikke er generiske. Find et sted, hvor de ikke er bange for at prøve nye ting, og hvor dine overordnede også gerne vil udvikle sig.  

  1. Start ikke med at Freelance 

Livet som freelancer kan virke fristende. Der er ikke nogen chef, man kan arbejde hjemmefra, når det passer en. Problemet er, at selvom der kan være gode måneder, så kan der også komme perioder uden indkomst. Specielt i Europa bruger virksomhederne ikke mange af den slags i december og januar. Ydermere lærer du ikke lige så meget som du ville, hvis du arbejdede som del af et kompetent udviklerteam.  
 

Det er svært at finde (gode) kunder 
 

Ofte vil virksomheder gerne outsource dét, som ikke er indenfor deres ekspertiseområde. Det første der ryger ud til freelancers er, at lave e-mail templates og hjemmesider. Disse jobs er nemme at finde, men de er ikke velbetalte.  

”Udfordrende” projekter er der også, men at få fingrene i de opgaver er ikke nemt. Tonsvis er udviklere vil gerne have fat i dem, så en virksomhed kan vælge og vrage blandt en lang række freelanceudviklere. Hvis du ikke har nogle referencer eller erfaring, så er det ikke sandsynligt, at du får disse opgaver.  

At oparbejde en sikker indtægt kan tage op mod 2 år. Start ikke en karriere som freelancer, hvis den eneste fordel du har, er at give kunderne rabat.  

Du er chefen nu. 

Hvis du er selvansat, så er du chefen. At få nye kunder, sørge for forsikringer, pension og løn er en del af din jobbeskrivelse.  

Den gennemsnitslige arbejdsuge i Danmark er 37 timer. For en freelancer er den længere, hovedsaligt fordi du skal gøre mange andre ting end at kode. Fra mandag til fredag arbejder du på projekter, og i weekenden er det tid til at sende tilbud ud til nye kunder og lave regnskab.  

At få nye kunder er den sværeste del. Her kan man investere masser af tid i at søge efter kunder med ingen eller ringe resultater. Hvis du er en nyuddannet udvikler, så lad være med at følge denne sti.  

  1. Spil ikke din tid. 

Mange som begynder med kodning, vil gerne gøre det rigtigt fra starten. Man kan læse sig blind i artikler om, hvad en ”rigtig” programmør skal bruge af redskaber og evner.  Det er spild af tid. Her er en liste over ting, som IKKE betyder noget, men som udviklere elsker at spilde tid på. 

At søge efter den bedste IDE 

En IDE er en editor på steroider. Den indeholder tonsvis af hjælpsomme features og kan skræddersys, som du vil have det. Enhver udvikler leder efter den bedste IDE til deres kodningssprog, men udviklere bruger ofte alt for meget tid på det. 

I dit daglige arbejde har du kun brug for nogle få features.  

Det er alt. 

Vi kan anbefale IntelliJ eller Webstorm, som er lavet af Jetbrains, Jetbrains laver nogle af de bedste værktøjer til udviklere, alt virker med det samme næsten uden at skulle indstille eller specificere noget. Desværre er deres værktøjer ikke billige. Hvis du vil have en gratis editor, så brug Atom eller Visual Studio Code. 

Custom configuration 

At installere temaer, plugins og lave skræddersyede indstillinger er spild af tid. Det tager timer at sætte det op, og alle dine ændringer vil måske spare dig 5 minutter om dagen. Du bruger mere tid på at drikke kaffe eller snakke med kollegaerne… 

At lære hotkeys 

Hot-keys er brugbare, men du behøver ikke kende dem alle sammen. Fokuser på det essentielle – lær de hotkeys som du har mest brug for hver dag, så som renaming, switching tabs, og åbne filer.  

Brug ikke fjollede plugins, som skal lære dig alle forskellige hotkeys, hver gang du klikker på noget i din IDE. De er distraherende, og de besværliggør din arbejdsgang. Disse plugins fjerner din opmærksomhed fra reel problemløsning. 

Naming Conventions  

Har du hørt om Spring Framework? Det er et Java framework til at bygge store enterprise systemer. Dette er kodningens svar på poesi indenfor Object-orienteret programmering. Bare ved at læse deres commits på Github, kan du lære meget om at designe komplekse applikationer. 

Deres naming convention kunne være bedre. Det længste class name er SimpleBeanFactoryAwareAspectInstanceFactory. Baseret på dette navn, er det ikke muligt at finde ud af hvad denne class gør. I sidste ende er dårlig name convention ikke altafgørende, det er kontinuitet til gengæld.  

Kode stil 

Stilen i din kode, garanterer ikke nogen høj kvalitet. Det gør det rigtige design til gengæld – fokuser på følgende design patterns og deres korrekte implementering. Diskussioner om det er bedst med Whites pace eller tabs er lige gyldige. Hold det kontinuerligt, i hvert fald på fil niveau, og så kom videre! 

Du behøver ikke opfinde den dybe tallerken. Brug kode stile, som er definerede af andre udviklingsteams. Vi kan anbefale f.eks. at følge Airbnb’s udviklings stil. Hvorfor? De har allerede defineret alt, du har brug for at vide for at sætte et projekt op. Det tager mindre end 15 minutter.  

Er der noget du ikke ved? Så spørg! 

Nyuddannede udviklere føler sig dumme, når der er noget, de ikke ved eller har et problem, de ikke kan løse. Du synes, deres spørgsmål er fjollede, at de bør vide alle disse ting. De fortrækker at bruge 5 timer på at google i stedet for at spørge deres kollegaer. 

Mangel på viden betyder ikke, at du er inkompetent. Det betyder, at du møder et problem for første gang, og måske har nogen omkring dig løst det før. Spørg dem om det. De mest erfarende udviklere stiller konstant spørgsmål. Ofte om åbenlyse og fjollede ting. Gør det samme – stil spørgsmål, fordi det sparre dig tid. 

Opsummering 

Denne guide er skrevet for at gøre starten på din udviklerkarriere nemmere. Forhåbentligt kan den hjælpe dig med at fokusere på de rigtige ting, og først og fremmest hjælpe dig på vejen til en frugtbar karriere.  

Alle virksomheder har en fortid, som de skal leve med. Løb ikke skrigende væk, hvis de siger, det ikke er muligt at opdatere alle værktøjer til den nyeste version med det samme. Hjælp dem med at udvikle løsninger i stedet for at udpege alle deres mangler.