Hvordan lære å kode

Hvilket språk du bør begynne med, hvorfor valget betyr mindre enn du tror, og hvordan du unngår å bruke et helt år på kurs uten å få laget noe.

Kodeleker: tre linjer du kan skru på

Endre tallene og teksten i de blå feltene. Resultatet oppdateres mens du skriver. Dette er tre av de få tingene all programmering bygger på: regne ut, gjenta og velge.

1. Regne ut

var pris = ;
var antall = ;
var sum = pris * antall ;
skriv( "Totalt: " + sum + " kr" ) ;
Utskrift

2. Gjenta

for ( i = 1 ; i <= ; i++ ) {
  skriv( + " " + i ) ;
}
Utskrift

3. Velge

var alder = ;
if ( alder >= 18 ) {
  skriv( "Du kan stemme" ) ;
} else {
  skriv( "Du må vente " + (18 - alder) + " år" ) ;
}
Utskrift

Ingenting sendes noe sted. Feltene tolkes som tall og tekst, aldri som kode — derfor kan du ikke skrive kommandoer inn i dem.

Velg språk på ti minutter, ikke ti dager

Det første spørsmålet alle stiller er hvilket språk de skal begynne med, og det er spørsmålet som stjeler mest tid til minst nytte. Grunnbegrepene — variabler, betingelser, løkker, funksjoner, lister — er de samme overalt. Når du har dem i ett språk, tar språk nummer to noen uker, ikke noen år. Folk som har kodet i ti år bytter språk når prosjektet krever det, og bruker ikke lang tid på det.

Likevel er ikke alle startspråk like gode. Et godt førstespråk har lite seremoni før du får til noe, og gir tydelige feilmeldinger. To valg peker seg ut:

Alt annet er et spesialvalg. Skal du lage iPhone-apper trenger du Swift, Android-apper Kotlin, og spill i Unity krever C#. Men da har du allerede et mål, og dermed allerede svart på spørsmålet.

SpråkBrukes tilVanskelighetDu kan lage
PythonAutomatisering, data, KI, serverLettSkript som rydder filer, botter, analyser
JavaScriptNettsider, apper, serverLett til middelsNettsider som gjør noe, små spill
HTML og CSSStruktur og utseende på webLettSider — men det er ikke programmering
SQLSpørringer mot databaserLettRapporter og uttrekk fra data
C#Spill i Unity, forretningssystemerMiddels2D- og 3D-spill, skrivebordsprogram
JavaStore systemer, AndroidMiddelsBank- og bedriftssystemer
SwiftiPhone og iPadMiddelsApper til App Store
Rust eller CSystemnær kode, ytelseVanskeligOperativsystemer, motorer, verktøy

De seks tingene som utgjør fundamentet

Nesten all kode er kombinasjoner av seks ideer. Når du kjenner dem, kan du lese kode i språk du aldri har sett.

  1. Variabler — navn som holder på en verdi du kan hente tilbake senere.
  2. Betingelser — hvis dette, gjør det, ellers noe annet.
  3. Løkker — gjør det samme mange ganger uten å skrive det mange ganger.
  4. Funksjoner — en bit arbeid du gir et navn, slik at du kan bruke den om igjen.
  5. Lister og oppslag — måter å holde på mange verdier samtidig.
  6. Feilhåndtering — hva programmet gjør når noe går galt, og det gjør det.

Dette tar noen uker å lære og resten av livet å bli god på å kombinere. Alt du møter senere — rammeverk, databaser, skytjenester — er lag oppe på disse seks.

Tutorial hell: hvorfor du forstår alt og likevel ikke får til noe

Mønsteret er velkjent. Du følger et videokurs, alt gir mening mens du ser på, du skriver av koden og den virker. Så åpner du et tomt vindu for å lage noe selv, og hodet er blankt. Det føles som om du ikke har lært noe. Reaksjonen er som regel å starte enda et kurs, og der blir folk sittende i månedsvis.

Forklaringen er ikke at du er treg. Den er at gjenkjenning føles som kunnskap. Når du ser løsningen, kjenner du den igjen, og hjernen tolker det som at du kan den. Å hente den fram fra ingenting er en helt annen operasjon, og den øver du bare ved å gjøre nettopp det. Det er samme mekanisme som gjør at å lese notatene om igjen før eksamen føles tryggere enn å teste seg selv, men gir dårligere resultat.

Veien ut er ubehagelig og kort: bygg noe eget før du føler deg klar. Velg et problem du faktisk har — en kalkulator for noe du regner på ofte, et skript som døper om bildefiler, en side som viser når bussen går. Skriv den uten oppskrift. Slå opp alt du trenger underveis; det er lov, og det er slik profesjonelle jobber. Resultatet blir stygt. Det er likevel mer verdt enn det tiende kurset.

Læringskurve for programmering med platået kalt tutorial hell markert mellom uke fire og seksten Tutorial hell kurs etter kurs, lite egen kode Første egne prosjekt start uke 4–16 måned 6 og utover ferdighet
Kurven flater ikke ut fordi stoffet blir vanskeligere, men fordi du slutter å produsere selv. Knekkpunktet kommer når du bygger noe uten fasit.

Feilmeldinger er hjelp, ikke kritikk

Nybegynnere leser feilmeldinger som en dom. Erfarne leser dem som en adresse. Forskjellen forklarer mye av forskjellen i tempo.

En typisk feilmelding inneholder tre ting: hvilken fil og hvilket linjenummer problemet oppsto på, og hva slags feil det er. Les nederste linje først — det er der den faktiske meldingen står. Gå så til linjen som nevnes, og husk at feilen ofte ligger på linjen over hvis det handler om en manglende parentes.

Fire feiltyper dukker opp igjen og igjen:

Kopier hele feilmeldingen inn i et søk. Noen har hatt akkurat samme problem, og det er ikke juks å lese svaret. Det er juks å lime inn løsningen uten å forstå hvorfor den virker.

Feilsøking er ikke avbrudd i arbeidet — det er arbeidet

Mange venter at man skriver kode og av og til må fikse noe. I praksis er fordelingen omvendt: mesteparten av tiden går med til å finne ut hvorfor noe ikke oppfører seg som det skal. Erfarne utviklere er ikke folk som skriver feilfri kode. De er folk som finner feilen raskere.

Metoden er systematisk, ikke genial:

  1. Gjenskap feilen pålitelig. En feil du ikke kan fremkalle på kommando, kan du ikke rette med sikkerhet.
  2. Halver søkeområdet. Skriv ut verdier midt i koden. Er de riktige der, ligger feilen etter. Er de gale, ligger den før.
  3. Endre én ting av gangen. Endrer du tre ting og det begynner å virke, vet du fortsatt ikke hva som var galt.
  4. Forklar problemet høyt. Å formulere hva koden skal gjøre avslører overraskende ofte feilen midt i setningen.

Lær Git tidligere enn du tror du trenger det

Git er versjonskontroll: et system som husker hver versjon av koden din og lar deg gå tilbake. De fleste utsetter det fordi det ser komplisert ut. Det er en feil, for det er nettopp som nybegynner du ødelegger ting.

Du trenger fire kommandoer i starten. git init starter sporing i en mappe. git add merker hva som skal lagres. git commit lagrer et øyeblikksbilde med en beskjed om hva du gjorde. git push sender det til GitHub. Det er alt, og det tar en ettermiddag.

Gevinsten er dobbel. Du tør eksperimentere når du vet at du kan angre, og du bygger samtidig en offentlig profil. En GitHub-konto med jevn aktivitet over et år sier mer til en arbeidsgiver enn et kursbevis.

Veien fra første kodelinje til første ferdige prosjekt i fem trinn 1 2 3 4 5 Hei verden Grunnbegrep Kopier og endre Bygg uten fasit Publiser dag 1 uke 1–4 uke 4–8 uke 8–16 måned 4–6 variabler, løkker,funksjoner ta andres kode ogendre den bevisst eget problem,stygg løsning GitHub, README,noe som kjører
Trinn tre er det folk hopper over. Å endre fungerende kode og se hva som ryker er en billigere måte å forstå på enn å lese om det.

Gratis ressurser som faktisk holder mål

Det finnes uendelig mye gratis materiale, og kvaliteten spriker. Noen typer er verdt tiden:

Velg én hovedkilde og hold deg til den til du er ferdig. Å hoppe mellom fem kurs som alle dekker de samme tre første kapitlene er den vanligste måten å bruke et halvår på ingenting.

KI-verktøy: lærer eller snarvei?

Kodeassistenter skriver fungerende kode raskere enn du rekker å lese den. Det gjør dem både nyttige og farlige for en som skal lære. Faren er ikke at koden blir dårlig — den er ofte grei. Faren er at du får et resultat uten å ha gjort arbeidet som skaper læring.

Tre regler som fungerer i praksis:

Brukt slik er dette den beste læreressursen som har kommet på lenge: du har alltid noen å spørre, og den blir aldri lei av deg.

Hvor lang tid tar det egentlig?

Tallene under er grove og varierer mye med bakgrunn og innsats. De er tatt med fordi urealistiske forventninger er en av de vanligste grunnene til at folk gir seg.

InnsatsEtter 3 månederEtter 1 år
20 min per dagForstår kode du leserSmå skript som sparer deg tid
1 time per dagSmå nyttige programmerEgne prosjekter fra bunnen
3 timer per dagEnkle apper og nettsiderPortefølje som kan vises fram
FulltidKan bidra i et prosjektAktuell for juniorstillinger

Spredning slår skippertak. Fem økter på en halvtime gir mer varig ferdighet enn én økt på to og en halv time, selv om summen er den samme. Grunnen er at hver gang du må hente stoffet fram igjen etter en pause, styrkes minnet. Koder du bare i helgene, går store deler av lørdagen med til å komme tilbake dit du var.

Veien mot jobb

Utdanning gjør veien kortere, men er ikke et krav. Selvlærte får jobb, og da avgjør tre ting.

Porteføljen. Tre til fem prosjekter som faktisk kjører, ligger på GitHub og har en README som forklarer hva de gjør og hvorfor. Ett gjennomarbeidet prosjekt slår ti halvferdige. Helst noe som løser et ekte problem, ikke enda en gjøremålsliste fra et kurs.

Evnen til å forklare. På intervju får du spørsmål om valgene dine. «Hvorfor løste du det slik?» er et bedre spørsmål enn noen algoritmetest, og du kan bare svare hvis du faktisk skrev koden.

Utholdenhet i søkeprosessen. Regn med mange avslag, også på stillinger du passer til. Søk bredt, ta kontakt med konsulentselskaper som tar inn juniorer i kull, og vurder læreplass eller praksis hvis du er ung. Bidrag til åpen kildekode er en av få måter å få ekte erfaring på uten å ha jobb.

Vil du bygge noe konkret å vise fram, er en enkel hjemmeside eller en liten app et fornuftig første prosjekt.

Spørsmål og svar

Hvilket programmeringsspråk bør jeg begynne med?

Python hvis du ikke har et konkret mål, fordi syntaksen er ryddig og du slipper mye støy før du får til noe. JavaScript hvis målet er nettsider, siden det er det eneste språket nettleseren kjører direkte. Valget betyr mindre enn folk tror: grunnbegrepene er de samme, og språk nummer to tar en brøkdel av tiden.

Hvor lang tid tar det å lære å kode?

Med en time om dagen får de fleste til små, nyttige programmer etter to til tre måneder. Å være god nok til å bli ansatt tar oftere ett til to år med jevn øving og ekte prosjekter. Tallene varierer mye, men mønsteret er stabilt: jevnlig øving over lang tid slår intensive perioder etterfulgt av pause.

Hva er tutorial hell, og hvordan kommer jeg ut av det?

Tutorial hell er tilstanden der du følger kurs etter kurs, forstår alt mens du ser på, og står helt blank når du skal skrive noe selv. Årsaken er at gjenkjenning føles som kunnskap. Løsningen er å bygge noe eget uten oppskrift, selv om resultatet blir stygt og du må slå opp alt underveis.

Trenger jeg å være god i matematikk for å kode?

Til vanlig programmering trenger du ungdomsskolematematikk: de fire regneartene, prosent og litt logikk. Grafikk, maskinlæring og kryptografi krever mer, men det er spesialiseringer. Det du faktisk trenger er tålmodighet med detaljer og evnen til å dele et problem i mindre biter.

Ødelegger KI-verktøy læringen min?

Bare hvis du limer inn svar uten å lese dem. Regelen som fungerer er enkel: skriv løsningen selv først, bruk verktøyet til å forklare hva du ikke forstår, og aldri godta kode du ikke kan gjenskape linje for linje. Da blir det en lærer i stedet for en snarvei.

Må jeg ha utdanning for å få jobb som utvikler?

Nei, men det gjør veien kortere. Selvlærte får jobb hver dag, og da er det porteføljen som avgjør: tre til fem fullførte prosjekter som kjører, med kode andre kan lese. Regn med flere avslag enn du liker, og søk bredt på junior- og konsulentstillinger.

Relatert