Evnen til å søke tilbakemelding og lære fra andre er en uerstattelig ferdighet som vil akselerere din vekst som utvikler. En kunstig intelligens (AI) vil ikke ta det ille opp om du overser dens råd, men menneskelige kolleger og mentorer er uvurderlige for din utvikling—spesielt når det gjelder myke ferdigheter, lederskap, kommunikasjon og håndtering av teamdynamikk. Vær ikke redd for å spørre en senior utvikler hvorfor de foretrekker en løsning fremfor en annen, spesielt dersom det er en forskjell fra hva en AI har foreslått. Diskuter designbeslutninger og kompromisser med mer erfarne kolleger—disse samtalene viser hvordan erfarne ingeniører tenker, og det er gull for din egen utvikling.
I kodegjennomganger er det viktig å være ekstra mottakelig for kommentarer om AI-generert kode. Hvis en gjennomgangsleser påpeker at «denne funksjonen ikke er tråd-sikker» eller «denne tilnærmingen vil ha skaleringsproblemer», bruk tid på å forstå årsaken til problemet. Dette er akkurat de typene feil AI kan overse, og du vil lære å oppdage dem selv. Over tid vil du bygge en mental sjekkliste over viktige hensyn.
Videre, finn muligheter til å jobbe sammen med en mer erfaren utvikler, selv om det er på avstand. Kanskje du kan «par-programmere» med en senior utvikler som bruker AI i sitt arbeidsflyt—du vil observere hvordan de prompt’er AI, hvordan de retter opp feil og, enda viktigere, hvordan de kommuniserer, leder diskusjoner og håndterer teamdynamikk. Å være åpen for tilbakemelding og aktivt be om veiledning vil hjelpe deg å utvikle deg fra å gjøre oppgaver som AI kan utføre, til å utføre de høyt verdsatte oppgavene som kun mennesker kan gjøre. Du prøver å tilegne deg visdommen som vanligvis kommer med erfaring, så raskt som mulig. På denne måten blir du mer enn bare en utvikler i rommet—du blir typen ingeniør som teamene er ivrige etter å beholde og fremme.
Utvikling av programvare er et lagarbeid. AI deltar ikke på møter (heldigvis)—mennesker må fortsatt kommunisere med hverandre for å avklare krav, diskutere kompromisser og koordinere arbeidet. Sterke kommunikasjonsevner er fortsatt like viktige som før. Øv på å stille gode spørsmål og beskrive problemer klart (både til kolleger og til AI). Interessant nok er det å bruke AI selv en form for kommunikasjon; det krever at du uttrykker nøyaktig hva du ønsker. Dette overlapper med en kjernedyktighet innen ingeniørfaget: kravanalyse. Hvis du kan formulere en klar prompt eller spesifikasjon, betyr det at du har tenkt gjennom problemet. Å dele kunnskap, skrive dokumentasjon og gjennomgå andres kode er samarbeidsferdigheter som AI ikke kan erstatte. I fremtiden, når utviklere jobber «med» AI, forblir samarbeidet mellom mennesker i et team—og sørge for at de riktige problemene blir løst—helt avgjørende. En fremvoksende trend er at utviklere kanskje fokuserer mer på høynivå designbeslutninger (ofte med AI som deltaker) og på å koordinere oppgaver, og i bunn og grunn ta på seg mer av en dirigentrolle. Kommunikasjons- og ledelsesevner vil være svært nyttige i denne rollen som dirigent.
Et viktig skifte i tankegang for juniorutviklere i en AI-drevet verden er at du må bevege deg fra å bare konsumere løsninger til å skape forståelse. Tidligere kunne du ha slitt gjennom dokumentasjon for å til slutt skrive en funksjon; nå kan AI gi deg en løsning på et sølvfat. Hvis du bare konsumerer den (kopierer og limer inn løsningen uten videre), har du ikke vokst mye. Bruk i stedet hver løsning som AI gir som et læringstilfelle. Analyser den, eksperimenter med den, og vurder hvordan du kanskje kunne ha kommet frem til den selv. Ved å behandle AI-utsagn ikke som svarene som avslutter alle spørsmål, men som interaktive læringsmaterialer, sikrer du at du—mennesket—fortsetter å utvikle deg. På denne måten, i stedet for å erstatte din vekst, akselererer AI den.
Mange eksperter mener at selv om AI kan redusere behovet for store team av junior «kodegrinders», hever det også nivået for hva det betyr å være en junior utvikler. Rollen har skiftet til en person som kan jobbe effektivt med AI og raskt klatre opp verdikjeden. Hvis du adopterer de vanene som er diskutert her, vil du skille deg ut som en junior utvikler som ikke bare bringer det AI kan bringe (hvilket ethvert selskap kan få via et abonnement), men som også bringer innsikt, pålitelighet og kontinuerlig forbedring—egenskaper som definerer en fremtidig senior utvikler.
For å trives i en AI-forsterket utviklingsverden bør utviklere på alle nivåer fokusere på de varige ferdighetene og praksisene som AI ennå ikke kan replikere. Disse ferdighetene vil forbli avgjørende uansett hvor avanserte verktøyene våre blir. I særdeleshet bør du fokusere på å styrke din systemdesign og arkitekturkompetanse, praktisere systemtenkning og opprettholde en kontekstuell forståelse av det store bildet. Videre er ferdigheter som kritisk tenkning, problemløsning og langsiktig tenkning fortsatt essensielle for å utvikle kvalitetsløsninger. Spesialisert kunnskap og ferdigheter innen kodegjennomgang, testing, feilsøking og kvalitetssikring vil forbli fundamentale for din rolle som utvikler.
AI er et verktøy for de dyktige: «LLM-er er kraftverktøy ment for kraftbrukere». Dette betyr at det er opp til hver av oss å bli den «kraftbrukeren»—å dyrke ekspertisen som gjør at vi kan bruke disse nye verktøyene på en effektiv måte. Programvareutvikling er mer enn å skrive kode som fungerer; det handler om å skrive kode som fungerer godt—i et reelt miljø, over tid, og under stadig skiftende krav. Dagens AI-modeller kan hjelpe til med å skrive kode, men de kan ikke ennå sikre at koden fungerer godt i alle disse dimensjonene. Det er utviklerens jobb.
Hvordan bruke AI til iterativ prototyping og kodeforbedring
Iterativ prototyping er en kraftig tilnærming når man utvikler apper og løsninger, og AI kan spille en avgjørende rolle i å akselerere denne prosessen. I stedet for å kode alt manuelt og vente på resultater, kan utviklere bruke AI til å gi raske tilbakemeldinger og forbedre prototypene sine kontinuerlig. Denne prosessen kan sammenlignes med en samtale der AI hjelper til med å tilpasse og finjustere løsningen basert på utviklerens tilbakemeldinger.
De fleste AI-prototypingverktøy har en innebygd historikk eller kontekst, som gjør at AI-en kan huske hva appens formål er og hvilke tidligere instruksjoner som er gitt. Dette er ekstremt nyttig, ettersom utvikleren slipper å gjenta informasjonen om og om igjen, og samtalen med AI-en fungerer som en kontinuerlig utviklingslogg. For å illustrere dette, la oss gå gjennom et typisk iterativt forbedringsforløp:
Steg 1: Initial generering
Utvikleren gir et prompt for å generere prototypen, for eksempel: "Lag en enkel utgiftsregistreringsapp med et skjema for å legge til utgifter og en tabell for å liste dem." AI-en genererer da grunnkoden for appen.
Steg 2: Gjennomgang og kjøring av koden
Utvikleren kjører koden og tester appen. Kanskje fungerer den, men det er noen områder som kan forbedres. For eksempel kan UI-en være funksjonell, men litt kjedelig, eller tabellen kanskje ikke har sortering av utgiftene.
Steg 3: Forbedre promptene
Steg 4: Gjenta prosessen
Etter hver forbedring sjekker utvikleren resultatet. Hvis AI-en har introdusert et nytt problem eller ikke har gjort det som var ønsket, kan utvikleren gi ytterligere instruksjoner: "Sorteringen er baklengs – vennligst sorter stigende som standard." Eller "Den nye fargepaletten er bra, men gjør overskriften mørk blå i stedet for svart." Hver iterasjon går raskt, ofte på bare noen sekunder, og dette gjør at utvikleren kan gå gjennom dusinvis av iterasjoner på kort tid. Sammenlignet med manuell koding og testing av endringene, kan AI-tilnærmingen være betydelig raskere.
Det er viktig å merke seg at klar og presis kommunikasjon er essensielt for at AI-en skal gjøre de ønskede endringene korrekt. For eksempel, å si "Gjør det finere" er vagt. En mer spesifikk prompt gir AI-en en konkret retning: "Bruk et lyst tema med blå overskrift og øk skriftstørrelsen for bedre lesbarhet." For verktøy som Vercel v0 eller Lovable kan utvikleren til og med peke på en del av UI-en og si, "Endre dette til X."
Et eksempel på en kort samtale mellom en utvikler og en AI-kodeassistent kan være som følger:
Utvikler: "Generer en React-komponent for en oppgaveliste. Den skal vise en liste med oppgaver og et tekstfelt for å legge til nye oppgaver."
AI-en genererer en React-komponent med tilstand for oppgavene, og viser en liste, et input-felt og en knapp for å legge til oppgaver.
Utvikler: "Bra, nå gjør at hver oppgave kan redigeres og legg til en avkrysningsboks for å markere den som fullført."
AI-en oppdaterer koden, slik at hver oppgave får en avkrysningsboks og en redigeringsfunksjon, og tilstanden blir oppdatert tilsvarende.
Utvikler: "Men det mangler en sletteknapp for hver oppgave."
AI-en legger til en slett-funksjon i koden.
Utvikler: "Oppsettet er litt tett. Legg til litt grunnleggende CSS for å gi mer avstand mellom listeelementene og gjør skriften litt større."
AI-en genererer passende CSS-styling, og kan justere skriftstørrelse og mellomrom for bedre visuell klarhet.
Det som er bemerkelsesverdig med denne prosessen, er hvordan AI-en, ved å forstå konteksten av tidligere instruksjoner og pågående samtaler, kan gjøre justeringer raskt og presist, ofte i rett del av koden.
Det som er viktig å forstå, er at denne iterasjonen ikke bare handler om å lage kode raskt. Det handler også om å lære å kommunisere effektivt med AI-en. En god prompt kan gjøre forskjellen på om AI-en leverer den ønskede funksjonaliteten eller ikke. Klare instruksjoner og presis tilbakemelding er avgjørende for å oppnå et tilfredsstillende resultat.
Hvordan Store Malerier Forteller Historier Gjennom Tidene
Hvordan en enkel ring kan endre alt: Historien om John Belman og de uuttalte ordene
Hvordan programvarekomponenter kan gjenbrukes ved hjelp av SoftText og SoftClass
Hvordan lage en perfekt gryterett med biff og vin: En klassisk Provence-oppskrift

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский