Som nyutdannet utvikler kan man gjerne litt om alt, men også ingenting om noe som helst. De siste årene har AI tilbud som ChatGPT, Cursor og Co-pilot gjort det enklere for nyutdannede å programmere løsninger selv uten mye erfaring, på godt og vondt. I denne artikkelen skal jeg gå gjennom 3 gode måter å benytte seg av AI-verktøy på, og 3 fallgruver som kan gjøre deg til en dårligere utvikler.

De siste årene har det florert med nye banebrytende AI-verktøy, og som IT-student var jeg ekstra utforskende for å finne verktøy som kunne gjøre studiet litt lettere. Man har dårlig tid, mange innleveringer, og utfordrende fag. Det var ufattelig digg og av og til kunne avlastes litt ved å få "chættern" til å ro en innlevering i land.
Så var man plutselig i jobb
På studiet var man kanskje ikke super-kritisk til å få AI til å generere tekst og kode, man skulle tross alt bare gjennom. Så har plutselig 5 år gått, og jeg kan beære meg med tittelen som ✨konsulent✨. Da måtte plutselig arbeidsflyten bli noe annerledes, ettersom man gjerne skal produsere god og robust kode, og ikke bare noe som funker. Dårlige vaner er vonde å vende, og jeg måtte ta flere runder med meg selv hvor jeg tenkte over hvordan jeg benyttet AI i arbeidet mitt, og om dette egentlig gjorde meg til en bedre konsulent.
Etter noen måneder i jobb sitter jeg nå igjen med noen lærdommer om hvordan AI bør brukes for å faktisk være verdifullt, og hvordan det egentlig bare saboterer deg og læringen din.
3 gode måter å bruke AI på
Det er ingen tvil om at AI-verktøy er gull verdt om man bruker det riktig. Her er noen av mine erfaringer av hvordan AI kan hjelpe deg til å bli en bedre IT-konsulent.
"Code assistant, not code generator"
Selv har jeg dratt god nytte av verktøy som Cursor, som er en AI code editor. Her kan man diskutere koden rett i editoren, og man kan få den til å gjøre endringer direkte inn i filene. Å bruke slike verktøy som en kode-assistent (med fokus på ordet assistent) kan gjøre utviklerjobben ganske mye mer effektiv. Selv har jeg blant annet fått Cursor til å forklare eksisterende kode for meg, som har vært et supert verktøy når jeg som ny på prosjektet skulle sette meg inn i en helt ny kodebase. Generelt er en code-assistant en veldig god sparringspartner, som kan hjelpe til med å foreslå løsninger og forklare ulike konsepter. Det er også fantastisk til debugging, hvor vi kan få gode forklaringer på uforståelige feilmeldinger. Cursor kan også søke gjennom hele kodebasen din, og det er sykt digg å få den til å lete frem en liten feil et eller annet sted i kodebasen din på svært kort tid.
For at dette virkelig skal være et verdifullt verktøy kan det være lurt å være konservativ med bruken av Agent-modusen, som skriver koden for deg. Tips nummer 1: bruk forslagene til å forstå hvordan dette kan løses og bruk det som inspirasjon, men helst skriv koden inn selv. Tips nummer 2: pass på at du faktisk forstår hva koden betyr før du tar forslaget som god fisk. Jeg snakker av erfaring når jeg sier at det er litt kleint å få spørsmål om å forklare en kodesnutt i en PR-review, og ikke ha noe godt svar å stille med. Dette gjør også at man faktisk lærer noe, isteden for å kun produsere.
Automatiser det kjedelige
Det er mye kode som må skrives som egentlig bare er "grunt work", og som egentlig ikke krever spesielt hjernekraft. Dette er et ypperlig bruksområde for AI, og her kan vi rett og slett la maskinen ta dritten. For noen uker siden flyttet jeg noen funksjoner fra en fil til en nyopprettet fil med nytt navn, og måtte dermed manuelt oppdatere alle imports i kodebasen som brukte disse funksjonene. Etter å ha endret importsene i ca. 4 filer innså jeg at dette er det perfekt å bruke Cursor til, og med en kort liten prompt hadde jeg plutselig fått oppdatert importsene i 88 filer på noen sekunder. Dette sparte meg både tid og livsglede. Generering av Unit-tester og testdata er også eksempler på gode områder hvor AI kan ta jobben for deg, men alltid husk å ta noen stikkprøver på resultatene ettersom disse modellene kan ha en tendens til å lure inn noe helt sprøtt i ny og ne.
Frisk opp kunnskap, eller lær noe nytt
Som nyutdannet dukker det stadig opp nye konsepter og teknologier som jeg enten har null erfaring med, eller som jeg rett og slett bare ikke husker helt hvordan fungerte. Her er vi idag ekstremt heldige og har tilgang på en læringsassistent rett i browseren, og kunnskap er dermed bare en prompt unna. Selv er jeg avhengig av å kunne visualisere noe for å forstå det helt, og der synes jeg f.eks. ChatGPT er ganske mye bedre enn å lese dokumentasjon på nett. Jeg fikk beskjed for litt siden om å sette opp noen database indekser ettersom vi skulle legge til noen litt komplekse spørringer i systemet vårt, og da satt jeg igjen med spørsmålet "hvordan i alle dager var det databaseindeksering fungerte igjen????".
Med en kjapp prompt som dette:
Forklar meg konseptet databaseindeksering, når bør man bruke det og hvorfor er det lurt. Gjerne bruk noen metaforer for å forklare.
var jeg raskt klar for å begi meg ut på oppgaven.
Å bruke AI til å lære er nok min favoritt metode som nyansatt, og jeg har erfart at jeg generelt nå kan lære mye raskere enn før. Det er svært enkelt å få svar på akkurat det du lurer på, forklart på en simpel og forståelig måte.
3 fallgruver når man bruker AI
Ja, AI er helt rått når det brukes riktig, men det finnes mange måter å bruke verktøy på som rett og slett saboterer utviklingen din og kodebasen.
Copy + paste, eller cmd + Y
Jeg snakket litt om dette lenger opp, men dette er såpass viktig at her får dere hele reglen en gang til. HOLD DERE UNNA kopiering av kode rett inn i kodebasen, eller å trykke cmd + Y for å godta det lange og kompliserte kodeforslaget fra Cursor. Nå skal jeg ikke sitte på min høye hest å late som at dette er noe jeg aldri kunne funnet på, for jeg snakker av erfaring. I starten av prosjektet mitt var jeg opptatt av å kunne bidra til teamet raskt, selv om jeg ikke enda hadde spesielt oversikt over kodebasen eller teknologien. I redsel for at de andre på teamet skulle synes jeg jobbet treigt brukte jeg min beste venn Cursor ganske hissig for å generere nye features og komponenter, og tenkte at dette er jo null stress "det er jo bare enkel frontend kode🤡". Etter at pull requesten min hadde fått 54 kommentarer, hvor kanskje 10 av de omhandlet unødvendige UseEffects, skjønte jeg at dette kanskje ikke var den beste veien å gå.
Ved å copy-paste kode rett inn går man glipp av mye viktig forståelse og lærdom. AI følger heller generelt lite "best-practices", så kodekvaliteten blir rett og slett bare ganske rævva. Så skriv koden selv, men gjerne sparr med AI underveis.
AI i stedet for dokumentasjon
Vi må ofte forholde oss til ny teknologi på nye prosjekter, og det kan være lett å tenke at ChatGPT har full kunnskap om alle teknologier som finnes der ute. Min opplevelse er at hvis jeg spør AI om å hjelpe meg implementere noe med et nytt bibliotek eller en SDK, så foreslår den kode som ikke samsvarer med den nyeste versjonen. Den hallusinerer grensesnitt som ikke finnes, foreslår å bruke pakker som er deprecated, og har generelt null kontroll på hva den driver med. Så om du skal jobbe med en ny pakke eller et bibliotek, bare les den dumme dokumentasjonen, jeg lover deg at du faktisk til slutt kommer til å spare tid.
Antakelsen om at AI forstår prosjektet ditt
Om vi skal implementere en ny feature, eller ta noen arkitekturvalg, kunne man sikkert gjerne kan tenkte seg å sparre med AI. Her må vi holde tunga rett i munnen, og huske at AI-en ikke har helt oversikt over domenet ditt eller krav-spekken din. ChatGPT kan gjerne gi deg selvsikre svar som høres svært bra ut på papiret, men den har ikke noe kontekst for kunden din sine behov, teamets kompetanse, eller hvordan dere driver drift og vedlikehold. Ofte foreslår AI unødvendige komplekse løsninger, som ikke egentlig løser det faktiske problemet dere ønsker å løse i teamet. Heller bruk AI til å skissere alternativer og diskutere pro's and con's, men for all del, ta viktige valg sammen i teamet og ikke basert på hva en chatbot uten kontekst foreslår.
Oppsummering
Det kan raskt friste å benytte seg av AI verktøy for å føle at man kommer ovenpå som en nyutdannet utvikler, men vær så snill og vurder om dette faktisk er det lureste for deg og din egen utvikling. Bruk AI kalkulert, så gagner det deg i det lange løp.