Tänk själv om du vill att AI ska lära dig hur man kodar

Tänk själv om du vill att AI ska lära dig hur man kodar

Källnod: 3087147

Leverans Att lära sig programmera är kanske nu enklare än någonsin med AI, även om verktygen som föreslår eller genererar källkod åt dig måste användas på ett klokt sätt. 

Programmering kräver tålamod och uthållighet, särskilt i början av inlärningsprocessen när ingenting är vettigt. Reglerna för att skriva kod verkar förvirrande. Det finns alla möjliga skiljetecken och symboler som måste användas försiktigt. Att missa ett kolon eller ett kommatecken, eller att förstöra indraget kan leda till fel, beroende på vilket språk som används. Med tiden, med tillräckligt med övning, klickar den på plats.

Liksom de flesta nybörjare som lärde sig koda online började jag med att titta på handledningar och lösa problem i uppsättningar av programmeringsövningar. När jag fastnade för ett problem var det väldigt frestande att vända mig till ChatGPT, som lätt skulle hjälpa mig att komma till rätt lösning. Dessa typer av assistenter är bra på att generera enkel kod, och vissa av dem kan till och med ge dig ett komplett svar precis som du beskriver det.

Jag insåg detta när jag brottades med implementeringen av en viss funktion och stängde av GitHub Copilots autokompletteringsfunktion i Visual Studio Code för att stoppa mig själv från att fuska.

Kopiera och klistra inte bara

David Malan, en professor i datavetenskap vid Harvard University som undervisar i CS50, en populär introduktionskurs i datavetenskap (som kan tas gratis nätet), höll med om att AI kan vara lite för hjälpsamt ibland. 

För att avskräcka elever från att använda verktyg som OpenAIs ChatGPT eller Googles Bard för att slutföra sina uppgifter, erbjöd lärare dem ett alternativ: en virtuell gummianka. CS50-ankan är en kodande chat-bot som drivs av GPT-4 men har skyddsräcken på plats för att hindra elever från att fusk.

Gummianka felsökning, som du kanske är medveten om, är en sak inom mjukvaruutveckling: om du har fastnat i någon kod kan det hjälpa dig att hitta lösningen helt själv genom att prata om problemet med någon leksak eller annat livlöst föremål. Det är ganska effektivt.

CS50 duck-debuggern är en hyllning till det: boten har gjorts för att vara vänlig och stödjande, den svarar bara på frågor som är relaterade till kursen och ger inte svaren på läxproblem, berättade Malan Registret

”Vår policy vid kursstart är att studenter inte får använda tredjepartsprogramvara som ChatGPT och Copilot; de tenderar helt enkelt att vara för hjälpsamma, alltför villiga att ge eleverna lösningar direkt i stället för att vägleda dem mot dem, som en bra lärare kanske. Men studenter tillåts och uppmuntras att använda CS50:s egen AI-baserade programvara, som har de pedagogiska skyddsräckena på plats, säger han.

CS50-ankan introducerades förra året, och feedbacken har till största delen varit positiv. Att ha en virtuell handledare till hands innebär att eleverna kan be om hjälp när som helst de vill. Men som alla AI-modeller kan den göra misstag och är inte alltid korrekt. De första testerna visade att den kunde svara på cirka 88 procent av frågorna relaterade till läroplanen korrekt. 

Kodningsboten är också användbar för instruktörer; det ger dem mer tid att hjälpa elever på andra områden än läxor. I en forskningsartikel [PDF] när de analyserade ankafelsökarens inverkan sa lärare vid Harvard att deras experiment med att bygga en virtuell AI-kodningsassistent har lönat sig. De tror att "generativ AI [kan] stärka elevernas lärande, inte bara störa det", och tittar på hur tekniken kan tillämpas i andra ämnen.

Spara tid med mindre googling

För vad det är värt är min akademiska bakgrund inom fysik och vetenskapsjournalistik, och inte datavetenskap. Jag började lära mig hur man kodar precis innan den senaste generationen chatbots tog fart. Tidigare skulle jag försöka förstå mjukvarukoncept eller fixa buggar genom att, som många andra, läsa blogginlägg eller söka efter exempel på liknande kod på sajter som Stack Overflow. AI låter mig genväga denna process.

Istället för att sålla igenom massor av information för att hitta lösningar som bäst matchar mitt problem, kan jag nu vända mig till en stor språkmodell för direkt hjälp. Jag lär mig så att jag bättre kan förstå den teknik som andra använder; dessa digitala assistenter får mig att komma igång snabbare än att läsa flera artiklar om, säg, skivor kontra arrayer, eller bläddra i andras programvaruprojekt.

Maskinskriven kod är dock inte alltid användbar och kan sänka kvaliteten av en kodbas. Om jag kopierade och klistrade in en AI-assistents utdata i min källa, introducerade den ofta nya fel eftersom den inte passade med resten av mitt program. Att försöka åtgärda dessa misstag kan vara knepigt, speciellt om du inte förstår vad som har genererats. Som nybörjare var det inte alltid klart om felen berodde på att koden helt enkelt var fel eller om den användes i fel sammanhang.

"Jag tror att om någon ville lära sig att koda [med den nuvarande] skörden av AI-verktyg, borde de närma sig det med två mål: Ta dig tid att lära sig att koda tillräckligt för att veta vad verktyget genererar. [Och] ta rollen som "kodgranskare" och studera hur man identifierar och förbättrar dålig kod," Zed Shaw, en mjukvaruutvecklare och författare till Lär dig Python på det hårda sättet, Berättade Registret

Programmerare bör kunna upptäcka fel i maskingjord kod och bör inte lita på botarna helt. "Det faktum att ChatGPT ger lösningar snabbare inlindade i lugnande fraser som "Jag tror att det här borde lösa ditt problem..." gör det så att vi stänger av vårt kritiska tänkande och vi ifrågasätter inte lösningarna så noggrant som vi borde, säger Charles Severance, en professor i datavetenskap vid University of Michigans School of Information, som har frigörs gratis kodningskurser online.

"Anta alltid att ChatGPT är en mindre skicklig programmerare än du är. Det enda säkra sättet att använda AI-verktyg är när du är säker på att lösningen som den producerar är korrekt, tillade han. 

Du måste veta vad du gör

För att använda dessa verktyg effektivt måste du förstå ditt problem och förklara det tydligt i din prompt. Kvaliteten på koden som returneras i utdata beror på hur du ramar in dina frågor i inmatningen, berättade Inbal Shani, produktchef på GitHub. Registret.

Användare bör interagera med GitHub Copilot som om de pratade med en kollega, föreslog hon. "Ju mer detaljer du ger den assistenten som sitter bredvid dig om vad din avsikt är, vart du är på väg för problemet du försöker lösa, desto bättre respons kommer du att få eftersom AI:n får mer sammanhang. Den vet hur man gör en mer detaljerad sökning för att hitta rätt kod eller rekommendera rätt testinfrastruktur för dig”, sa hon. 

De programmeringsspråk vi använder har blivit mer anpassade till det mänskliga språket; chattverktyg är bara nästa steg i denna utveckling

Phillip Compeau, en biträdande lärare vid Carnegie Mellon University, som skapade Rosalind plattform och Programmering för älskare handledning, för personer intresserade av beräkningsbiologi, överens om.

När han undervisar elever som börjar koda uppmuntrar han dem att hålla sig borta från AI. Men för mer avancerade elever som kan grunderna lär han dem hur man använder tekniken för att bli mer produktiva och effektiva i sitt arbete.

"En av de saker som jag visar eleverna är att det bästa sättet att få ett rent, korrekt svar från ett AI-verktyg som genererar kod är om du kan tydligt och korrekt specificera exakt vad datorn behöver göra. Det är själva definitionen av att programmera en dator, och med tiden har de programmeringsspråk vi använder blivit mer anpassade till det mänskliga språket; chattverktyg är bara nästa steg i denna utveckling”, sa han Registret

Att ta reda på vad du vill att ditt program ska göra, hur det ska fungera och var det har blivit fel, är avgörande för kodning. Elever kan bara bygga upp dessa kärnfärdigheter över tid med konsekvent övning. Du kan inte hoppa över denna process genom att förlita dig på AI om du vill vara en kompetent mjukvaruutvecklare. Men om du använder det klokt kan du snabbt förbättra dig och bli en bra programmerare – och kanske blir det till och med roligt. ®

Tidsstämpel:

Mer från Registret