Mlađi programer može da zatraži od AI asistenta da upotrebi nepoznatu biblioteku, dobije kod koji radi i pređe na sledeći zadatak. Funkcija može biti spremna pre nego što programer razume zašto radi. To je važno kada kod sledeći put zakaže, kada se zahtevi promene ili kada neko mora da odluči da li je bezbedno primeniti predlog asistenta.
Softverski inženjer Alexandru Nedelcu izneo je ovu zabrinutost u eseju od 22. septembra. On tvrdi da programeri razvijaju sposobnost prosuđivanja čitanjem koda, donošenjem odluka i suočavanjem s greškama. Njegovo predviđanje da će neke firme javno objaviti pravila protiv AI-ja jeste mišljenje, a ne zapažena promena u industriji. Zaseban eksperiment, objavljen u januaru, postavlja uže i proverljivo pitanje o učenju: šta su programeri razumeli neposredno nakon završetka zadatka uz pomoć AI-ja? Istraživanje kompanije Anthropic
Šta se suštinski menja
- Šta se promenilo: AI olakšava predaju gotovog softvera bez prethodnog razumevanja njegove logike. Može da ponudi gotovu implementaciju pre nego što početnik uvežba odluke potrebne da bi je objasnio ili popravio.
- Zašto je važno: Menadžeri danas mogu dobiti veći učinak, a da pritom oslabe put kojim mlađi zaposleni postaju ljudi sposobni da dijagnostikuju sutrašnje kvarove. Rizik je najveći kada zadatak uključuje nepoznate koncepte; pomoć pri poznatom radu i dalje može biti korisna.
- Na šta treba obratiti pažnju: Timovi mogu početi da posmatraju učenje kao deo isporuke i odvajati vreme za objašnjavanje, dijagnostiku i prilagođavanje rada uz pomoć AI-ja. Ako to urade, zadaci za zapošljavanje i proizvodi za programiranje mogli bi da vrednuju i pokazano razumevanje, a ne samo brzinu.
Završen zadatak i stečena veština nisu isti rezultat
U randomizovanom istraživanju sa 52 programera, učesnici su koristili nepoznatu Python biblioteku Trio za rešavanje dva zadatka programiranja. Polovina je u okruženju za programiranje imala AI asistenta, a druga polovina nije. Znali su da ih nakon toga čeka kviz. Ubrzo posle zadatka kviz je proveravao pojmove, čitanje koda i otklanjanje grešaka.
Grupa koja je koristila AI imala je prosečan rezultat 50%, u poređenju sa 67% u grupi koja je radila bez AI-ja: razlika od 17 procentnih poena, a ne relativni pad od 17%. Najveća razlika bila je u pitanjima o otklanjanju grešaka. Grupa koja je koristila AI u proseku je završila oko dva minuta brže, ali ta razlika u vremenu nije bila statistički značajna. Ovi rezultati odnose se na kratak susret sa jednom bibliotekom i neposrednu proveru, a ne na karijeru programera ili kvalitet produkcionog sistema. Rezultati i ograničenja istraživanja
Istraživači su pratili i kako su učesnici koristili asistenta. Neki su mu uglavnom prepuštali pisanje koda i otklanjanje grešaka, dok su drugi tražili objašnjenja ili sami razrađivali koncepte. Aktivniji obrasci uglavnom su bili povezani sa boljim rezultatima, ali su te male grupe određene naknadno. Učesnici su nasumično raspoređeni prema pristupu AI-ju, a ne prema konkretnom načinu komunikacije sa njim. Traženje objašnjenja može pomoći učeniku, ali ovo istraživanje ne dokazuje da određeni prompt ili postupak sprečava zaostatak u učenju. Analiza interakcija u radu
Greška je često trenutak kada početnik uči šta biblioteka podrazumeva. Ako asistent preuzme i početnu implementaciju i njenu popravku, programer možda neće ni videti neke od tih pretpostavki. To je jedno moguće objašnjenje razlike u pitanjima o otklanjanju grešaka.
Brzina je i dalje važna, a odgovor zavisi od zadatka
U drugim uslovima pomoć AI-ja takođe je ubrzala programiranje. U kontrolisanom eksperimentu sa GitHub Copilot-om, 95 profesionalnih frilensera dobilo je zadatak da napravi HTTP server u JavaScript-u. Među onima koji su završili, grupa koja je koristila Copilot prosečno je utrošila oko 71 minut, a kontrolna grupa oko 161 minut, što je skraćenje vremena izrade za 55,8%. Istraživači nisu proveravali šta su programeri posle naučili. To je bio ograničen zadatak implementacije, a ne upoznavanje sa nepoznatom bibliotekom praćeno proverom razumevanja.
Oba nalaza mogu biti korisna menadžeru. Ako iskusan programer koristi AI da ubrza ponavljajući posao, ušteda vremena može biti stvarna. Kada je cilj učenje novog sistema, ubrzanu izradu i dublje razumevanje treba proveravati odvojeno. Opšta zabrana AI-ja odbacila bi moguće koristi, a da ne odgovori na pitanje kako ljudi uče da nadziru takav rad.
Nedelcuov esej ide dalje od eksperimenta. On tvrdi da se održavanje koda procenjuje tokom meseci ili godina i da iskustvo raste kroz odgovornost za greške. Istraživanje ne meri dugoročnu održivost koda niti pokazuje da korisnici AI-ja potpuno prestaju da uče. Njegov koristan izazov tiče se organizacije rada: ako tim sve više prepušta AI-ju zadatke za vežbu, gde će budući stručnjaci za otklanjanje kvarova steći praksu? Nedelcuov esej
Dajte učeniku nešto da dokaže nakon što kod proradi
Jedan praktičan odgovor je da se početniku zada zadatak uz pomoć AI-ja, a zatim zatraži kratka samostalna provera pre nego što se rad smatra uspehom u učenju. Ovo je naš predlog vežbe, a ne intervencija koju je ispitalo bilo koje od dva istraživanja:
- Objasni: Bez pomoći asistenta opiši zašto nepoznati deo koda radi, na koje pretpostavke se oslanja i šta bi moglo da ga pokvari. Iskusniji inženjer može da postavi jedno potpitanje povezano sa konkretnom izmenom.
- Dijagnostikuj: U bezbednoj grani za testiranje izazovi malu, realističnu grešku. Neka učenik pronađe uzrok i objasni koje zapažanje je isključilo primamljivu, ali pogrešnu popravku. Cilj je rasuđivanje, a ne pamćenje komande.
- Prilagodi: Promeni zahtev, pa zatraži od učenika da izmeni implementaciju i testove. Može da koristi AI, ali treba da obrazloži novo ponašanje i navede šta još treba da proveri.
Na primer, nakon što asistent napiše novu asinhronu operaciju, recenzent može da pita šta se dešava ako se ona otkaže na pola. Programer treba da ume da isprati izvršavanje i testira izmenjeni zahtev. Sam pregled koda mogao bi da otkrije grešku, a da učenik i dalje ne ume da se nosi sa sledećom. Predložena provera pita da li znanje ide uz isporučeni kod.
Ne mora svaki rutinski zadatak da se pretvori u ispit. Tim može da sačuva vežbu za rad sa nepoznatim bibliotekama, česte vrste kvarova ili zadatke za koje se očekuje da ih mlađi kolega kasnije preuzme. To zahteva plaćeno vreme i recenzenta koji poznaje sistem. Ako rukovodstvo računa samo spojene izmene i ušteđeno vreme, ti troškovi mogu prvi biti ukinuti. Time bi se otežalo rešavanje problema obuke čak i ako se današnji učinak poveća.
Pitanje stručnog razvoja tiče se zapošljavanja i dizajna proizvoda
Mlađe uloge često povezuju isporuku rezultata sa praksom pod nadzorom. AI menja taj dogovor kada kandidat može da pokaže impresivnu gotovu funkciju, a da ne pokaže kako je do nje došao. Poslodavci bi mogli da traže od kandidata da objasni i izmeni mali deo rada, umesto da uglađen repozitorijum tretiraju kao dokaz samostalne veštine. To je predlog za zapošljavanje, a ne dokaz aktuelnog trenda. Treba proveravati sposobnosti koje su zaista potrebne za ulogu, a ne zahtevati da svaki kandidat radi bez alata.
Proizvodi za programiranje suočeni su sa sličnim izborom. Asistent može da optimizuje brze odgovore ili da olakša pregled pretpostavki, postavljanje pitanja o konceptima i isprobavanje izmene pre nego što otkrije rešenje. Uočeni obrasci interakcije u istraživanju čine drugu mogućnost vrednom isprobavanja, iako ne dokazuju da određeni interfejs bolje podučava. Za poslodavce je odgovarajuće pitanje pri kupovini da li alat pomaže zaposlenima da nauče da pregledaju i menjaju njegov izlaz, a ne samo koliko koda generiše.
Kratak kviz ne može da nam kaže ko će za pet godina postati stručnjak. Pokazuje, međutim, zašto prihvaćena implementacija nije dobra zamena za dokaz razumevanja pri radu sa nepoznatim zadatkom. Timovi koji žele i automatizaciju i sposobnu novu generaciju moraju da omoguće vežbu i provere šta ljudi mogu da urade kada se odgovor promeni.



