Kako prepoznati da je (potencijalni) zaposlenik koristio ChatGPT, što se događa s programerima kada imaju ChatGPT na radnom mjestu i kako će izgledati testiranja novih zaposlenika, provjeravamo.
ChatGPT jedna je od onih tehnologija zbog koje dobivamo bombastične naslove kako će nas umjetna inteligencija zamijeniti, a milijuni će ostati bez posla. Koliko će točno ljudi ona zamijeniti ili im barem značajno promijeniti rad, teško je reći, ali programerska struka jedna je od tih kojoj se predviđa jak udarac.
U želji da se odmaknemo od fatalističkih predviđanja, razgovarali smo s Milošem Trifunovićem, Team Leadom u Lemaxu; Željkom Švedićem, osnivačem TestDomea, i jednim anonimnim programerom kojeg ćemo nazvati Ivan, kako bismo bolje upoznali situaciju na terenu.
Kako Lemax i Testdome znaju koji je kandidat koristio ChatGPT?
Iako kažu kako još nisu imali kandidata koji je rješavao zadatke pomoću ChatGPT-ja, Lemax se osigurao kako će te kandidate prepoznati. Dva su faktora ključna u prepoznavanju rješenja koja je stvorila umjetna inteligencija, naglašava Miloš.
Prvo je potrebno poznavati koje opcije rješenja AI može poslati, što znači kako će zatražiti ChatGPT da riješi zadatak. Tako u Lemaxu dobiju osjećaj kako izgleda jedno AI rješenje. Idući ključni faktor je prezentacija uživo koja predstavlja priliku da vide razumije li kandidat rješenje. Ovako mogu ispitati najmanje detalje u slučaju da bilo kakve sumnje u kandidata, objašnjava nam Miloš.
Kratkoročni i dugoročni problemi AI-a
Kako bi TestDome, softver namijenjen automatskom testiranju znanja i vještina programera pri zapošljavanju, bio otporan na ChatGPT, tako su Željko i njegov tim prepoznali kratkoročne i dugoročne promijene koje je potrebno napraviti. Kratkoročne promjene tiču se njihovih klijenata koji ne žele dozvoliti kandidatima korištenje alata ChatGPT. Zbog toga su uveli značajke protiv “varanja”:
- Desktop proctoring – tijekom testa se snima kandidatov ekran;
- Webcam proctoring – tijekom testa se vidi što kandidati rade preko web kamere;
- Copy/paste protection – blokirano je kopiranje teksta pitanja koji je često dugačak i kandidati nemaju dovoljno vremena pretipkati pitanje;
- TestDome Interviews – otežava varanje putem korištenja AI alata na online intervjuu.
S druge strane, Željko smatra da će se posao programera na dugoročno promijeniti pa zato mijenjaju samu bazu pitanja:
- Slike i animacije ponašanja u opisu zadatka – tako zadatak postaje apstraktniji i testira zna li kandidat definirati problem, a ne samo napisati kod;
- AI-resistant pitanja – kako bi pitanje bilo AI-resistant, tako često mora biti složenije.
Zašto Ivan smatra da su trenutni načini testiranja kandidata “živi užas”?
U isto vrijeme, mnogi programeri trenutni način testiranja kandidata za radno mjesto smatraju neadekvatnim. Leetcode i slični servisi pred kandidata stavljaju algoritamske zadatke kakve velika većina neće rješavati u praksi, bar ne svakodnevno, objašnjava nam programer Ivan:
Iako su takvi zadaci odlična mentalna gimnastika i principi koji su u njima traženi su bitni i korisni, obično su kandidati prilikom rješavanja ograničeni vremenom, a često su potrebni mjeseci i mjeseci priprema.
Ivan ne voli ovaj tip testiranja jer se onda kandidati koji ne mogu izdvojiti mjesece slobodnog vremena za pripremu nalaze u vrlo nepovoljnom položaju. Zatim, sama testiranja iziskuju mnogo vremena od kandidata. Za jedan Leetcode intervju kandidat mora odvojiti nekoliko sati koje obično mora utrošiti u komadu, a take-home zadaci pak zahtijevaju i po nekoliko dana ili tjedana neplaćenog rada. Također, testiranja su vrlo stresna:
Da, možemo pretpostaviti da je velikom broju firmi bitno da kandidati dobro funkcioniraju pod stresom, ali u praksi većinom nemamo scene kao iz Swordfisha u kojima Leet Haxor kodira s pištoljem uperenim u glavu.
Kod firmi koje imaju stroge procese selekcije, Ivan ima osjećaj kako će zauvijek biti eliminiran ako ne prođe na generičkom tehničkom testiranju iz bilo kojeg razloga (npr. nije bilo dovoljno vremena za pripremu, trivijalan bug i slično):
Ako nema ljudskog faktora koji može prosuditi radi li se o trivijalnoj stvari i osobe koju mogu provoditi kroz svoj način razmišljanja, firma potencijalno eliminira izuzetno dobre kandidate koji su napravili ono što developeri rade doslovno svaki dan – imali su bug.
Kad se sve to uzme u obzir, nije ni čudno što dio developera poseže za ChatGPT-jem prilikom testiranja.
Može li ChatGPT učiniti developera boljim?
Ako stavimo na stranu ulogu i problematiku ChatGPT-ja u procesu zapošljavanja, postoje i prednosti koje takvi alati donose. Tako Miloš vidi ChatGPT kao konstruktivniji Google jer, osim davanja odgovora na pitanja, on može pomoći s brzinskim code reviewom, odraditi repetitivne zadatke poput kreiranja podatka za unit testove temeljem definicije metode. Također, moguće je i dobiti dosta detaljne primjere kako se integrirati s vanjskim servisima ili dobiti odgovore na neka tehnička pitanja, ali ne smijemo zaboraviti da govorimo o nesavršenom alatu:
Treba biti svjestan da ChatGPT ne daje nužno uvijek činjenice, već najvjerojatniji odgovor. Stoga, ako nema nekih informacija, postoji mogućnost da će ti dati lažnu informaciju.
ChatGPT može izuzetno povećati produktivnost developeru koji zna kako kvalitetno postaviti pitanje, kako postavljati potpitanja, kako identificirati kad ChatGPT zabrazdi u krivom smjeru i slično, ističe Ivan:
Ono što je odlično što ChatGPT ima kontekst i mogućnost povezivanja koju je developer do sad morao odrađivati ručno (npr. kvalitetno nabosti ključne riječi guglajući i nabadajući rezultate po StackOwerflowu, GitHubu itd., pa isprobavati jednu po jednu od desetak ponuđenih opcija i slično). ChatGPT-u postaviš problem, navedeš što si isprobao i eventualno dodaš još konteksta ako vidiš da je krenuo u krivom smjeru.
Ako ChatGPT čini developere boljima, zašto ga onda ne bi koristili tijekom testiranja?
Neki poslodavci već sada na testiranju daju da potencijalni zaposlenici koriste Google i slične alate, a Miloš ne vidi problem u rješenjima koja su potpuno generirana ChatGPT-jem, ali sve dok kandidat stoji iza tog rješenja, da ga razumije u potpunosti i barata sa svime što je u rješenju:
Očito je da nam je prihvatljivo korištenje svih alata na raspolaganju, s obzirom na to da je zadatak po prirodi offline, odnosno kandidat ga rješava mimo našeg utjecaja i nadzora
Može li poticanje korištenja ChatGPT-ja pokazati neke korisne stvari o kandidatu kao programeru, Željko smatra – i da i ne. Sve ovisi o kompleksnosti zadatka i trajanju testa:
Jednostavni i kratki zadaci ne pokazuju razliku između programera – tekst zadatka se kopira u ChatGPT-ju i možda se dobije odgovor.
Ali složeniji i duži zadaci projektnog tipa zahtijevaju popravljanje ChatGPT grešaka, ponovno promptanje, razdvajanje zadatka u manje cjeline, definiranje arhitekture te pisanje vlastitog koda. Njih će puno lakše napraviti iskusni inženjeri.
Svjedočimo li evoluciji programera?
Ako računamo na to da će se pri selekciji kandidata više tražiti objašnjenja kako je netko došao do rješenja, a ne samo čisti rezultat, znači li to kako se mijenja i tip znanja koja će se tražiti ubuduće od inženjera? U Lemaxu se ta promjena dogodila već prije nekoliko godina, ističe Miloš:
Tražimo od kandidata određeno tehničko znanje, postavimo mu taj zadatak da ga riješi, ali daleko veću ulogu nam igraju “neprogramerske kvalitete” kod čovjeka, kao što su poznavanja industrijskih praksi, te standardnih paradigmi u programiranju.
Zadatak nam služi kao početna točka kako bismo vidjeli gdje kandidat stoji s tehničke strane te kao materijal za otvaranje malo šire priče, gdje ne tražimo odgovore na pitanja ŠTO je kandidat koristio, već ZAŠTO.
Programerski posao se mijenja tako što postaje apstraktniji, arhitekturalni i zahtijeva više pisanja teksta, ističe Željko. Na primjer, komentare je sad poželjno pisati prije koda, jer alati kao Copilot na osnovu komentara mogu odmah generirati kod:
Čim bolje opišemo problem u prirodnom jeziku, to će nam ChatGPT dati bolji kod. Prvo rješenje često nije točno te treba dodatno ChatGPT-ju objasniti kako modificirati kod. Što AI alati postaju bolji, to zadatak programera više postaje dobro opisati problem i osmisliti arhitekturu nego kodirati detalje.
Tehnički temelji, način razmišljanja, vještine komuniciranja i karakter osobe elementi su koje je potrebno prepoznati u kandidatima, ističe Ivan. Vjeruje da ne postoji razvojni tim koji bi umjesto vrhunskog developera, čiji karakter ne mogu smisliti, radije uzeli solidnog, a koji je vješt komunikator i s kojim je ugodno surađivati:
Većina developera ne gradi svemirski brod i ne otkriva toplu vodu. Da, potrebni su tehnički izuzetno sposobni ljudi, ali ne treba svaki developer u timu biti takav (niti ih možete platiti toliko, niti im možete svima dati dovoljno izazovnog posla).
Dobri developeri, osim tehničkih stvari, znaju postavljati pitanja o proizvodu, razmišljati o klijentu i iz perspektive klijenta, znaju razmišljati šire od svog Jira ticketa, znaju da umiranje u ljepoti koda ne donosi novac i da klijentu nije bitno je li aplikacija refaktorirana u Typescript ako ne rješava problem koji klijent ima.
Kakve tipove zadataka ChatGPT sada eliminira iz testiranja zaposlenika?
Dolaskom ChatGPT-ja nema više smisla pitati kandidate da napišu boilerplate code, standardne algoritme, poznate interview zadatke ili kodove koje je lako pronaći na internetu, objašnjava nam Željko. ChatGPT je treniran na cijelom internetu, uključujući StackOverflow i GitHub, te takve zadatke rješava bez problema.
Na primjer, ako pitate ChatGPT za FizzBuzz problem ili quick sort algoritam, dobit ćete točan kod i za manje korištene jezike kao što su F# ili Julia. Ponavlja se ista stvar kao s pojavom Googlea ili StackOverflowa, a to je da nema smisla pitati stvari na koje se odgovor može naći u manje od minute, ističe Željko:
Treba pitati nestandardne zadatke, koji se ne nalaze na internetu ili nema puno dostupnih odgovora. Moguće je i stare zadatke zakomplicirati tako da standardno rješenje ne zadovoljava.
Ivan vjeruje da će biti manje testiranja na tehničkim platformama poput Leetcodea, ali i više tehničkih razgovora u kojima kandidati odgovaraju kako su došli do rješenja. System design intervjui vjerojatno mogu ostati kakvi jesu (oni se ionako odvijaju uživo, bilo preko videopoziva ili bas uživo u prostorijama firme):
Sigurno će biti više razgovora o tome kako rješavati određene problemske zadatke, nego samog rješavanja i analize koda od strane firmi koje intervjuiraju kandidate.
Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.
Pravila ponašanja
Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:
Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.
Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.
Komentari
Edi
25. 07. 2023. u 8:12 am
A šta ako ovaj koristi Bard, a ti si provjerio samo na GPT-u kako otprilike izgleda generički odgovor.