17. 01. 2024.

Vještine programiranja u doba generativne umjetne inteligencije

Je li Generativna umjetna inteligencija odgovor na problem nedostatka digitalnih vještina na tržištu rada? Dr. Rajagopal istražuje kako GENAI mijenja naše vještine programiranja

Umjetna inteligencija poddisciplina umjetne inteligencije bavi se aplikacijama u kojima računalo simulira ljudsku sposobnost stvaranja i proizvodnje – bilo da je riječ o ljudskom jeziku ili ljudskim kreativnim izrazima (kao što su crtanje, skladanje glazbe itd.). Najbolji primjer Generativne umjetne inteligencije koja je nedavno stvarala valove je ChatGPT, model velikih jezika (LLM) s kojim korisnici mogu komunicirati na prirodnom jeziku. Jedno područje u kojem Generativna umjetna inteligencija posebno obećava skriva se u načinu na koji pišemo naš softverski kod. Ovaj članak bavi se mogućnostima koje Generativna umjetna inteligencija stvara kako bi podržala ovaj proces razvoja softvera – i njezinim potencijalom da otvori putove za pisanje softverskog koda većem broju ljudi nego ikad prije. Zajedno s prilikama koje otvaraju, u ovom se radu razmatraju i rizici upotrebe alata podržanih GENAI-jem uz smanjenje ljudskog nadzora te ukazuje na moguće horizonte za istraživanje želimo li postići uravnoteženiju upotrebu kojom se uzimaju u obzir naše temeljne vrijednosti EU-a. 

Uvod

Generativna umjetna inteligencija, poddisciplina umjetne inteligencije, bavi se aplikacijama u kojima računalo simulira ili pokušava oponašati ljudsku sposobnost stvaranja i proizvodnje na ljudskom jeziku i ljudskom kreativnom izražavanju – poput crtanja ili skladanja glazbe (Stkel-Walker & Van Noorden, 2023.). Jedan od primjera Generativne umjetne inteligencije koja u posljednje vrijeme stvara valove je ChatGPT, model velikog jezika (LLM) s kojim korisnici mogu komunicirati tipkanjem. Izvedba ovog LLM-a začudila je mnoge istraživače i širu javnost o tome kako „stvarne” interakcije mogu biti (Maslejet al., 2023.).

Interes za taj oblik umjetne inteligencije raste već nekoliko desetljeća, a temeljna istraživanja dobro su razvijena (Reiter & Dale, 1997.; Kandhasamy & Xie, 2004.). Međutim, aplikacije su i dalje ograničene, s malim algoritmom za dokazivanje koncepta prvenstveno u istraživanju, uglavnom zbog nedostatka računalne snage ili nedovoljne količine podataka o osposobljavanju, potrebnih za uvođenje tehnologije kvalitete kvalitete (Masleji dr., 2023.). To se posljednjih godina promijenilo. U razdoblju od 2015. do 2016. došlo je do kretanja za udruživanje resursa i izgradnju sustavnih velikih skupova podataka i modela, uz koordinirane napore u industriji kao što su OpenAI (osnovana 2015.) i HuggingFace (osnovana 2016.). Od kraja 2022. zrelost tih tehnologija doživjela je golem porast zbog usklađivanja računalne snage, zrelih algoritama i dostatnih podataka.

Jedno od područja u kojima je Generativna umjetna inteligencija vrlo obećavajuća je u području pisanja softverskog koda. Mnogi inženjeri već zapošljavaju GENAI kako bi im pomogli u kodiranju (Sharma, 2021.). Jednostavan ljudski tekst omogućuje im da napišu složeni kod u sekundi, potencijalno ubrzavajući njihovo kodiranje i programiranje (Brady, 2023.). U Generativnim alatima umjetne inteligencije mogu se dati tekstualne upute (brzine) kako bi se umjetnoj inteligenciji uputilo da napiše kod kako bi se stvorile određene funkcionalnosti. Kao rezultat toga, korisnik takvog alata može komunicirati u konkretnijem prirodnom jeziku, bez potrebe za poznavanjem pojedinosti jezika kodiranja. Generativna umjetna inteligencija mogla bi na ograničen način i uz relevantne upute generirati korake u logici aplikacije, definirajući opću strukturu algoritma.

Naravno, to postavlja mnoga pitanja o tome kako ćemo pisati naš softver u budućnosti, i što će biti vještine potrebne za to. Ovaj sljedeći dio ovog članka zadire dublje u ovo pitanje.

Razvojni programeri za tržište rada EU-a

Već dugi niz godina nedostaje kvalificiranih radnika u digitalnoj industriji. U studiji Europskog saveza za softverske vještine iz 2021. uloga „developera” utvrđena je kao uloga softvera na zahtjev te se u njoj navodi da se ta uloga stalno mijenja kao razlog tog nedostatka. Ključne vještine programera su programiranje i kodiranje, dvije discipline u kojima se sadržaj posla stalno mijenja, što predstavlja problem za organizacije i otežava ažuriranje vještina zaposlenika. Sve veća potreba za stručnjacima za IKT u svim sektorima predstavlja rizik za cilj europskog digitalnog desetljeća da do 2030. dosegne 20 milijuna stručnjaka za IKT u Europi. 

Šifru, šifru, šifru: neke terminologije i osnovni pojmovi

Ovdje je korisno nekoliko objašnjenja. Razvoj softvera odnosi se na aktivnosti temeljene na računalnoj znanosti, tj. na postupak izrade, projektiranja, uvođenja i podržavanja softvera (IBM, 2023.). Razvojna faza u razvoju softvera događa se kada programer počne definirati i pisati upute koje računalo treba slijediti, na željenom jeziku računala.

Što je programiranje? Programiranje se odnosi na aktivnost koju programeri obavljaju kako bi definirali logiku računalnog programa, uključujući subjekte kojima program treba manipulirati i algoritme koje treba provesti. Vještine programiranja stoga su usko povezane s logičkim i analitičkim, konceptualnim i apstraktnim, kao i računalnim razmišljanjem. Kada programeri kod, oni pišu upute za računalo provesti određene radnje koje računalo treba izvršiti. Programeri pišu na različitim računalnim jezicima, koji im pružaju različite mogućnosti ovisno o njihovoj strukturi ili svrsi. Štoviše, računalni jezici nastavljaju se razvijati, što je složen zadatak za programere da budu u toku s najnovijim stilovima i trendovima. Kada govorimo o nedostatku vještina na tržištu rada, možemo se odnositi i na vještine povezane s programiranjem, kao i na vještine povezane s programiranjem. 

Potpora tržištu rada EU-a 

Budući da je nedostatak vještina zabrinjavajući već nekoliko godina, kreatori politika i istraživači uložili su mnogo energije u razvoj potpore sudionicima na tržištu rada kako bi utvrdili i razvili te vještine kod svojih (potencijalnih) zaposlenika. Neke ključne inicijative uključuju standardizirane okvire kompetencija posebno za digitalni kontekst. Okvir digitalnih kompetencija za građane, DigComp 2.2, (Vuorikari, Kluzer i Punie, 2022.) glavni je općeprihvaćeni okvir u EU-u kojim se utvrđuju i strukturiraju digitalne vještine potrebne građanima za sudjelovanje u modernom digitalnom društvu. Europski okvir e-kompetencije (e-CF) standardizirani je referentni okvir s 41 kompetencijom koja je relevantna i potrebna u kontekstu stručnog rada u području IT-a. Okvirom se utvrđuje i 30 profila profesionalnih uloga u području IKT-a koji obuhvaćaju različite aspekte okruženja digitalne industrije. U EU-u je riječ o vodećem okviru koji nudi zajednički jezik između stručnjaka za zapošljavanje u području IT-a i IT stručnjaka.

Postoje i općenitiji okviri s relevantnim profilima. Sektorski okviri vještina u okviru Pakta za vještine okupljaju razne industrijske aktere u različitim sektorskim savezima kako bi utvrdili i strukturirali vještine potrebne za daljnji razvoj njihova sektora. One u velikoj mjeri uključuju i složene digitalne vještine jer digitalna industrija utječe na sve sektore. Kad je riječ o poduzetništvu, okvir EntreComp (McCallum, Weicht, McMullan i Price, 2018.) uključuje kompetencije koje se odnose na učinkovito korištenje resursa, koje uključuju i procjenu i uvid u potrebe digitalnih resursa i razvoj digitalnih ishoda. Tehnološki kontekst koji se mijenja kontinuirano se integrira u te okvire, a njegove najnovije verzije uključuju vještine rada s tehnologijom umjetne inteligencije. Na primjer, DigComp u svom najnovijem izdanju, 2.2., sada uključuje i znanje o sustavima povezanima s umjetnom inteligencijom.  

Mjere EU-a za promicanje vještina programiranja/kodiranja 

Osim pružanja potpore u imenovanju, utvrđivanju i razvoju vještina povezanih s razvojem softvera, političke inicijative usmjerene su i na to da karijere u digitalnom sektoru postanu popularnije i poznatije. Kako bi se potaknuo veći interes za programiranje i kodiranje, postoji nekoliko ponavljajućih mjera EU-a. Europski tjedan programiranja promiče lokalne inicijative za poticanje većeg broja građana na korištenje i razvoj svojih programskih vještina. Rad s volonterima, aktivnosti uključuju kampanje za podizanje svijesti, radionice, konferencije itd. koje se održavaju diljem Europe, na lokalnim jezicima i u skladu s regionalnim potrebama i kontekstima. U toj je inicijativi 2021. sudjelovalo više od 4 milijuna ljudi u više od 80 zemalja iz cijelog svijeta, a većina aktivnosti odvijala se u školama (Europska komisija, 2023.).

Europski institut za tehnologiju i inovacije (EIT) nudi platformu za okupljanje industrijskih aktera radi inovacija u relevantnim industrijama u sigurnom i otvorenom okruženju. EIT Digital posebno je usmjeren na potporu inovacijama i poduzetništvu u digitalnoj industriji (EIT Digital, 2020.). Osim toga, mnogi programi koje financira EU usmjereni su na poboljšanje digitalnih vještina europske radne snage za digitalnu industriju: dovoljno je pogledati golema ulaganja koja stoje iza programa DIGITAL Europe (7,5 milijardi EUR namijenjeno je digitalnoj transformaciji europskog gospodarstva i društva). Drugi je pokazatelj prag od 20 % za digitalna ulaganja u planove za oporavak i otpornost država članica EU-a, koji je prekoračen

Hoće li GENAI poboljšati nedostatak vještina na tržištu rada? 

Dolaskom Generativne umjetne inteligencije otvara se svijet mogućnosti za programiranje i kodiranje u kontekstu tržišta rada. S jedne strane, GENAI bi ljudima mogao učiniti naprednije vještine (kao što je kodiranje): a 2023. bi se mogla pokazati prekretnicom – trenutak u kojem umjetna inteligencija brzo poboljšava vještine programiranja ljudi, što nam omogućuje stvaranje digitalnih alata na učinkovitiji i djelotvorniji način. S druge strane, GENAI bi mogao smanjiti i stručnost u vještinama programiranja jer se time smanjuje dubinska izgradnja znanja i stručnosti u tom području. U odlomcima u nastavku razmatra se kontekst u kojem bi GENAI mogao utjecati na razvoj softvera i njegove posljedice za razvoj vještina. 

Kontekst

Prije nego što se istraži koje će vještine biti relevantne u tom novom prostoru, dobro je razmotriti neki kontekst u kojem generativna umjetna inteligencija može utjecati na aspekte programiranja.

Položaj kodiranja u procesu softverskog inženjeringa

Softversko inženjerstvo – kao i drugi oblici inženjerstva – je dizajnerska znanost i široko prati proces s fazama istraživanja, ideacije, dizajna, razvoja i testiranja kako bi se prešlo s konceptualne ideje na opipljiv proizvod (Davi, Bersoff & Comer, 1988.). Prolaskom kroz taj proces stječe se znanje i znanje te kroz iteraciju – prolazeći kroz proces više puta – definicija problema i zahtjevi mogu se doraditi, mogu se provesti daljnja pozadinska istraživanja itd. Iako, kako navodi Despa, 2014. mogu postojati različiti pristupi (povećanje, vodopad, spirala, izrada prototipova itd.) načinu na koji se te faze oblikuju (npr. razlike u trajanju faza ili očekivani srednji ishodi itd.). Svaki projektni proces ima bitne komponente. Vidjeti sliku 1. u nastavku za prikaz ključnih komponenti postupka projektiranja softvera. 

A diagram that illustrates the key components of any software design process (Humphrey, 1988)

Figure 1. Software design process, abstracted from Humphrey (1988)

U tom procesu, kodiranje – proces pisanja stvarnog softverskog koda – prvenstveno se odvija u fazi razvoja i testiranja. U ovom trenutku u procesu projektiranja već su definirani problemi i potencijalno rješenje te su donesene odluke o dizajnu na visokoj razini. Softver se zatim proizvodi u fazi razvoja i testira u fazi testiranja. U usporedbi s drugim inženjerskim disciplinama, troškovi proizvodnje softvera relativno su niski. I ovdje imamo „industrijalizaciju” proizvodnje softvera, u kojoj se stalno ulažu napori kako bi bili još brži i vremenski učinkovitiji u razvoju, uz istodobno osiguravanje određene kvalitete proizvedenog materijala (Humphrey, 1988.). To se može postići, primjerice, učinkovitom razmjenom blokova kodova (npr. platforme u obliku repozitorija GitHub) i, u novije vrijeme, platformama s niskim kodom/bez koda, u kojima se sastavni dijelovi koji se mogu ponovno upotrijebiti upotrebljavaju kao polazišna točka za apstraktniji pristup dizajnu, čime se ubrzava cijeli proces (No-Code.tech, 2023.; Adalo, 2023.). To u osnovi otvara kodiranje ljudima, koji nisu vješti (ili možda imaju interes biti vješti) u mehanici pisanja koda.

Na suprotnoj strani ove dimenzije nalazi se„softverska izrada”, gdje tehnička vještina ili vještina stvaranja koda ponovno postaje važna. Približavajući se stvaranju softvera očima naučnika, ovaj pokret potiče ponos na stvaranje softvera, vrednuje tradiciju u stvaranju softvera i stavlja fokus na individualni genij (engl.Software Craftmanship Manifesto, 2009). Možete ga čak usporediti s načinom na koji pristupamo kuhanju kod kuće i kuhanju u profesionalnoj kuhinji. U našim domovima prvenstveno gledamo na kuhanje kao na proces proizvodnje dobre hrane. Kada kuhanje postane „obrt”, uključuje disciplinu, kvalitetu, vremensku učinkovitost i fokusirani napor da se dosegne visina u kvalitetnim proizvodima. „Proizvodnja” u kuhanju uključuje usavršavanje proizvodnih vještina i dostupnih resursa kako bi se postigla ta razina izvrsnosti (kao što bi netko usavršio svoje vještine kuhanja – korištenjem kvalitetnih sastojaka, usavršavanjem vještina noža, stvaranjem novih tehnika za postizanje različitih okusa i iskustava itd.)

Možemo uzeti te iste ideje i ekstrapolirati ih na obrtništvo uključeno u pisanje i izradu koda kvalitete.

Širenje kodiranja na radnim mjestima utemeljenima na znanju  

Koliko god da zvuči složeno, kodiranje nije ograničeno na prostore profesionalnog softvera ili IKT industrije. Jedna podcijenjena činjenica je da je neki oblik kodiranja potreban za mnoge specijalizirane profesionalne tehnologije u radu na znanju. Na primjer, ako radite neku statističku analizu ili čak koristite osnovne funkcije programa Excel, već morate razumjeti kod za pisanje barem u nekom minimalnom obliku. U tom je kontekstu kodiranje postalo slično drugim kompetencijama i pismenjima (mislite: ljudski jezik i matematika), gdje svi trebaju imati osnovno razumijevanje i proizvodne vještine za sudjelovanje u društvu (Byrne, O’Byrne i Kafai, 2016.). Razlika je u činjenici da naše razumijevanje kodiranja kao pismenosti još nije toliko napredno, niti je ugrađeno u naš školski sustav kao te druge pismenosti (Rea, 2022). Osnovnoškolski sustav izgrađen je oko tih pismenosti i oni su ključni za izgradnju na vrhu u kasnijim godinama. Međutim, digitalna tranzicija to brzo mijenja, čineći programiranje i računalno razmišljanje jednako potrebnim od rane dobi kao i druge pismenosti.

Tehnološka potpora u odnosu na naše opće razumijevanje

Dakle, to stvara neusklađenost: s jedne strane, još nismo shvatili zamršenost postupanja s kodiranjem kao pismenošću, niti smo ga u potpunosti ugradili u naše obrazovne sustave (Vee, 2017). S druge strane, sada imamo vrlo sofisticirane alate koji nam omogućuju stvaranje, dizajn i pisanje koda. Nadalje, priroda digitalnog prostora takva je da su svi ti alati uglavnom dostupni (uz naknadu) široj javnosti. 
Da biste ilustrirali tu neusklađenost, razmotrite primjenu ChatGPT-a i način na koji ih ljudi doživljavaju:

Kada zamolite ChatGPT -a da napiše komad teksta, gotovo svatko će moći reći je li riječ o dobro napisanom tekstu (ne uzimajući u obzir njegov sadržaj u ovom trenutku, već isključivo oblik teksta u prirodnom ljudskom jeziku).  

Kada zatražite od ChatGPT- a da dovrši matematički izračun, mnogi u široj javnosti moći će reći je li to ispravno učinjeno ili barem ako je odabran ispravan pristup za rješavanje pitanja.

Ali… kada zamolite ChatGPT-a da napiše komad koda, malo ljudi u široj javnosti neće moći (još) reći je li to točno.  

Kako GENAI može ublažiti nedostatak vještina na tržištu rada

U prethodnom odlomku prikazano je jedno od područja u kojima bi se Generativna umjetna inteligencija mogla pokazati kao prekretnica. Sada ćemo se dublje pozabaviti trenutačnim problemima nedostatka vještina i razmotriti potencijal GENAI-ja da ih ublaži.

Prvo pitanje odnosi se na velike razlike u razini vještina programiranja među ljudima. Različiti ljudi imaju različite razine znanja u pisanju koda i ne postoji općeprihvaćena osnovna razina znanja kodiranja. Postoji nekoliko razloga za to:

  1. Budući da kodiranje i programiranje nisu pozicionirani kao pismenost, nisu ugrađeni u formalno obrazovanje u cijelom nastavnom planu i programu. To znači da ne postoji opći pristup mogućnostima programiranja i programiranja niti opće očekivanje prema svakom pojedincu da razvije osnovnu razinu stručnosti.
  2. Razvoj vještine u velikoj mjeri ovisi o osobnom individualnom interesu i osobnoj disciplini. Ako želite razviti svoje vještine u tom području, morate potražiti formalne i neformalne mogućnosti na internetu i izvan njega putem radionica, kampova itd. Budući da je to uglavnom izvan formalnog obrazovanja, potrebno je uložiti dodatne napore i vrijeme za ulaganje u taj oblik razvoja vještina.  
  3. Dno je važno ovdje: razvoj vještina u programiranju ovisi o ulaganju vremena i novca u relevantne prilike za razvoj vještina programiranja. To ulaganje možda neće biti moguće općenito za sve u društvu jer postoji potreba za infrastrukturom (hardverom i internetom), vremenom (izvan vremena formalnog obrazovanja) i mogućim dodatnim troškovima za relevantni softver ili licence.

Kao i u mnogim pitanjima povezanima s digitalnom inkluzijom, postoji velik jaz u društvu između onih koji imaju i nemaju u tom području, pri čemu su vrlo pogođene ranjive osobe, žene, starije osobe i osobe nižeg socioekonomskog podrijetla (Ujedinjeni narodi, 2023.).

Generativna umjetna inteligencija za kodiranje može uvelike smanjiti prag za ulaganje u učenje kodiranja. Kao što to omogućuje interakciju s računalom na prirodnom jeziku, svatko tko može formulirati svoje ideje za softver na ljudskom jeziku, mogao bi u teoriji napisati kod kako bi ovaj softver. Međutim, pitanja pristupačnosti (u vremenu i naporima) i dalje su: i ovdje postoji mogućnost da GENAI proširi jaz između onih koji to mogu i onih koji ne mogu kodirati.

Drugo pitanje odnosi se na neposrednost potrebnih vještina za zaposlene osobe. Tržištu rada potrebne su te digitalne vještine danas i u bliskoj budućnosti. Cedefop predviđa potrebu za gotovo 979,600 IKT tehničara i još 2,977,600 stručnjaka u području IKT-a u razdoblju 2022. – 2035. (Cedefop, 2023.). Međutim, za izgradnju temeljitog znanja i razvoj tih vještina do viših razina stručnosti potrebno je vrijeme, što je također potencijalno prepreka za prihvaćanje programiranja. Bootcamps i druge kratkoročne, ali intenzivne vrste učenja su učinkovite, ali zahtijevaju vrijeme i resurse koje nemaju svi nužno (Tayer & Ko, 2017). Štoviše, zaposlenici ne samo da trebaju postići osnovnu razinu stručnosti, već moraju ovisiti i o sebi za kontinuirano poboljšanje u razvoju tih vještina.

GENAI u određenoj mjeri može ublažiti taj problem. Dostupnost tehnologije u prirodnom jeziku može sniziti prag za mnoge i pružiti pravovremenu podršku za pronalaženje onoga što je potrebno, čime se kodiranje i generiranje kodova čine učinkovitijima, a možda i motivirajući ljude da ga koriste. Tehnologija bi mogla podržati samoučinkovitost, olakšavajući i brže pronalaženje odgovora kada zaglave, te stvarajući okruženje u kojem učenici žele kontinuirano razvijati svoje vještine u programiranju i programiranju. Međutim, i ovdje postoji mogućnost da će te tehnologije povećati jaz između onih koji već mogu i onih koji to ne mogu. Nadalje, u tom kontekstu alat za potporu koji se temelji na GENAI-ju učinkovito djeluje kao stručni sustav ( tj. ljudski zahtjevi koje stvara GENAI). Ovdje je važno razmotriti koja je razina ljudskog nadzora potrebna.  

Treće pitanje odnosi se na to kako je trenutačno organiziran razvoj vještina u programiranju i programiranju. U formalnom kontekstu vještine programiranja uklapaju se u radionice ili bootcampove – potencijalno oko određenih jezika programiranja ili općenitijih aktivnosti koje se temelje na problemima. Neformalni konteksti ovise o tome da pojedinci stvaraju vlastite načine učenja s pomoću različitih internetskih resursa, pomiješanih s alternativnim izvanmrežnim iskustvima.  

GENAI alati mogu povećati te aktivnosti uz potporu s niskim pragom na vrijeme kako bi pronašli ono što je potrebno, čime bi generiranje kodova bilo učinkovitije i djelotvornije. Međutim, korištenje tih alata i dalje se oslanja na ljudsku točnost odgovora i prihvatljivost softverskog ishoda. Ovdje postoji rizik da alati GENAI mogu postati glavni sustav, u kojem ga ljudski učenik koristi samo za postizanje neposrednog cilja, bez razvijanja temeljitog znanja o kodiranju.

Implikacije za razvoj vještina u programiranju i programiranju u dobi GENAI-ja

Jasno je da GENAI nudi brojne mogućnosti za snižavanje praga prema mnogima u široj javnosti kako bi započeli ne samo dizajnirati softver, već učinkovito stavljati softver na korištenje u svakodnevnom kontekstu. Zapravo, za mnoge učenike niski prag može biti i motivirajući čimbenik za uključivanje u programiranje. Međutim, kako bi se osiguralo da ljudi i dalje razvijaju temeljito znanje o kodiranju, a GENAI ne samo da vide kao alat koji može preuzeti neuredan posao programiranja, još uvijek je potrebno poduzeti određene mjere opreza. 

Prvo, potrebno je kodiranju pristupiti kao pismenosti koja se može ugraditi u cijeli formalni obrazovni sustav. Iako se već ulažu napori kako bi se kodiranje uključilo u planove nastava i kurikulume, potrebna je sustavnija promjena (Rea, 2022.; Vee, 2017.). Prethodno navedeni ključni okviri za digitalne vještine pružaju bolji uvid u složenost tih vještina i nude načine za razrađeniji pristup njihovom razvoju.  

Drugo, ljudi također moraju biti svjesni ograničenja umjetne inteligencije – što ona može i ne može učiniti, a još više što bi trebala, a što ne bi trebala činiti. Tehnologija umjetne inteligencije po svojoj prirodi od ljudi preuzima neke aktivnosti donošenja odluka. Iako je to kreativno mnogo pozitivnih prilika (na primjer, biti u mogućnosti nositi se s mnogo više podataka nego čovjek), ona također nosi ozbiljne rizike, koje ljudi moraju biti svjesni kada se koriste tim sustavima. Na političkoj razini, to je put koji je istaknut. Najnovija verzija DigCompa uključuje znanje o UI sustavima kao kompetenciju za svakog građanina. Aktom EU-a o umjetnoj inteligenciji postavljaju se zaštitne pruge u tom okruženju i pojašnjavaju koji su mali, visoki i neprihvatljivi rizici u radu s alatima umjetne inteligencije.  

Treće, za kodiranje je korisno istražiti neke najbolje prakse i smjernice. GENAI će nesumnjivo imati golem utjecaj na praksu programiranja. U teoriji, to snižava prag i otvara priliku za više ljudi da uče kodiranje – a posebno one koje su možda izgubile motivaciju zbog tehničkih detalja i mehanike oko pisanja koda. Kako bismo učinkovito upotrebljavali te alate GENAI, prvo moramo utvrditi odgovarajuće vodiče i sporazume o tome kako i kada se ti alati mogu upotrebljavati.

Pri svakoj upotrebi GENAI-ja za kodiranje jasno je da će računalo pisati kod koji će se koristiti. Ali kako da osiguramo da možemo vjerovati ovom kodu? U ovom scenariju više nema apsolutnog ljudskog nadzora. Nadalje, koji su postupci kontrole kvalitete i kvalitete uspostavljeni kako bi se osigurala pouzdanost koda GENAI? Jesu li potrebni novi postupci testiranja u tom novom kontekstu i kako bi oni izgledali? Jednako je korisno otvoriti raspravu o tome što povjerenje podrazumijeva i koji su pokazatelji koji ukazuju na tu pouzdanost umjetne inteligencije. Mogućnost je upotreba novih oznaka kvalitete ili navođenje upotrebe umjetne inteligencije u etičkim kodeksima, primjerice u sektoru novinarstva u kojem se povećava upotreba alata za pisanje GENAI(Raad van Journalistiek, 2023.).

Naposljetku, važno je nastaviti prepoznavati i vrednovati obrtništvo u programiranju i programiranju softvera. Za mnoge stvaratelje, kodiranje je jezik njihovog obrta koji im daje intelektualne izazove i kognitivno zadovoljstvo kada postignu svoj dizajn, ali njihova postignuća su u velikoj mjeri skrivena. Kako ih učiniti vidljivijima i prepoznati njihova postignuća? U tim slučajevima ne smijemo ograničavati svoju viziju na utilitarnu vrijednost kodiranja, već cijeniti vještinu i obrtništvo u njemu. Osim toga, uključivanjem u praksu pisanja kodeksa ljudi razvijaju dubinsko znanje programiranja, što im daje temelj za poboljšanje jezika kodiranja i stvaranje novih i poboljšanih jezika za kodiranje. Drugim riječima, ako želimo nastaviti poboljšavati programiranje, trebamo dovoljno ljudi koji sami pišu kod. Važno je ponovno cijeniti ljudsku vještinu.

Budući putovi  

Generativna umjetna inteligencija nudi brojne mogućnosti u području programiranja i programiranja, čime bi se većem broju ljudi olakšalo uključivanje u programiranje i stvaranje vlastitih aplikacija. To je ogroman potencijal za demokratizaciju stvaranja softvera, tj. otvaranje ga onima koji možda nisu bili motivirani učiti ili ga doživljavati kao mogućnost za sebe. GENAI također može učiniti proces pisanja koda učinkovitijim vremenom i trudom. Međutim, nedostatak je u tome što preveliko oslanjanje na automatizirani razvoj koda bez dostatnog ljudskog nadzora može značiti gubitak kvalitete i nedostatak mogućnosti za poboljšanje prakse programiranja.

Gledajući prema budućnosti, mogu se vidjeti neki opći putovi za istraživanje. 

Softver prikladan za namjenu dolazi iz ljudskog uvida, koji usklađuje percipirane potrebe, tehničke zahtjeve, s tehnološkim dizajnom, aplikacijom i eventualnom uporabom. Softver još uvijek mora raditi u složenom ljudskom okruženju, a ljudi su najsposobniji nositi se s tom složenošću. Međutim, ključno je da pronađemo ravnotežu između mogućnosti automatiziranog kodiranja s pomoću GENAI-ja i ljudskog pisanja koda ili drugih oblika nadzora, čime će se osigurati dovoljan ljudski uvid u taj proces i omogućiti njegovo učinkovito poboljšanje u budućnosti. Procesi osiguranja kvalitete u razvoju softvera već postaju sve plodniji, s prijelazom na „Shift Left”, tj. angažirati se s osiguranjem kvalitete ranije u procesu razvoja softvera i nastaviti to tijekom cijelog procesa. Drugim riječima, mnoga jamstva u pogledu kvalitete mogla bi se predvidjeti prije nego što se dosegne faza učinkovitog pisanja kodova. GENAI-potpora za pisanje koda zatim je ugrađena u širi kvalitativni razvojni proces, gdje se njegove prednosti optimalno koriste.


Ključne riječi

Generativna umjetna inteligencija, ChatGPT, nedostatak vještina, kodiranje, programiranje, razvoj softvera

Preuzimanje 

Ovdje i ispod preuzmite cijeli rad „Umijeće kodiranja i programiranja u doba GeneraativeAI-ja” i bibliografiju njegovih referenci. 


O autoru

Dr. Kamakshi Rajagopal je interdisciplinarni istraživač i vanjski savjetnik u obrazovnom dizajnu i tehnologiji, s bogatim iskustvom u umreženim formatima učenja i društvenog učenja, podržan inovativnim tehnologijama. Magistrirala je lingvistiku (2003.) i umjetnu inteligenciju (2004.) na KU Leuvenu (BE). Doktorsko istraživanje završila je na Open Universiteitu (NL) 2013. godine, istražujući osobne mreže za učenje i njihovu vrijednost za kontinuirani profesionalni razvoj. Njezino trenutno istraživanje bavi se proučavanjem složenosti okruženja za učenje i, konkretnije, o tome kako nastavnici i učenici mogu biti podržani u suočavanju s tom složenošću. Dr. Rajagopal je razvio višestruke (nacionalno financirane i europske) suradničke istraživačke projekte u osnovnom, srednjoškolskom i visokom obrazovanju s partnerima iz javnog sektora, industrije i civilnog društva. Neki od primjera njezinih projekata su uloga nastavničkih mreža u obrazovnim inovacijama, krugovi diplomskog rada u visokom obrazovanju, multimodalno mjerenje u suradničkim hibridnim obrazovnim prostorima i uključivanje virtualne mobilnosti u ustanove visokog obrazovanja. Od 2023. radi na učenju i razvoju u IT i poslovnom savjetovanju.

Saznaj više

  • Digitalna tehnologija / specijalizacija:

    Softver

    Razvoj mobilnih aplikacija

    Razvoj web aplikacija

  • Razina digitalnih vještina:

    Osnovno

    Srednja

    Napredno

    Stručnjak za digitalni sektor

  • Geografski opseg - Država:

    Europska Unija

  • Vrsta inicijative:

    Institucionalna inicijativa EU-a