Tænk selv, hvis du vil have AI til at lære dig at kode

Tænk selv, hvis du vil have AI til at lære dig at kode

Kildeknude: 3087147

Feature At lære at programmere er måske nu nemmere end nogensinde med AI, selvom de værktøjer, der foreslår eller genererer kildekode til dig, skal bruges med omtanke. 

Programmering kræver tålmodighed og vedholdenhed, især i starten af ​​læringsprocessen, hvor intet giver meget mening. Reglerne for at skrive kode virker forvirrende. Der er alle mulige slags tegnsætningstegn og symboler, der skal bruges med omhu. Manglende kolon eller komma, eller ødelægge indrykningen kan føre til fejl, afhængigt af det anvendte sprog. Over tid, med nok øvelse, klikker det på plads.

Som de fleste begyndere, der lærte at kode online, startede jeg med at se tutorials og løse problemer i sæt programmeringsøvelser. Da jeg gik i stå i et problem, var det meget fristende at henvende mig til ChatGPT, som nemt ville hjælpe mig med at springe til den rigtige løsning. Disse typer assistenter er gode til at generere simpel kode, og nogle af dem kan endda give dig et komplet svar, lige som du beskriver det.

Jeg indså dette, da jeg kæmpede med implementeringen af ​​en bestemt funktion, og deaktiverede GitHub Copilots autofuldførelsesfunktion i Visual Studio Code for at forhindre mig i at snyde.

Du skal ikke bare kopiere og indsætte

David Malan, professor i datalogi ved Harvard University, der underviser i CS50, et populært introduktionskursus i datalogi (som kan tages gratis online), enige om, at AI nogle gange kan være lidt for hjælpsom. 

For at afholde eleverne fra at bruge værktøjer som OpenAIs ChatGPT eller Googles Bard til at udføre deres opgaver, tilbød lærerne dem et alternativ: en virtuel gummiand. CS50-anden er en kodende chat-bot drevet af GPT-4, men har autoværn på plads for at forhindre elever i at snyd.

Gummi-and-fejlretning, som du måske er klar over, er en ting i softwareudvikling: Hvis du sidder fast på en eller anden kode, kan det hjælpe dig med at finde ud af løsningen helt alene, hvis du taler om problemet med et eller andet legetøj eller et andet livløst objekt. Det er ret effektivt.

CS50 duck debuggeren er en hyldest til det: botten er blevet klaret til at være venlig og støttende, den svarer kun på forespørgsler, der er relateret til kurset, og giver ikke svar på lektieproblemer, fortalte Malan Registret

“Vores politik ved kursets start er, at studerende ikke må bruge tredjepartssoftware som ChatGPT og Copilot; de har simpelthen en tendens til at være for hjælpsomme, alt for villige til at give eleverne løsninger direkte i stedet for at guide dem hen imod dem, som en god lærer måske. Men eleverne får lov og opfordres til at bruge CS50s egen AI-baserede software, som har de pædagogiske rækværk på plads,” sagde han.

CS50-anden blev introduceret sidste år, og tilbagemeldingen har for det meste været positiv. At have en virtuel vejleder ved hånden betyder, at eleverne kan bede om hjælp, når som helst, de ønsker det. Men som alle AI-modeller kan den lave fejl og er ikke altid nøjagtig. Indledende test viste, at den var i stand til at besvare omkring 88 procent af spørgsmålene relateret til læseplanen korrekt. 

Kodningsbotten er også nyttig for instruktører; det giver dem mere tid til at hjælpe eleverne på andre områder end lektier. I en forskningsartikel [PDF] ved at analysere duck debuggerens indvirkning sagde lærere på Harvard, at deres eksperiment med at bygge en virtuel AI-kodningsassistent har givet pote. De mener, at "generativ AI [kan] styrke elevernes læring, ikke blot forstyrre den," og kigger på, hvordan teknologien kan anvendes i andre fag.

Spar tid med mindre google

For hvad det er værd, er min akademiske baggrund inden for fysik og videnskabsjournalistik, og ikke datalogi. Jeg begyndte at lære at kode lige før den seneste generation af chatbots tog fart. Tidligere ville jeg prøve at forstå softwarekoncepter eller rette fejl ved, som mange mennesker, at læse blogindlæg eller søge efter eksempler på lignende kode på sider som Stack Overflow. AI giver mig mulighed for at genveje denne proces.

I stedet for at gennemsøge masser af information for at finde løsninger, der bedst matcher mit problem, kan jeg nu henvende mig til en stor sprogmodel for at få direkte hjælp. Jeg lærer, så jeg bedre kan forstå de teknologier, som andre bruger; disse digitale assistenter får mig hurtigere op at køre end at gennemsøge flere artikler om f.eks. skiver versus arrays eller bladre i andres softwareprojekter.

Maskinskrevet kode er dog ikke altid nyttig og kan sænke kvaliteten af en kodebase. Hvis jeg kopierede og indsatte en AI-assistents output i min kilde, ville det ofte introducere nye fejl, fordi det ikke passede med resten af ​​mit program. Det kan være vanskeligt at prøve at rette disse fejl, især hvis du ikke forstår, hvad der er blevet genereret. Som nybegynder var det ikke altid klart, om fejlene skyldtes, at koden simpelthen var forkert, eller om den blev brugt i den forkerte kontekst.

"Jeg tror, ​​at hvis nogen ville lære at kode [ved at bruge den nuværende] afgrøde af AI-værktøjer, skulle de nærme sig det med to mål: Tag dig tid til at lære at kode nok til at vide, hvad værktøjet genererer. [Og] indtag rollen som 'kodeanmelder' og undersøg, hvordan man identificerer og forbedrer dårlig kode,” Zed Shaw, en softwareudvikler og forfatter til Lær python på den hårde vej, Fortalte Registret

Programmører bør være i stand til at opdage fejl i maskinfremstillet kode og bør ikke stole fuldstændigt på bots. "Det faktum, at ChatGPT giver løsninger hurtigere pakket ind i beroligende sætninger som "Jeg tror, ​​det her burde løse dit problem..." gør det så vi slukker for vores kritiske tænkning, og vi stiller ikke spørgsmålstegn ved dets løsninger så omhyggeligt, som vi burde, sagde Charles Severance, en professor i datalogi ved University of Michigan's School of Information, som har frigivet gratis kodningskurser online.

"Antag altid, at ChatGPT er en mindre dygtig programmør, end du er. Den eneste sikre måde at bruge AI-værktøjer på er, når du er sikker på, at den løsning, den producerer, er korrekt," tilføjede han. 

Du skal vide, hvad du laver

For at bruge disse værktøjer effektivt skal du forstå dit problem og forklare det tydeligt i din prompt. Kvaliteten af ​​den kode, der returneres i outputtet, afhænger af den måde, du formulerer dine spørgsmål i inputtet, fortalte Inbal Shani, Chief Product Officer hos GitHub, Registret.

Brugere bør interagere med GitHub Copilot som om de talte med en kollega, foreslog hun. "Jo flere detaljer du giver den assistent, der sidder ved siden af ​​dig om, hvad din hensigt er, hvor du vil hen med det problem, du prøver at løse, jo bedre respons får du, fordi AI'en får mere kontekst. Den ved, hvordan man laver en mere detaljeret søgning for at finde det rigtige stykke kode eller anbefale den rigtige testinfrastruktur til dig,” sagde hun. 

De programmeringssprog, vi bruger, er blevet mere tilpasset det menneskelige sprog; chatværktøjer er blot det næste skridt i denne udvikling

Phillip Compeau, en assisterende lærer ved Carnegie Mellon University, som skabte Rosalind platform og Programmering for elskere tutorial, for folk interesseret i beregningsbiologi, aftalt.

Når han underviser elever, der begynder at kode, opfordrer han dem til at holde sig væk fra AI. Men for mere avancerede studerende, der kender det grundlæggende, lærer han dem, hvordan de bruger teknologien til at være mere produktive og effektive i deres arbejde.

"En af de ting, jeg viser eleverne, er, at den bedste måde at få et rent, korrekt svar fra et AI-værktøj, der genererer kode, er, hvis du er i stand til klart og korrekt at specificere præcis, hvad computeren skal gøre. Det er selve definitionen af ​​at programmere en computer, og med tiden er de programmeringssprog, vi bruger, blevet mere tilpasset det menneskelige sprog; chatværktøjer er bare det næste skridt i denne udvikling,” fortalte han Registret

At finde ud af, hvad du vil have dit program til at gøre, hvordan det skal fungere, og hvor det er gået galt, er afgørende i kodningen. Elever kan kun opbygge disse kernefærdigheder over tid med konsekvent praksis. Du kan ikke springe denne proces over ved at stole på AI, hvis du vil være en kompetent softwareudvikler. Men hvis du bruger det fornuftigt, kan du hurtigt forbedre dig og blive en god programmør – og måske bliver det endda sjovt. ®

Tidsstempel:

Mere fra Registret