Pomislite sami, ali želite, da vas AI nauči kodirati

Pomislite sami, ali želite, da vas AI nauči kodirati

Izvorno vozlišče: 3087147

Feature Učenje programiranja je z AI morda lažje kot kdaj koli prej, čeprav je treba orodja, ki vam predlagajo ali ustvarijo izvorno kodo, uporabljati pametno. 

Programiranje zahteva potrpljenje in vztrajnost, še posebej na začetku učnega procesa, ko nič nima smisla. Pravila za pisanje kode se zdijo zmedena. Obstajajo vse vrste ločil in simbolov, ki jih je treba uporabljati previdno. Manjkajoče dvopičje ali vejica ali napačna vdolbina lahko povzročijo napake, odvisno od uporabljenega jezika. Čez čas, z dovolj vaje, se zaskoči.

Kot večina začetnikov, ki se učijo kodiranja na spletu, sem začel z gledanjem vadnic in reševanjem problemov v sklopih programskih vaj. Ko sem se zataknil pri težavi, je bilo zelo mamljivo, da bi se obrnil na ChatGPT, ki bi mi zlahka pomagal najti pravo rešitev. Te vrste pomočnikov so dobre pri ustvarjanju preproste kode in nekateri od njih vam lahko celo dajo popoln odgovor, tako kot ga opisujete.

To sem ugotovil, ko sem se boril z implementacijo določene funkcije, in izklopil funkcijo samodokončanja GitHub Copilot v Visual Studio Code, da bi preprečil goljufanje.

Ne samo kopirajte in prilepite

David Malan, profesor računalništva na univerzi Harvard, ki poučuje CS50, priljubljen uvodni tečaj računalništva (ki se ga lahko udeležite brezplačno na spletu), so se strinjali, da je lahko umetna inteligenca včasih preveč v pomoč. 

Da bi študente odvrnili od uporabe orodij, kot sta OpenAI's ChatGPT ali Googlov Bard za dokončanje svojih nalog, so jim učitelji ponudili alternativo: virtualno gumijasto račko. CS50 duck je klepetalni bot za kodiranje, ki ga poganja GPT-4, vendar ima varovalne ograje, ki študentom preprečujejo varanje.

Odpravljanje napak z gumijasto račko, kot morda veste, je stvar pri razvoju programske opreme: če ste obtičali pri neki kodi, vam lahko pogovor o težavi z igračo ali drugim neživim predmetom pomaga, da sami poiščete rešitev. To je zelo učinkovito.

Razhroščevalnik CS50 duck je poklon temu: bot je bil zasnovan tako, da je prijazen in podpira, odgovarja le na poizvedbe, ki so povezane s tečajem, in ne ponuja odgovorov na težave z domačimi nalogami, je povedal Malan Register

»Naša politika na začetku tečaja je, da študenti ne smejo uporabljati programske opreme tretjih oseb, kot sta ChatGPT in Copilot; preprosto so nagnjeni k temu, da so preveč ustrežljivi, preveč pripravljeni ponuditi učencem rešitve neposredno, namesto da bi jih vodili k njim, kot bi lahko dober učitelj. Toda učencem je dovoljeno in spodbujano, da uporabljajo lastno programsko opremo CS50, ki temelji na AI, ki ima te pedagoške zaščitne ograje,« je dejal.

CS50 duck je bil predstavljen lani in povratne informacije so bile večinoma pozitivne. Imeti virtualnega mentorja pri roki pomeni, da lahko učenci kadar koli zaprosijo za pomoč. Toda kot vsi modeli AI lahko dela napake in ni vedno točen. Začetni testi so pokazali, da lahko pravilno odgovori na približno 88 odstotkov vprašanj, povezanih z učnim načrtom. 

Bot za kodiranje je uporaben tudi za inštruktorje; daje jim več časa za pomoč učencem na drugih področjih poleg domačih nalog. V raziskovalni nalogi [PDF] pri analizi vpliva račjega razhroščevalnika so učitelji na Harvardu povedali, da se je njihov poskus izdelave virtualnega pomočnika za kodiranje AI izplačal. Verjamejo, da "generativna umetna inteligenca [lahko] spodbuja učenje učencev, ne le moti", in iščejo načine, kako bi lahko tehnologijo uporabili pri drugih predmetih.

Prihranite čas z manj Googlanja

Kolikor je vredno, je moje akademsko ozadje fizika in znanstveno novinarstvo in ne računalništvo. Začel sem se učiti kodiranja, tik preden se je pojavila zadnja generacija klepetalnic. Prej sem poskušal razumeti koncepte programske opreme ali popraviti napake tako, da sem, kot mnogi ljudje, prebral objave v blogih ali iskal primere podobne kode na spletnih mestih, kot je Stack Overflow. AI mi omogoča, da ta proces skrajšam.

Namesto da prebiram množico informacij, da bi našel rešitve, ki najbolje ustrezajo moji težavi, se lahko zdaj za neposredno pomoč obrnem na velik jezikovni model. Učim se, da bi lahko bolje razumel tehnologije, ki jih uporabljajo drugi; ti digitalni pomočniki me pospešijo hitreje kot prebiranje več člankov o, na primer, rezinah v primerjavi z nizi, ali listanje programskih projektov drugih ljudi.

Strojno napisana koda pa ni vedno uporabna in je lahko znižati kakovost baze kode. Če bi kopiral in prilepil izhod pomočnika AI v svoj vir, bi pogosto povzročil nove napake, ker se ni ujemal s preostalim delom mojega programa. Poskus popravljanja teh napak je lahko težaven, še posebej, če ne razumete, kaj je bilo ustvarjeno. Kot začetniku ni bilo vedno jasno, ali so napake nastale zato, ker je bila koda preprosto napačna ali pa je bila uporabljena v napačnem kontekstu.

»Mislim, da bi se moral nekdo, če bi se želel naučiti kodirati [z uporabo trenutnih] orodij AI, k temu pristopiti z dvema ciljema: vzemite si čas in se naučite kodirati dovolj, da boste vedeli, kaj orodje ustvarja. [In] prevzame vlogo 'pregledovalca kode' in preuči, kako prepoznati in izboljšati slabo kodo,” Zed Shaw, razvijalec programske opreme in avtor knjige Spoznajte Python na težki način, povedal Register

Programerji bi morali biti sposobni odkriti napake v strojno izdelani kodi in robotom ne bi smeli popolnoma zaupati. »Dejstvo, da ChatGPT ponuja rešitve hitreje, zavite v pomirjujoče fraze, kot je 'Mislim, da bi to moralo rešiti vašo težavo ...«, omogoča, da izklopimo svoje kritično razmišljanje in o njegovih rešitvah ne dvomimo tako previdno, kot bi morali,« je dejal Charles Severance, profesor računalništva na šoli za informacije Univerze v Michiganu, ki ima sprosti brezplačni spletni tečaji kodiranja.

»Vedno predvidevajte, da je ChatGPT manj spreten programer kot vi. Edini varen način uporabe orodij AI je, ko ste prepričani, da je rešitev, ki jo ustvari, pravilna,« je dodal. 

Moraš vedeti, kaj delaš

Za učinkovito uporabo teh orodij morate razumeti svojo težavo in jo jasno razložiti v svojem pozivu. Kakovost kode, vrnjene v izhodu, je odvisna od tega, kako oblikujete svoja vprašanja v vhodu, je povedal Inbal Shani, produktni direktor pri GitHubu. Register.

Uporabniki bi morali komunicirati z Kopilot GitHub kot bi se pogovarjala s kolegom, je navrgla. »Več podrobnosti, kot boste pomočniku, ki sedi zraven vas, povedali, kaj nameravate, kam greste za problem, ki ga poskušate rešiti, boljši odziv boste dobili, ker AI dobi več konteksta. Ve, kako izvesti podrobnejše iskanje, da bi našel tisti pravi kos kode ali vam priporočil pravo infrastrukturo za testiranje,« je dejala. 

Programski jeziki, ki jih uporabljamo, so postali bolj usklajeni s človeškim jezikom; orodja za klepet so le naslednji korak v tem razvoju

Phillip Compeau, docent na univerzi Carnegie Mellon, ki je ustvaril Rosalind platformo in Programiranje za ljubitelje vadnica za ljudi, ki jih zanima računalniška biologija, dogovorjeno.

Ko poučuje študente, ki začenjajo kodirati, jih spodbuja, naj se izogibajo umetni inteligenci. Za naprednejše študente, ki poznajo osnove, pa jih uči, kako uporabljati tehnologijo, da bodo bolj produktivni in učinkoviti pri svojem delu.

»Ena od stvari, ki jih pokažem študentom, je, da je najboljši način za pridobitev čistega, pravilnega odgovora iz kode, ki generira orodje AI, če ste sposobni jasno in pravilno določiti, kaj točno mora računalnik narediti. To je sama definicija programiranja računalnika in sčasoma so programski jeziki, ki jih uporabljamo, postali bolj usklajeni s človeškim jezikom; orodja za klepet so le naslednji korak v tem razvoju,« je povedal Register

Pri kodiranju je ključnega pomena, da ugotovite, kaj želite, da vaš program počne, kako naj deluje in kje je šlo narobe. Te temeljne veščine lahko učenci razvijejo le sčasoma z dosledno prakso. Če želite biti kompetenten razvijalec programske opreme, tega postopka ne morete preskočiti z uporabo umetne inteligence. Toda če ga uporabljate pametno, se lahko hitro izboljšate in postanete dober programer – in morda bo celo zabavno. ®

Časovni žig:

Več od Register