ChatGPT – da li će teorija postati bitnija od prakse?
Nije teško reći da će veštačka inteligencija izmeniti određene profesije. U narednih godinu do dve, doći će do promena u razvoju software-a. Upotreba ChatGPT-a u razvoju software-a zahtevaće od inženjera da promene način svog rada i učenja.
U prethodnom članku smo analizirali mogućnosti primene ChatGPT-a i zaključili da je on moćan alat koji može da ubrza proces programiranja. Koje izazove će ChatGPT postaviti pred obrazovni sistem?
Kako to izgleda sada?
Iz prethodnog članka smo videli da ChatGPT sasvim lepo poznaje tehnologije i tehnička pravila programskog koda, što kao rezultat daje funkcionalan program generisan na osnovu opisa. Uz vrlo malo korekcija, može se doći do “produkcionog” rešenja i prebacivanja zadatka u kolonu done.
Kada bi u skorijoj budućnosti u trenutnu programersku praksu uveli ChatGPT, programer bi više vremena trošio na opis zadatka, nego sa samo programiranje. Opis zadatka jasno mora da naznači željenu funkcionalnost, kao i da konceptualno opiše rešenje. Dolazimo do zaključka da bez jakih teorijskih osnova i poznavanja koncepata programiranja ovo nije moguće.
Može se pomisliti, pa to je uvek bilo tako. Da li je?
Nije retka situacija da proces programiranja predstavlja lutanje po internetu i traženje rešenja za zadati zadatak. Ovo je posebno istaknuto kod mladih inženjera i ljudi koji su radili prekvalifikaciju. Uzimajući ovu činjenicu u obzir, postavlja se pitanje da li će oni moći na pravi način da iskoriste ChatGPT i u kom smeru će morati da se edukuju da bi bili uspešni u svom poslu?
Uzmimo za primer računarske smerove na fakultetima u Srbiji. Predmeti se sastoje iz predavanja, vežbi, praktičnog i teorijskog dela ispita. Najčešća situacija je da studenti često izbegavaju predavanja, dok su vežbe su obavezne i na njima se studenti osposobljavaju za praktični deo ispita. Praktični deo ispita se obično sastoji iz projekta koji je obiman. Odbrana projekta akcenat stavlja na urađenim funkcionalnostima, a vrlo malo ili nimalo na kvalitet koda. Teorijski deo ispita je obično test, a vrlo retko usmena odbrana znanja.
Bazična znanja + koncepti + teorijska znanja
Nije potrebno uraditi nikakvu revoluciju u smislu edukativnog sistema. Potrebno vratiti se na stari put, a to je da rezultat edukativnog procesa treba da bude inženjer – a ne koder. Iako je to i do sada trebalo da bude tako, praksa je često drugačije pokazivala. Razlog je manjak kvalitetnog kadra u obrazovnim institucijama, te velika potreba za IT kadrom u privredi.
Potrebni su nam ljudi sa jakim bazičnim znanjima, koji vrlo dobro poznaju koncepte programiranja i projektovanja software-a, a da sve to bude potkrepljeno dobrim teorijskim znanjem.
Dakle, teorijska predavanja su veoma bitna i moraju da stvore kod budućih inženjera teorijske osnove i upoznaju ih sa konceptima razvoja software-a. Takođe, sama verifikacija znanja mora da bude strožija kroz usmene delove ispita gde se profesor mora uveriti da postoji razumevanje predavanog gradiva.
Vežbe moraju da pruže praktične primere koda neophodnih za implementaciju koncepata sa predavanja. Sam projekat mora da bude takav da u što kraćoj formi specifikacije uspe da verifikuje tehničku sposobnost studenta da implementira praktično objašnjene koncepte – bez nepotrebnih ponavljanja funkcionalnosti.
Dobar primer edukacije iz praktične primene su online kursevi, koji zadovoljavaju minimum praktičnog znanja neophodnog bi se neko obučio da koristi određenu tehnologiju. Ono što nedostaje kod kurseva je teorijska osnova, koja se vrlo malo spominje.
Fokus na funkcionalnost
Programiranje nije samo sebi svrha. Naša profesija je zapravo uslužna delatnost za sve druge industrije gde pokušavamo da određene procese automatizujemo i poboljšamo. Situacija gde se inženjeru skraćuje vreme kodiranja i neophodnog istraživanja ostavlja mnogo vise prostora za fokusiranje na funkcionalnost koja se razvija, odnosno na vrednost koju ta funkcionalnost donosi.