I den første del af vores serie viste vi, at arbejdet som udvikler er meget mere end blot at skrive kode.
Vi talte om de første dage i et softwarehus, om forskellen mellem studier og rigtige projekter og om, hvorfor erfaring først og fremmest opnås gennem praksis.
I dag går vi videre til det spørgsmål, som næsten enhver junior stiller sig selv. Hvad skal jeg egentlig lære?
Internettet giver svar på alt. Nogle siger, at du absolut skal kunne React. Andre hævder, at fremtiden tilhører Rust. Og andre igen overbeviser om, at uden Docker, Kubernetes og fem certifikater er det meningsløst at sende CV.
Sandheden ser meget mere rolig ud...
Lær ikke frameworks først. Lær at programmere.
Denne sætning kan virke mærkelig.
Tænk på, at virksomheder annoncerer stillinger som React Developer, Java Developer eller PHP Developer.
Hvorfor siger vi så, at man ikke bør starte med frameworks? - Fordi et framework er et værktøj. Og værktøjer ændrer sig meget hurtigt.
For bare få år siden var mange overbeviste om, at AngularJS ville dominere i årtier. I dag ser det helt anderledes ud.
Du vil lære frameworks gennem hele din karriere. Måden en udvikler tænker på, forbliver dog hos dig for altid.
Derfor lær først:
- at løse problemer,
- at analysere krav,
- at designe løsninger,
- at læse andres kode,
- at skrive læsbar kode.
Teknologi er kun et middel til at nå et mål.
Mestring af ét sprog grundigt
Det er nok den mest almindelige fejl blandt begyndere.
I dag JavaScript. I morgen Python. I overmorgen Go. Om en uge Rust. Efter en måned C#...
Efter to måneder viser det sig, at ingen af dem er lært godt nok. Det er meget bedre at vælge ét sprog og virkelig lære det grundigt.
Forstå:
- hvordan hukommelsen fungerer,
- hvad referencer er,
- hvordan undtagelseshåndtering ser ud,
- hvordan kollektioner virker,
- hvad forskellen er mellem synkron og asynkron programmering,
- hvordan debugging fungerer.
Når du har lært ét sprog rigtig godt, lærer du de næste meget hurtigere.
Lær at læse dokumentation
Ikke særlig spektakulært? Meget.
Utroligt nyttigt? Endnu mere.
En god udvikler husker ikke alt. En god udvikler ved, hvor man finder et pålideligt svar.
Producentens dokumentation til et framework eller en bibliotek vil næsten altid være en bedre kilde til viden end et tilfældigt indlæg på et forum fra for seks år siden.
Evnen til at søge information adskiller dem, der udvikler sig, fra dem, der endeløst kopierer løsninger fundet på internettet.
Git er ikke en "Send"-knap
Hvis vi skulle pege på én færdighed, du bør lære så tidligt som muligt, ville det være Git. Ikke fordi det er trendy. Fordi praktisk talt hvert team bruger det.
Git er ikke bare at gemme ændringer. Det er en måde at samarbejde på. Branching. Pull Request. Merge. Konfliktløsning. Ændringshistorik.
Uden dette er det svært at forestille sig at arbejde i et professionelt team.
Og et råd til: Send aldrig et projekt som en ZIP-fil. Virkelig ikke.
SQL - selv hvis du ikke vil være databaseadministrator
Mange juniorer undgår SQL. Det er en fejl.
De fleste forretningsapplikationer bruger databaser. Du behøver ikke blive ekspert i forespørgselsoptimering.
Men du bør forstå:
- hvad en relationsdatabase er,
- hvordan relationer fungerer,
- hvad en indeks er,
- hvad forskellen er mellem LEFT JOIN og INNER JOIN,
- hvorfor en dårligt skrevet forespørgsel kan gøre hele applikationen langsommere.
Denne viden er nyttig i næsten ethvert projekt.
Linux bider ikke
Du behøver ikke straks at opgive Windows. Men det er værd at lære det grundlæggende om at arbejde i terminalen.
De fleste servere kører under Linux.
Kendskab til basale kommandoer:
- ls,
- cd,
- grep,
- cat,
- chmod,
- ssh,
kan spare en masse tid.
Det virker mærkeligt i starten. Efter nogle måneder er det svært at forestille sig arbejde uden terminalen.
Docker - hvorfor taler alle om det?
For få år siden kunne opsætning af udviklingsmiljø tage hele dagen.
Alle havde en anden version af PHP. En anden database. Andre biblioteker.
Docker har gjort dette problem meget nemmere. Det gør det muligt at køre applikationer i identiske miljøer uafhængigt af computeren.
Skal en junior straks blive ekspert i containerisering? - Nej.
Men det er værd at forstå, hvad en container er, og hvorfor praktisk talt hvert moderne projekt bruger Docker.
AI er en fremragende mentor. Ikke den bedste udvikler.
Det er et emne, man ikke kan ignorere i dag.
ChatGPT, GitHub Copilot og andre AI-værktøjer kan i høj grad fremskynde læring. Under én forudsætning. Kopiér ikke kode uden at forstå den.
Det er meget bedre at spørge:
- Hvorfor er denne løsning bedre?
- Hvordan virker denne algoritme?
- Hvordan kan det optimeres?
- Hvad er ulemperne ved denne tilgang?
AI forklarer rigtig godt.
Men det bør ikke erstatte selvstændig tænkning.
Debuggeren er din ven
I starten gør de fleste af os noget i retning af: var_dump($variabel);
Senere: echo $variabel;
Og lidt senere: console.log(data);
console.log(data2);
console.log(data3);
console.log(data4);
Vi begyndte alle sådan. Men det er værd at lære at bruge en debugger så hurtigt som muligt.
Den lader dig stoppe programmet hvor som helst, kigge på variablers værdier og forstå, hvad der virkelig sker under kørsel af koden.
Det er en af de færdigheder, der virkelig fremskynder udvikling.
Hvad for noget udstyr skal man vælge?
Mange forventer en liste over computere til titusinder af kroner. Unødvendigt.
I starten er vigtigere end den nyeste processor:
- et behageligt tastatur,
- en hurtig SSD-disk,
- tilstrækkelig mængde RAM,
- et stabilt arbejds-miljø.
RGB-lys gør ikke kompileringen hurtigere. Tre skærme gør heller ikke koden bedre.
Godt udstyr skal hjælpe dig med at arbejde. Ikke imponere på billeder (selvom udseendet også betyder noget ;))
Ordlisten
Framework
Et færdigt sæt værktøjer og biblioteker, der gør det lettere at bygge applikationer i henhold til bestemte regler.
Git
Et versionskontrolsystem, der tillader at spore ændringer i kode og samarbejde mellem flere udviklere på et projekt.
Docker
En platform, der gør det muligt at køre applikationer i isolerede containere, så miljøet opfører sig ens på forskellige maskiner.
Debugger
Et værktøj til at analysere programmets kørsel trin for trin og finde fejl.
SQL
Et sprog til at kommunikere med relationsdatabaser.
Opsummering
En god udvikler kender ikke alle teknologier. Ikke alle frameworks. Ikke al dokumentation udenad.
En god udvikler har solide fundamenter.
Ved, hvordan man analyserer problemer.
Kan finde information.
Forstår, hvordan teknologier fungerer.
Og derfor kan han hurtigt lære nye værktøjer.
Frameworks vil skifte.
Sprog vil udvikle sig.
Måden at tænke på forbliver den mest værdifulde færdighed gennem hele karrieren.
I den næste del viser vi, hvordan hverdagen for en seniorudvikler ser ud, hvorfor Code Review er den bedste skole i programmering, hvad Clean Code egentlig er, og hvorfor sætningen "det virker hos mig" får mange udviklere til at smile nervøst.
