„ Ko zadnji izađe, isključite uređivač koda. “ Ova ironična fraza kruži po forumima za programere, odražavajući zabrinuti humor zbog porasta broja asistenata za kodiranje u AI okruženju. Kako modeli AI-a postaju sve sposobniji za pisanje koda, mnogi programeri se pitaju da li ljudske programere čeka ista sudbina kao i operatere liftova ili operatere centrala – poslove koje je automatizacija učinila zastarjelim. U 2024. godini, smjeli naslovi su proglašavali da bi vještačka inteligencija uskoro mogla pisati sav naš kod, ostavljajući ljudske programere bez ikakvog posla. Ali iza medijske pompe i senzacionalizma, stvarnost je mnogo nijansiranija.
Da, vještačka inteligencija sada može generirati kod brže od bilo kojeg čovjeka, ali koliko je taj kod dobar i može li vještačka inteligencija sama obaviti cijeli životni ciklus razvoja softvera? Većina stručnjaka kaže „ne tako brzo“. Lideri softverskog inženjerstva poput izvršnog direktora Microsofta, Satye Nadelle, naglašavaju da „vještačka inteligencija neće zamijeniti programere, ali će postati neophodan alat u njihovom arsenalu. Radi se o osnaživanju ljudi da rade više, a ne manje.“ ( Hoće li vještačka inteligencija zamijeniti programere? Istina iza te pompe | od The PyCoach | Artificial Corner | mart 2025. | Medium ) Slično tome, šef odjela za vještačku inteligenciju u Googleu, Jeff Dean, napominje da, iako vještačka inteligencija može obavljati rutinske zadatke kodiranja, „još uvijek joj nedostaju kreativnost i vještine rješavanja problema“ – upravo one kvalitete koje ljudski programeri donose. Čak i Sam Altman, izvršni direktor OpenAI-a, priznaje da je današnja vještačka inteligencija „vrlo dobra u zadacima“ , ali „strašna u punim poslovima“ bez ljudskog nadzora. Ukratko, vještačka inteligencija je odlična u pomaganju s dijelovima posla, ali nije sposobna u potpunosti preuzeti posao programera od početka do kraja.
Ovaj stručni izvještaj iskreno i uravnoteženo razmatra pitanje „Hoće li vještačka inteligencija zamijeniti programere?“. Ispitujemo kako vještačka inteligencija utiče na uloge u razvoju softvera danas i koje promjene nas očekuju. Kroz primjere iz stvarnog svijeta i nedavne alate (od GitHub Copilota do ChatGPT-a), istražujemo kako se programeri mogu prilagoditi, prilagoditi i ostati relevantni kako se vještačka inteligencija razvija. Umjesto pojednostavljenog odgovora da ili ne, vidjet ćemo da je budućnost saradnja između vještačke inteligencije i ljudskih programera. Cilj je istaknuti praktične uvide o tome šta programeri mogu učiniti da bi napredovali u dobu vještačke inteligencije – od usvajanja novih alata do učenja novih vještina i predviđanja kako bi se karijere programera mogle razvijati u narednim godinama.
Vještačka inteligencija u razvoju softvera danas
Umjetna inteligencija se brzo uklopila u moderni radni proces razvoja softvera. Daleko od toga da je naučna fantastika, alati zasnovani na umjetnoj inteligenciji već pišu i pregledavaju kod , automatiziraju zamorne zadatke i poboljšavaju produktivnost programera. Programeri danas koriste umjetnu inteligenciju za generiranje isječaka koda, funkcije automatskog dovršavanja, otkrivanje grešaka, pa čak i izradu testnih slučajeva ( Is There a Future for Software Engineers? The Impact of AI [2024] ) ( Is There a Future for Software Engineers? The Impact of AI [2024] ). Drugim riječima, umjetna inteligencija preuzima težak posao i standardne standarde, omogućavajući programerima da se fokusiraju na složenije aspekte kreiranja softvera. Pogledajmo neke od istaknutih mogućnosti i alata umjetne inteligencije koji trenutno transformišu programiranje:
-
Generisanje koda i automatsko dovršavanje: Moderni AI asistenti za kodiranje mogu generirati kod na osnovu upita na prirodnom jeziku ili djelomičnog konteksta koda. Na primjer, GitHub Copilot (izgrađen na OpenAI-jevom Codex modelu) integrira se s urednicima kako bi predložio sljedeći red ili blok koda dok tipkate. Koristi opsežan skup koda otvorenog koda za obuku kako bi ponudio kontekstno svjesne prijedloge, često sposoban dovršiti cijele funkcije samo iz komentara ili naziva funkcije. Slično tome, ChatGPT (GPT-4) može generirati kod za određeni zadatak kada opišete šta vam je potrebno jednostavnim jezikom. Ovi alati mogu izraditi standardni kod za nekoliko sekundi, od jednostavnih pomoćnih funkcija do rutinskih CRUD operacija.
-
Detekcija i testiranje grešaka: Vještačka inteligencija također pomaže u otkrivanju grešaka i poboljšanju kvalitete koda. Alati za statičku analizu i linteri pokretani vještačkom inteligencijom mogu označiti potencijalne greške ili sigurnosne ranjivosti učeći iz prošlih obrazaca grešaka. Neki alati vještačke inteligencije automatski generiraju jedinične testove ili predlažu testne slučajeve analizirajući putanje koda. To znači da programer može dobiti trenutne povratne informacije o graničnim slučajevima koje je možda propustio. Ranim pronalaženjem grešaka i predlaganjem ispravki, vještačka inteligencija djeluje kao neumorni QA asistent koji radi zajedno s programerom.
-
Optimizacija i refaktorisanje koda: Druga upotreba umjetne inteligencije je predlaganje poboljšanja postojećeg koda. S obzirom na isječak koda, umjetna inteligencija može preporučiti efikasnije algoritme ili čistije implementacije prepoznavanjem obrazaca u kodu. Na primjer, može predložiti idiomatskiju upotrebu biblioteke ili označiti redundantni kod koji se može refaktorisati. Ovo pomaže u smanjenju tehničkog duga i poboljšanju performansi. Alati za refaktorisanje zasnovani na umjetnoj inteligenciji mogu transformirati kod kako bi se pridržavao najboljih praksi ili ažurirati kod na nove verzije API-ja, štedeći programerima vrijeme prilikom ručnog čišćenja.
-
DevOps i automatizacija: Pored pisanja koda, vještačka inteligencija doprinosi procesima izgradnje i implementacije. Inteligentni CI/CD alati koriste mašinsko učenje kako bi predvidjeli koji testovi će vjerovatno propasti ili dali prioritet određenim poslovima izgradnje, čineći kontinuirani integracijski proces bržim i efikasnijim. Vještačka inteligencija može analizirati produkcijske zapise i metrike performansi kako bi utvrdila probleme ili predložila optimizacije infrastrukture. U suštini, vještačka inteligencija pomaže ne samo u kodiranju, već i u cijelom životnom ciklusu razvoja softvera – od planiranja do održavanja.
-
Interfejsi prirodnog jezika i dokumentacija: Također vidimo da vještačka inteligencija omogućava prirodnije interakcije s alatima za razvoj. Programeri mogu doslovno tražiti od vještačke inteligencije da izvrši zadatke („generira funkciju koja radi X“ ili „objasni ovaj kod“) i dobije rezultate. AI chatbotovi (poput ChatGPT-a ili specijaliziranih developerskih asistenata) mogu odgovoriti na programerska pitanja, pomoći s dokumentacijom, pa čak i pisati projektnu dokumentaciju ili slati poruke na osnovu promjena koda. Ovo premošćuje jaz između ljudske namjere i koda, čineći razvoj pristupačnijim onima koji mogu opisati šta žele.
-

Programeri usvajaju AI alate: Istraživanje iz 2023. godine pokazuje da je ogromnih 92% programera koristilo AI alate za kodiranje u nekom svojstvu - bilo na poslu, u svojim ličnim projektima ili oboje. Samo mali broj od 8% je izjavilo da ne koristi nikakvu AI pomoć pri kodiranju. Ovaj grafikon pokazuje da dvije trećine programera koriste AI alate i na poslu i izvan njega, dok ih četvrtina koristi isključivo na poslu, a mala manjina samo izvan posla. Zaključak je jasan: Kodiranje uz pomoć AI brzo je postalo uobičajeno među programerima ( Istraživanje otkriva utjecaj AI na iskustvo programera - GitHub Blog ).
Ovo širenje AI alata u razvoju dovelo je do povećane efikasnosti i smanjenja napornog rada u kodiranju. Proizvodi se kreiraju brže jer AI pomaže u generiranju standardnog koda i rješavanju repetitivnih zadataka ( Is There a Future for Software Engineers? The Impact of AI [2024] ) ( Hoće li AI zamijeniti developere 2025: Kratki uvid u budućnost ). Alati poput Copilota mogu čak predložiti cijele algoritme ili rješenja koja „možda nisu odmah očigledna ljudskim developerima“, zahvaljujući učenju iz ogromnih skupova podataka koda. Primjeri iz stvarnog svijeta obiluju: inženjer može zamoliti ChatGPT da implementira funkciju sortiranja ili pronađe grešku u njihovom kodu, a AI će proizvesti nacrt rješenja za nekoliko sekundi. Kompanije poput Amazona i Microsofta su rasporedile AI parove programere (Amazonov CodeWhisperer i Microsoftov Copilot) u svoje timove developera, izvještavajući o bržem završetku zadataka i manje svakodnevnih sati provedenih na standardnom kodu. U stvari, 70% programera anketiranih u anketi Stack Overflow iz 2023. godine reklo je da već koriste ili planiraju koristiti AI alate u svom procesu razvoja ( 70% programera koristi AI alate za kodiranje, 3% ima veliko povjerenje u njihovu tačnost - ShiftMag ). Najpopularniji asistenti su ChatGPT (koristi ga ~83% ispitanika) i GitHub Copilot (~56%), što ukazuje na to da su opći konverzacijski AI i IDE-integrirani pomagači ključni igrači. Programeri se prvenstveno okreću ovim alatima kako bi povećali produktivnost (navodi ~33% ispitanika) i ubrzali učenje (25%), dok ih oko 25% koristi kako bi postali efikasniji automatizacijom repetitivnih poslova.
Važno je napomenuti da uloga umjetne inteligencije u programiranju nije u potpunosti nova – njeni elementi postoje već godinama (uzmimo u obzir automatsko dovršavanje koda u IDE-ima ili okvirima za automatsko testiranje). Ali posljednje dvije godine bile su prekretnica. Pojava moćnih modela velikih jezika (poput OpenAI-jeve GPT serije i DeepMind-ovog AlphaCode-a) dramatično je proširila ono što je moguće. Na primjer, DeepMind-ov AlphaCode sistem dospio je na naslovnice nastupivši na konkurentnom nivou takmičenja u programiranju , postigavši plasman od oko 54% na izazovima kodiranja – u suštini izjednačavajući vještinu prosječnog ljudskog takmičara ( DeepMind-ov AlphaCode izjednačava prosječnu vještinu programera ). Ovo je bio prvi put da je AI sistem nastupio konkurentno na takmičenjima u programiranju. Međutim, indikativno je da je čak i AlphaCode, sa svom svojom vještinom, još uvijek bio daleko od pobjede nad najboljim ljudskim programerima. U tim takmičenjima, AlphaCode je mogao riješiti oko 30% problema unutar dozvoljenih pokušaja, dok vrhunski ljudski programeri rješavaju >90% problema jednim pokušajem. Ovaj nedostatak naglašava da, iako vještačka inteligencija može da se nosi sa dobro definisanim algoritamskim zadacima do određene tačke, najteži problemi koji zahtevaju duboko razmišljanje i domišljatost ostaju ljudsko uporište .
Ukratko, umjetna inteligencija se čvrsto ukorijenila u svakodnevnom alatima programera. Od pomoći u pisanju koda do optimizacije implementacije, dotiče se svakog dijela procesa razvoja. Odnos danas je uglavnom simbiotski: umjetna inteligencija djeluje kao kopilot (prikladno nazvan) koji pomaže programerima da kodiraju brže i s manje frustracije, umjesto nezavisnog autopilota koji može letjeti samostalno. U sljedećem odjeljku, istražit ćemo kako ova integracija alata umjetne inteligencije mijenja ulogu programera i prirodu njihovog posla, nabolje ili nagore.
Kako umjetna inteligencija mijenja uloge i produktivnost programera
S obzirom na to da umjetna inteligencija obavlja sve više rutinskih poslova, uloga softverskog programera zaista počinje evoluirati. Umjesto da provode sate pišući standardni kod ili otklanjajući grešaka u svakodnevnim situacijama, programeri mogu prepustiti te zadatke svojim AI asistentima. Ovo pomjera fokus programera prema rješavanju problema višeg nivoa, arhitekturi i kreativnim aspektima softverskog inženjerstva. U suštini, umjetna inteligencija proširuje mogućnosti programera, omogućavajući im da budu produktivniji i potencijalno inovativniji. Ali da li se to prevodi u manji broj programerskih poslova ili jednostavno u drugačiju vrstu posla? Istražimo uticaj na produktivnost i uloge:
Povećanje produktivnosti: Prema većini izvještaja i ranih studija, alati za AI kodiranje značajno povećavaju produktivnost programera. Istraživanje GitHub-a je pokazalo da su programeri koji koriste Copilot bili u stanju da završe zadatke mnogo brže od onih bez AI pomoći. U jednom eksperimentu, programeri su u prosjeku riješili zadatak kodiranja 55% brže uz Copilot-ovu pomoć - trajalo je oko 1 sat i 11 minuta umjesto 2 sata i 41 minute bez nje ( Istraživanje: kvantificiranje utjecaja GitHub Copilota na produktivnost i sreću programera - GitHub Blog ). To je zapanjujući dobitak u brzini. Nije stvar samo u brzini; programeri izvještavaju da AI pomoć pomaže u smanjenju frustracije i "prekida toka". U anketama, 88% programera koji koriste Copilot reklo je da ih je učinio produktivnijima i omogućio im da se fokusiraju na zadovoljavajući posao ( Koliki je postotak programera rekao da github copilot čini... ). Ovi alati pomažu programerima da ostanu "u zoni" rješavajući zamorne dijelove, što zauzvrat štedi mentalnu energiju za teže probleme. Kao rezultat toga, mnogi programeri smatraju da je kodiranje postalo ugodnije - manje mukotrpnog rada i više kreativnosti.
Promjena svakodnevnog rada: Svakodnevni tijek rada programera mijenja se uz ove dobitke produktivnosti. Veliki dio „zauzetog posla“ – pisanje standardnih obrazaca, ponavljanje uobičajenih obrazaca, traženje sintakse – može se prenijeti na umjetnu inteligenciju. Na primjer, umjesto ručnog pisanja klase podataka s getterima i setterima, programer može jednostavno zatražiti od umjetne inteligencije da je generira. Umjesto pretraživanja dokumentacije kako bi pronašao pravi API poziv, programer može pitati umjetnu inteligenciju na prirodnom jeziku. To znači da programeri provode relativno manje vremena na mehaničko kodiranje, a više vremena na zadacima koji zahtijevaju ljudsku prosudbu . Kako umjetna inteligencija preuzima pisanje jednostavnih 80% koda, posao programera se prebacuje na nadgledanje rezultata umjetne inteligencije (pregled prijedloga koda, njihovo testiranje) i rješavanje nezgodnih 20% problema koje umjetna inteligencija ne može riješiti. U praksi, programer bi mogao započeti svoj dan trijažom zahtjeva za povlačenjem koje generira umjetna inteligencija ili pregledom serije ispravki koje predlaže umjetna inteligencija, umjesto da piše sve te promjene od nule.
Saradnja i timska dinamika: Zanimljivo je da vještačka inteligencija također utiče na timsku dinamiku. S automatizacijom rutinskih zadataka, timovi potencijalno mogu postići više s manje mlađih programera kojima je dodijeljen naporan posao. Neke kompanije izvještavaju da njihovi stariji inženjeri mogu biti samostalniji – mogu brzo napraviti prototipove funkcija uz pomoć vještačke inteligencije, bez potrebe da mlađi programer radi početne nacrte. Međutim, ovo postavlja novi izazov: mentorstvo i dijeljenje znanja. Umjesto da mlađi inženjeri uče obavljajući jednostavne zadatke, možda će morati naučiti kako efikasno upravljati AI rezultatima. Timska saradnja bi se mogla prebaciti na aktivnosti poput zajedničkog usavršavanja AI uputa ili pregledavanja AI generiranog koda za greške. S pozitivne strane, kada svi u timu imaju AI asistenta, to bi moglo izjednačiti uvjete i omogućiti više vremena za diskusije o dizajnu, kreativno brainstorming i rješavanje složenih korisničkih zahtjeva koje trenutno nijedna vještačka inteligencija ne razumije odmah. U stvari, više od četiri od pet programera vjeruje da će alati za AI kodiranje poboljšati timsku saradnju ili ih barem osloboditi da više sarađuju na dizajnu i rješavanju problema, prema nalazima ankete GitHub-a iz 2023. ( Anketa otkriva uticaj AI-a na iskustvo programera - GitHub Blog ).
Utjecaj na radne uloge: Glavno pitanje je hoće li umjetna inteligencija smanjiti potražnju za programerima (budući da je svaki programer sada produktivniji) ili će jednostavno promijeniti tražene vještine. Historijski presedan s drugim automatizacijama (poput porasta devops alata ili programskih jezika višeg nivoa) sugerira da se poslovi programera ne eliminiraju toliko koliko se povećavaju . Zaista, industrijski analitičari predviđaju će uloge softverskog inženjerstva nastaviti rasti , ali će se priroda tih uloga promijeniti. Nedavni Gartnerov izvještaj predviđa da će do 2027. godine 50% organizacija za softversko inženjerstvo usvojiti platforme za "inteligenciju softverskog inženjerstva" proširene umjetnom inteligencijom kako bi povećale produktivnost , u odnosu na samo 5% u 2024. godini ( Is There a Future for Software Engineers? The Impact of AI [2024] ). Ovo ukazuje na to da će kompanije široko integrirati umjetnu inteligenciju, ali implicira da će programeri raditi s tim inteligentnim platformama. Slično tome, konsultantska firma McKinsey predviđa da će, iako umjetna inteligencija može automatizirati mnoge zadatke, otprilike 80% programerskih poslova i dalje zahtijevati čovjeka u petlji i ostati "usmjereno na čovjeka" . Drugim riječima, i dalje će nam trebati ljudi za većinu pozicija programera, ali opisi poslova se mogu promijeniti.
Jedna moguća promjena je pojava uloga poput "AI softverskog inženjera" ili "Prompt inženjera" - programera koji su specijalizirani za izgradnju ili orkestriranje AI komponenti. Već vidimo vrtoglavi porast potražnje za programerima sa stručnošću u AI/ML. Prema analizi Indeed-a, tri najtraženija posla vezana za AI su naučnik podataka, softverski inženjer i inženjer mašinskog učenja , a potražnja za ovim ulogama se više nego udvostručila u posljednje tri godine ( Is There a Future for Software Engineers? The Impact of AI [2024] ). Od tradicionalnih softverskih inženjera se sve više očekuje da razumiju osnove mašinskog učenja ili da integrišu AI usluge u aplikacije. Daleko od toga da programere učini suvišnim, "AI bi mogao podići profesiju na viši nivo, omogućavajući programerima da se fokusiraju na zadatke višeg nivoa i inovacije." ( Hoće li AI zamijeniti programere 2025.: Kratki uvid u budućnost ) Mnogi rutinski zadaci kodiranja mogli bi se obavljati AI-jem, ali programeri će biti više zaokupljeni dizajnom sistema, integracijom modula, osiguranjem kvaliteta i rješavanjem novih problema. Viši inženjer iz jedne kompanije koja se fokusira na AI je to dobro sažeo: AI ne zamjenjuje naše programere; ona pojačava . Jedan programer naoružan moćnim AI alatima može obaviti posao za nekoliko njih, ali taj programer sada preuzima posao koji je složeniji i utjecajniji.
Primjer iz stvarnog svijeta: Razmotrite scenarij iz softverske firme koja je integrirala GitHub Copilot za sve svoje developere. Neposredni efekat bio je značajno smanjenje vremena utrošenog na pisanje jediničnih testova i standardnog koda. Jedna mlađa developerka je otkrila da koristeći Copilot može brzo generirati 80% koda za novu funkciju, a zatim provoditi vrijeme prilagođavajući preostalih 20% i pišući integracijske testove. Njena produktivnost u smislu izlaznog koda se skoro udvostručila, ali što je još zanimljivije, priroda njenog doprinosa se promijenila - postala je više recenzent koda i dizajner testova za kod napisan pomoću vještačke inteligencije. Tim je također primijetio da su pregledi koda počeli otkrivati greške vještačke inteligencije , a ne ljudske tipografske greške. Na primjer, Copilot je povremeno predlagao nesigurnu implementaciju šifriranja; ljudski developeri su morali uočiti i ispraviti te greške. Ovakav primjer pokazuje da, iako se izlaz povećavao, ljudski nadzor i stručnost postali su još kritičniji u radnom procesu.
Ukratko, vještačka inteligencija nesumnjivo mijenja način na koji programeri rade: čini ih bržim i omogućava im da se bave ambicioznijim problemima, ali također zahtijeva od njih da unaprijede svoje vještine (i u korištenju vještačke inteligencije i u razmišljanju na višem nivou). To je manje priča o tome kako „vještačka inteligencija preuzima poslove“, a više priča o tome kako „vještačka inteligencija mijenja poslove“. Programeri koji nauče efikasno koristiti ove alate mogu umnožiti svoj utjecaj – kliše koji često čujemo je: „Vještačka inteligencija neće zamijeniti programere, ali programeri koji koriste vještačku inteligenciju mogu zamijeniti one koji to ne čine.“ Sljedeći odjeljci će istražiti zašto su ljudski programeri i dalje neophodni (ono što vještačka inteligencija ne može dobro raditi) i kako programeri mogu prilagoditi svoje vještine da bi napredovali uz vještačku inteligenciju.
Ograničenja umjetne inteligencije (Zašto ljudi ostaju vitalni)
Uprkos svojim impresivnim mogućnostima, današnja umjetna inteligencija ima jasna ograničenja koja je sprječavaju da ljudske programere učini zastarjelim. Razumijevanje ovih ograničenja ključno je za razumijevanje zašto su programeri i dalje vrlo potrebni u procesu razvoja. Umjetna inteligencija je moćan alat, ali nije čarobni štapić koji može zamijeniti kreativnost, kritičko razmišljanje i kontekstualno razumijevanje ljudskog programera. Evo nekih od osnovnih nedostataka umjetne inteligencije u programiranju i odgovarajućih prednosti ljudskih programera:
-
Nedostatak istinskog razumijevanja i kreativnosti: Trenutni modeli umjetne inteligencije ne razumiju kod ili probleme na način na koji to ljudi čine; oni prepoznaju obrasce i iznose vjerovatne rezultate na osnovu podataka o obuci. To znači da se umjetna inteligencija može boriti sa zadacima koji zahtijevaju originalna, kreativna rješenja ili duboko razumijevanje novih problemskih domena. Vještačka inteligencija možda može generirati kod koji ispunjava specifikaciju koju je ranije vidjela, ali ako je zamolite da dizajnira novi algoritam za neviđeni problem ili da interpretira dvosmislen zahtjev, vjerovatno će posustati. Kao što je jedan posmatrač rekao, umjetnoj inteligenciji danas „nedostaju kreativne i kritičke sposobnosti razmišljanja koje ljudski programeri donose na stol“. ( Hoće li umjetna inteligencija zamijeniti programere 2025.: Kratki uvid u budućnost ) Ljudi se ističu u razmišljanju izvan okvira – kombinirajući znanje o domeni, intuiciju i kreativnost za dizajniranje softverskih arhitektura ili rješavanje složenih problema. Vještačka inteligencija, nasuprot tome, ograničena je obrascima koje je naučila; ako problem ne odgovara dobro tim obrascima, umjetna inteligencija može proizvesti netačan ili besmislen kod (često samouvjereno!). Inovacije u softveru – osmišljavanje novih funkcija, novih korisničkih iskustava ili novih tehničkih pristupa – ostaju aktivnost koju pokreću ljudi.
-
Razumijevanje konteksta i šire slike: Izrada softvera nije samo pisanje linija koda. To uključuje razumijevanje razloga zašto se kod koristi – poslovnih zahtjeva, potreba korisnika i konteksta u kojem softver funkcioniše. VI ima vrlo uzak okvir konteksta (obično ograničen na unos koji se daje u datom trenutku). Ne razumije u potpunosti sveobuhvatnu svrhu sistema ili kako jedan modul interaguje s drugim izvan onoga što je eksplicitno navedeno u kodu. Kao rezultat toga, VI može generirati kod koji tehnički funkcionira za mali zadatak, ali se ne uklapa dobro u veću arhitekturu sistema ili krši neke implicitne zahtjeve. Potrebni su ljudski programeri kako bi se osiguralo da je softver usklađen s poslovnim ciljevima i očekivanjima korisnika. Dizajn složenih sistema – razumijevanje kako bi se promjena u jednom dijelu mogla proširiti na druge, kako uravnotežiti kompromise (poput performansi i čitljivosti) i kako planirati dugoročnu evoluciju baze koda – nešto je što VI danas ne može učiniti. U velikim projektima s hiljadama komponenti, VI „vidi drveće, ali ne i šumu“. Kao što je navedeno u jednoj analizi, „AI se bori s razumijevanjem punog konteksta i složenosti velikih softverskih projekata“, uključujući poslovne zahtjeve i razmatranja korisničkog iskustva ( Hoće li AI zamijeniti developere 2025.: Kratki uvid u budućnost ). Ljudi održavaju viziju šire slike.
-
Zdrav razum i rješavanje dvosmislenosti: Zahtjevi u stvarnim projektima su često nejasni ili se razvijaju. Ljudski programer može tražiti pojašnjenje, donositi razumne pretpostavke ili odbijati nerealne zahtjeve. AI ne posjeduje zdravorazumsko razmišljanje niti sposobnost postavljanja pojašnjavajućih pitanja (osim ako nisu eksplicitno uključena u prompt, a čak ni tada nema garancije da će biti ispravno postavljen). Zbog toga kod generiran AI ponekad može biti tehnički ispravan, ali funkcionalno neispravan – nedostaje mu prosudba da zna šta je korisnik zaista namjeravao ako su upute nejasne. Nasuprot tome, ljudski programer može interpretirati zahtjev visokog nivoa („učiniti ovaj korisnički interfejs intuitivnijim“ ili „aplikacija bi trebala elegantno obrađivati nepravilne unose“) i shvatiti šta treba uraditi u kodu. AI bi trebale izuzetno detaljne, nedvosmislene specifikacije da bi zaista zamijenila programera, a čak je i pisanje takvih specifikacija jednako teško kao i pisanje samog koda. Kao što je članak Forbes Tech Councila prikladno primijetio, da bi AI zaista zamijenio programere, morao bi razumjeti nejasne upute i prilagoditi se poput čovjeka – nivo razmišljanja koji trenutna AI ne posjeduje ( Objava Sergija Kuzina - LinkedIn ).
-
Pouzdanost i „halucinacije“: Današnji generativni AI modeli imaju dobro poznatu manu: mogu proizvesti netačne ili potpuno izmišljene izlaze, fenomen koji se često naziva halucinacija . U kodiranju, to bi moglo značiti da AI piše kod koji izgleda uvjerljivo, ali je logički pogrešan ili nesiguran. Programeri ne mogu slijepo vjerovati AI prijedlozima. U praksi, svaki dio koda napisanog od strane AI zahtijeva pažljiv pregled i testiranje od strane čovjeka . Podaci ankete Stack Overflow odražavaju ovo - od onih koji koriste AI alate, samo 3% ima veliko povjerenje u tačnost AI izlaza, a zapravo mali procenat aktivno ne vjeruje u nju ( 70% programera koristi AI alate za kodiranje, 3% ima veliko povjerenje u njihovu tačnost - ShiftMag ). Velika većina programera tretira AI prijedloge kao korisne savjete, a ne kao sveto pismo. Ovo nisko povjerenje je opravdano jer AI može napraviti bizarne greške koje nijedan kompetentan čovjek ne bi napravio (poput grešaka koje se razlikuju za jedan, korištenja zastarjelih funkcija ili stvaranja neefikasnih rješenja) jer ne razmišlja zaista o problemu. Kao što je jedan komentar na forumu ironično primijetio: „Oni (AI) mnogo haluciniraju i donose čudne dizajnerske odluke koje čovjek nikada ne bi napravio“ ( Hoće li programeri postati zastarjeli zbog AI? - Savjeti za karijeru ). Ljudski nadzor je ključan za otkrivanje ovih grešaka. AI vam može brzo donijeti 90% funkcije, ali ako preostalih 10% ima suptilnu grešku, i dalje je na ljudskom programeru da je dijagnosticira i popravi. A kada nešto pođe po zlu u produkciji, ljudski inženjeri su ti koji moraju otklanjati greške – AI još uvijek ne može preuzeti odgovornost za svoje greške.
-
Održavanje i razvoj kodnih baza: Softverski projekti žive i rastu godinama. Zahtijevaju konzistentan stil, jasnoću za buduće održavatelje i ažuriranja kako se zahtjevi mijenjaju. AI danas nema pamćenje prošlih odluka (osim ograničenih uputa), tako da možda neće održavati kod konzistentnim u velikom projektu osim ako nije vođen. Ljudski programeri osiguravaju održivost koda - pisanje jasne dokumentacije, odabir čitljivih rješenja umjesto pametnih, ali nejasnih, i refaktorisanje koda po potrebi kada se arhitektura razvija. AI može pomoći u ovim zadacima (kao što je predlaganje refaktorisanja), ali odlučivanje o tome šta refaktorisati ili koji dijelovi sistema trebaju redizajn je stvar ljudske prosudbe. Nadalje, prilikom integracije komponenti, razumijevanje utjecaja nove funkcije na postojeće module (osiguravanje unatrag kompatibilnosti, itd.) je nešto čime se ljudi bave. Kod generiran od strane AI moraju integrirati i harmonizirati ljudi. Kao eksperiment, neki programeri su pokušali pustiti ChatGPT da izgradi cijele male aplikacije; rezultat često funkcionira u početku, ali postaje vrlo teško održavati ili proširiti jer AI ne primjenjuje dosljedno promišljenu arhitekturu - donosi lokalne odluke koje bi ljudski arhitekta izbjegao.
-
Etička i sigurnosna razmatranja: Kako umjetna inteligencija piše sve više koda, to također postavlja pitanja pristranosti, sigurnosti i etike. Umjetna inteligencija može nenamjerno uvesti sigurnosne ranjivosti (na primjer, nepravilan proces sanitizacije ulaza ili korištenje nesigurnih kriptografskih praksi) koje bi iskusni ljudski programer uočio. Također, umjetna inteligencija nema inherentni osjećaj za etiku ili brigu za pravednost – na primjer, mogla bi se obučavati na pristrasnim podacima i predlagati algoritme koji nenamjerno diskriminiraju (u funkciji koju pokreće umjetna inteligencija, kao što je kod za odobravanje kredita ili algoritam za zapošljavanje). Potrebni su ljudski programeri za reviziju izlaza umjetne inteligencije za ove probleme, osiguranje usklađenosti s propisima i donošenje etičkih razmatranja u softver. Društveni aspekt softvera – razumijevanje povjerenja korisnika, zabrinutosti oko privatnosti i donošenje dizajnerskih izbora koji su u skladu s ljudskim vrijednostima – „ne može se zanemariti. Ovi aspekti razvoja usmjereni na ljude su izvan dohvata umjetne inteligencije, barem ne u doglednoj budućnosti.“ ( Hoće li umjetna inteligencija zamijeniti programere 2025.: Kratki uvid u budućnost ) Programeri moraju služiti kao savjest i pokazatelj kvalitete za doprinose umjetne inteligencije.
U svjetlu ovih ograničenja, trenutni konsenzus je da je vještačka inteligencija alat, a ne zamjena . Kao što je rekao Satya Nadella, radi se o osnaživanju programera, a ne o njihovoj zamjeni ( Hoće li vještačka inteligencija zamijeniti programere? Istina iza te pompe | od The PyCoach | Artificial Corner | Mart, 2025 | Medium ). Vještačka inteligencija se može smatrati mlađim asistentom: brza je, neumorna i može prvi proći kroz mnoge zadatke, ali joj je potrebno vodstvo i stručnost starijeg programera da bi proizvela uglađen konačni proizvod. Indikativno je da se čak i najnapredniji sistemi kodiranja zasnovani na vještačkoj inteligenciji koriste kao asistenti u stvarnoj upotrebi (Copilot, CodeWhisperer, itd.), a ne kao autonomni programeri. Kompanije ne otpuštaju svoje programerske timove i ne puštaju vještačku inteligenciju da se kreće na divlje; umjesto toga, one ugrađuju vještačku inteligenciju u tokove rada programera kako bi im pomogle.
Jedan ilustrativan citat dolazi od Sama Altmana iz OpenAI-a, koji je primijetio da čak i kako se AI agenti poboljšavaju, „ovi AI agenti neće u potpunosti zamijeniti ljude“ u razvoju softvera ( Sam Altman kaže da će AI agenti uskoro obavljati zadatke koje rade softverski inženjeri: Cijela priča u 5 tačaka - India Today ). Oni će funkcionirati kao „virtualni saradnici“ koji obavljaju dobro definirane zadatke za ljudske inženjere, posebno one zadatke tipične za softverskog inženjera niskog nivoa s nekoliko godina iskustva. Drugim riječima, AI bi na kraju mogao obavljati posao mlađeg programera u nekim područjima, ali taj mlađi programer ne postaje nezaposlen – on se razvija u ulogu nadzora AI i rješavanja zadataka višeg nivoa koje AI ne može obaviti. Čak i gledajući u budućnost, gdje neki istraživači predviđaju da će do 2040. godine AI moći napisati većinu svog koda ( Is There a Future for Software Engineers? The Impact of AI [2024] ), općenito se slaže da će ljudski programeri i dalje biti potrebni da nadgledaju, vode i pružaju kreativnu iskru i kritičko razmišljanje koje mašinama nedostaje .
Također vrijedi napomenuti da je razvoj softvera više od pukog kodiranja . Uključuje komunikaciju sa zainteresovanim stranama, razumijevanje korisničkih priča, saradnju u timovima i iterativni dizajn – sve su to područja gdje su ljudske vještine nezamjenjive. Vještačka inteligencija ne može sjediti na sastanku s klijentom kako bi razradila šta oni zaista žele, niti može pregovarati o prioritetima ili inspirisati tim vizijom za proizvod. Ljudski element ostaje ključan.
Ukratko, vještačka inteligencija ima važne slabosti: nedostatak istinske kreativnosti, ograničeno razumijevanje konteksta, sklonost greškama, nedostatak odgovornosti i nedostatak razumijevanja širih implikacija softverskih odluka. Upravo su ove praznine ono u čemu ljudski programeri blistaju. Umjesto da se vještačka inteligencija posmatra kao prijetnja, možda je tačnije posmatrati je kao moćno pojačalo za ljudske programere – koje se bavi svakodnevnim stvarima kako bi se ljudi mogli fokusirati na suštinsko. U sljedećem odjeljku će se raspravljati o tome kako programeri mogu iskoristiti ovo pojačanje prilagođavanjem svojih vještina i uloga kako bi ostali relevantni i vrijedni u svijetu razvoja proširenog vještačkom inteligencijom.
Prilagođavanje i napredak u dobu umjetne inteligencije
Za programere i developere, porast upotrebe umjetne inteligencije u kodiranju ne mora biti strašna prijetnja – to može biti prilika. Ključ je prilagoditi se i razvijati zajedno s tehnologijom. Oni koji nauče koristiti umjetnu inteligenciju vjerovatno će se pokazati produktivnijima i traženijima, dok će oni koji je ignoriraju možda otkriti da zaostaju. U ovom odjeljku fokusiramo se na praktične korake i strategije za developere kako bi ostali relevantni i napredovali kako alati umjetne inteligencije postaju dio svakodnevnog razvoja. Način razmišljanja koji treba usvojiti je kontinuirano učenje i saradnja s umjetnom inteligencijom, a ne konkurencija. Evo kako se developeri mogu prilagoditi i koje nove vještine i uloge trebaju razmotriti:
1. Prihvatite AI kao alat (Naučite kako efikasno koristiti AI asistente za kodiranje): Prije svega, programeri bi se trebali upoznati s dostupnim AI alatima. Tretirajte Copilot, ChatGPT ili druge AI koderske programe kao svog novog partnera za programiranje u paru. To znači naučiti kako pisati dobre upute ili komentare kako biste dobili korisne prijedloge koda i znati kako brzo validirati ili otkloniti greške u kodu koji generira AI. Baš kao što je programer morao naučiti svoj IDE ili kontrolu verzija, učenje posebnosti AI asistenta postaje dio skupa vještina. Na primjer, programer može vježbati tako što će uzeti dio koda koji je napisao i zamoliti AI da ga poboljša, a zatim analizirati promjene. Ili, kada započinjete zadatak, ocrtati ga u komentarima i vidjeti šta AI pruža, a zatim ga usavršiti. Vremenom ćete razviti intuiciju za ono u čemu je AI dobar i kako s njim ko-kreirati. Zamislite to kao "razvoj uz pomoć AI" - novu vještinu koju možete dodati u svoj set alata. Zaista, programeri sada govore o "brzom inženjerstvu" kao vještini - znajući kako postaviti AI prava pitanja. Oni koji je savladaju mogu postići znatno bolje rezultate s istim alatima. Zapamtite, „programeri koji koriste vještačku inteligenciju mogu zamijeniti one koji je ne koriste“ – stoga prihvatite tehnologiju i učinite je svojim saveznikom.
2. Fokus na vještine višeg nivoa (rješavanje problema, dizajn sistema, arhitektura): Budući da vještačka inteligencija može podnijeti više kodiranja niskog nivoa, programeri bi popeti na ljestvici apstrakcije . To znači stavljanje većeg naglaska na razumijevanje dizajna i arhitekture sistema. Razvijajte vještine u rješavanju složenih problema, dizajniranju skalabilnih sistema i donošenju arhitektonskih odluka – područja gdje je ljudski uvid ključan. Fokusirajte se na zašto i kako rješenja, a ne samo na šta. Na primjer, umjesto da trošite svo vrijeme usavršavajući funkciju sortiranja (kada vještačka inteligencija može napisati jednu za vas), posvetite vrijeme razumijevanju koji je pristup sortiranju optimalan za kontekst vaše aplikacije i kako se uklapa u tok podataka vašeg sistema. Dizajnersko razmišljanje – uzimajući u obzir potrebe korisnika, tokove podataka i interakcije komponenti – bit će visoko cijenjeno. Vještačka inteligencija može generirati kod, ali programer je taj koji odlučuje o ukupnoj strukturi softvera i osigurava da svi dijelovi rade u harmoniji. Izoštravanjem svog razmišljanja o široj slici, postajete nezamjenjivi kao osoba koja vodi vještačku inteligenciju (i ostatak tima) u izgradnji prave stvari. Kao što je navedeno u jednom izvještaju koji se odnosi na budućnost, programeri bi se trebali „fokusirati na područja u kojima je ljudski uvid nezamjenjiv, kao što su rješavanje problema, dizajnersko razmišljanje i razumijevanje korisničkih potreba.“ ( Hoće li vještačka inteligencija zamijeniti programere 2025. godine: Kratki uvid u budućnost )
3. Unaprijedite svoje znanje o umjetnoj inteligenciji i strojnom učenju: Da biste radili uz umjetnu inteligenciju, korisno je razumjeti umjetnu inteligenciju . Nije potrebno da svi programeri postanu istraživači strojnog učenja, ali dobro razumijevanje načina na koji ovi modeli funkcioniraju bit će korisno. Naučite osnove strojnog učenja i dubokog učenja – ovo ne samo da bi moglo otvoriti nove karijerne puteve (budući da poslovi povezani s umjetnom inteligencijom cvjetaju ( Is There a Future for Software Engineers? The Impact of AI [2024] )), već će vam pomoći i da efikasnije koristite alate umjetne inteligencije. Ako znate, na primjer, ograničenja velikog jezičkog modela i kako je obučen, možete predvidjeti kada bi mogao propasti i u skladu s tim dizajnirati svoje upute ili testove. Osim toga, mnogi softverski proizvodi sada uključuju značajke umjetne inteligencije (na primjer, aplikacija s mehanizmom za preporuke ili chatbot). Softverski programer s određenim znanjem o strojnom učenju može doprinijeti tim značajkama ili barem inteligentno surađivati sa znanstvenicima podataka. Ključna područja koja treba razmotriti za učenje uključuju: osnove znanosti o podacima , kako prethodno obraditi podatke, obuku naspram zaključivanja i etiku umjetne inteligencije. Upoznajte se s AI okvirima (TensorFlow, PyTorch) i cloud AI servisima; čak i ako ne gradite modele od nule, poznavanje načina integracije AI API-ja u aplikaciju je vrijedna vještina. Ukratko, postati "AI pismen" brzo postaje jednako važno kao i biti pismen u web ili tehnologijama baza podataka. Programeri koji mogu savladati svijet tradicionalnog softverskog inženjerstva i AI bit će u vrhunskoj poziciji da vode buduće projekte.
4. Razvijte jače meke vještine i znanje o domeni: Kako umjetna inteligencija preuzima mehaničke zadatke, jedinstveno ljudske vještine postaju još važnije. Komunikacija, timski rad i stručnost u domeni su područja na koja treba udvostručiti napore. Razvoj softvera često se svodi na razumijevanje problematične domene – bilo da se radi o finansijama, zdravstvu, obrazovanju ili bilo kojoj drugoj oblasti – i prevođenju toga u rješenja. Vještačka inteligencija neće imati taj kontekst niti sposobnost da se poveže sa zainteresovanim stranama, ali vi imate. Stjecanje većeg znanja u domeni u kojoj radite čini vas osobom kojoj se možete obratiti kako biste osigurali da softver zaista zadovoljava potrebe stvarnog svijeta. Slično tome, fokusirajte se na svoje vještine saradnje: mentorstvo, liderstvo i koordinaciju. Timovima će i dalje biti potrebni stariji programeri za pregled koda (uključujući kod napisan od strane umjetne inteligencije), za mentoriranje mlađih programera o najboljim praksama i za koordinaciju složenih projekata. Vještačka inteligencija ne uklanja potrebu za ljudskom interakcijom u projektima. U stvari, s generiranjem koda od strane umjetne inteligencije, mentorstvo starijeg programera moglo bi se pomaknuti prema podučavanju mlađih programera kako raditi s umjetnom inteligencijom i validirati njen rezultat , umjesto kako napisati for-loop. Biti u stanju voditi druge u ovoj novoj paradigmi je vrijedna vještina. Također, vježbajte kritičko razmišljanje – preispitujte i testirajte rezultate umjetne inteligencije i ohrabrujte druge da čine isto. Razvijanje zdravog skepticizma i verifikacijskog načina razmišljanja spriječit će slijepo oslanjanje na umjetnu inteligenciju i smanjiti greške. U suštini, poboljšajte vještine koje umjetnoj inteligenciji nedostaju: razumijevanje ljudi i konteksta, kritička analiza i interdisciplinarno razmišljanje.
5. Cjeloživotno učenje i prilagodljivost: Tempo promjena u AI je izuzetno brz. Ono što se danas čini vrhunskim, za nekoliko godina može biti zastarjelo. Programeri moraju prihvatiti cjeloživotno učenje više nego ikad. To može značiti redovno isprobavanje novih AI asistenata za kodiranje, pohađanje online kurseva ili certifikacija iz AI/ML, čitanje istraživačkih blogova kako biste bili u toku sa onim što dolazi ili učešće u zajednicama programera fokusiranim na AI. Prilagodljivost je ključna – budite spremni da se prilagodite novim alatima i radnim procesima kako se budu pojavljivali. Na primjer, ako se pojavi novi AI alat koji može automatizirati dizajn korisničkog interfejsa iz skica, front-end programer bi trebao biti spreman da to nauči i uključi, preusmjeravajući svoj fokus možda na usavršavanje generiranog korisničkog interfejsa ili poboljšanje detalja korisničkog iskustva koje je automatizacija propustila. Oni koji učenje tretiraju kao kontinuirani dio svoje karijere (što mnogi programeri već rade) lakše će integrirati AI razvoj. Jedna strategija je da posvetite mali dio svoje sedmice učenju i eksperimentiranju – tretirajte to kao ulaganje u vlastitu budućnost. Kompanije također počinju pružati obuku svojim programerima o efikasnom korištenju AI alata; iskorištavanje takvih prilika će vas dovesti u prednost. Programeri koji će napredovati bit će oni koji vide vještačku inteligenciju kao partnera u razvoju i koji će kontinuirano usavršavati svoj pristup saradnji s tim partnerom.
6. Istražite nove uloge i karijerne puteve: Kako se vještačka inteligencija (AI) sve više uklapa u razvoj, pojavljuju se nove mogućnosti karijere. Na primjer, inženjer za promptove ili specijalista za integraciju vještačke inteligencije su uloge usmjerene na kreiranje pravih promptova, tokova rada i infrastrukture za korištenje vještačke inteligencije u proizvodima. Drugi primjer je inženjer za etiku vještačke inteligencije ili revizor vještačke inteligencije – uloge koje se fokusiraju na pregled AI izlaza radi pristranosti, usklađenosti i ispravnosti. Ako ste zainteresirani za ta područja, pozicioniranje s pravim znanjem moglo bi otvoriti ove nove puteve. Čak i unutar klasičnih uloga, možete pronaći niše poput "AI-potpomognutog frontend programera" naspram "AI-potpomognutog backend programera", gdje svaki koristi specijalizirane alate. Pratite kako organizacije strukturiraju timove oko vještačke inteligencije. Neke kompanije imaju "AI cehove" ili centre izvrsnosti koji vode usvajanje vještačke inteligencije u projektima – aktivnost u takvim grupama može vas staviti u prvi plan. Štaviše, razmislite o doprinosu razvoju samih AI alata: na primjer, rad na projektima otvorenog koda koji poboljšavaju alate za razvojne programere (možda poboljšavajući sposobnost vještačke inteligencije da objasni kod, itd.). Ovo ne samo da produbljuje vaše razumijevanje tehnologije, već vas i smješta u zajednicu koja predvodi promjene. Suština je da budete proaktivni u pogledu agilnosti u karijeri . Ako dijelovi vašeg trenutnog posla postanu automatizovani, budite spremni da pređete na uloge koje dizajniraju, nadgledaju ili proširuju te automatizovane dijelove.
7. Održavanje i prikazivanje ljudskog kvaliteta: U svijetu u kojem vještačka inteligencija može generirati prosječan kod za prosječan problem, ljudski programeri trebaju težiti stvaranju izuzetnih i empatičnih rješenja koja vještačka inteligencija ne može. To može značiti fokusiranje na finoću korisničkog iskustva, optimizaciju performansi za neobične scenarije ili jednostavno pisanje koda koji je čist i dobro dokumentiran (vještačka inteligencija nije dobra u pisanju smislene dokumentacije ili razumljivih komentara koda - tu možete dodati vrijednost!). Potrudite se integrirati ljudski uvid u rad: na primjer, ako vještačka inteligencija generira dio koda, dodajete komentare koji objašnjavaju obrazloženje na način koji drugi čovjek kasnije može razumjeti ili ga prilagođavate da bude čitljiviji. Na taj način dodajete sloj profesionalnosti i kvaliteta koji nedostaje isključivo mašinski generiranom radu. Vremenom će vas izgraditi reputaciju za visokokvalitetni softver koji "jednostavno radi" u stvarnom svijetu. Klijenti i poslodavci će cijeniti programere koji mogu kombinirati efikasnost vještačke inteligencije s ljudskom vještinom .
Razmotrimo i kako bi se obrazovni putevi mogli prilagoditi. Novi programeri koji ulaze u ovo područje ne bi trebali izbjegavati alate umjetne inteligencije u svom procesu učenja. Naprotiv, učenje pomoću umjetne inteligencije (npr. korištenje umjetne inteligencije za pomoć pri domaćim zadaćama ili projektima, a zatim analiza rezultata) može ubrzati njihovo razumijevanje. Međutim, ključno je i dubinski naučiti osnove – algoritme, strukture podataka i osnovne koncepte programiranja – kako biste imali čvrstu osnovu i mogli prepoznati kada umjetna inteligencija skreće s puta. Budući da umjetna inteligencija obrađuje jednostavne vježbe kodiranja, nastavni planovi i programi mogu dati veću težinu projektima koji zahtijevaju dizajn i integraciju. Ako ste početnik, usredotočite se na izgradnju portfolija koji pokazuje vašu sposobnost rješavanja složenih problema i korištenja umjetne inteligencije kao jednog od mnogih alata.
Da sažmemo strategiju prilagođavanja: budite pilot, a ne putnik. Koristite alate umjetne inteligencije, ali nemojte se previše oslanjati na njih ili biti samozadovoljni. Nastavite usavršavati jedinstveno ljudske aspekte razvoja. Grady Booch, cijenjeni pionir softverskog inženjerstva, to je dobro rekao: „Umjetna inteligencija će fundamentalno promijeniti ono što znači biti programer. Neće eliminirati programere, ali će od njih zahtijevati da razviju nove vještine i rade na nove načine.“ ( Is There a Future for Software Engineers? The Impact of AI [2024] ). Proaktivnim razvojem tih novih vještina i načina rada, programeri mogu osigurati da ostanu u kontroli svojih karijera.
Da bismo sumirali ovaj odjeljak, evo kratke kontrolne liste za programere koji žele osigurati svoju karijeru za budućnost u doba umjetne inteligencije:
| Strategija prilagođavanja | Šta učiniti |
|---|---|
| Naučite AI alate | Vježbajte s Copilotom, ChatGPT-om itd. Naučite brzo pisanje i validaciju rezultata. |
| Fokus na rješavanje problema | Poboljšajte vještine dizajna i arhitekture sistema. Pozabavite se pitanjima „zašto“ i „kako“, a ne samo „šta“. |
| Usavršavanje u oblasti umjetne inteligencije/strojnog učenja | Naučite osnove mašinskog učenja i nauke o podacima. Razumite kako funkcionišu modeli umjetne inteligencije i kako ih integrisati. |
| Jačanje mekih vještina | Poboljšajte komunikaciju, timski rad i stručnost u domeni. Budite most između tehnologije i potreba stvarnog svijeta. |
| Cjeloživotno učenje | Ostanite znatiželjni i nastavite učiti nove tehnologije. Pridružite se zajednicama, pohađajte kurseve i eksperimentirajte s novim alatima za razvoj umjetne inteligencije. |
| Istražite nove uloge | Pratite nove uloge (AI revizor, promptni inženjer itd.) i budite spremni na promjene ako vas one zanimaju. |
| Održavanje kvalitete i etike | Uvijek pregledajte kvalitet rezultata umjetne inteligencije. Dodajte ljudski dodir – dokumentaciju, etička razmatranja, podešavanja usmjerena na korisnika. |
Slijedeći ove strategije, programeri mogu okrenuti revoluciju umjetne inteligencije u svoju korist. Oni koji se prilagode otkrit će da umjetna inteligencija poboljšava njihove mogućnosti i omogućava im da proizvode bolji softver nego ikad prije, umjesto da ga učine zastarjelim.
Budući izgledi: Saradnja između umjetne inteligencije i programera
Šta budućnost nosi za programiranje u svijetu vođenom vještačkom inteligencijom? Na osnovu trenutnih trendova, možemo očekivati budućnost u kojoj će vještačka inteligencija i ljudski programeri još bliže sarađivati . Uloga programera će se vjerovatno nastaviti pomjerati ka nadzornoj i kreativnoj poziciji, pri čemu će vještačka inteligencija obavljati više "teškog posla" pod ljudskim vodstvom. U ovom zaključnom dijelu, predviđamo neke buduće scenarije i uvjeravamo da izgledi za programere mogu ostati pozitivni - pod uslovom da se nastavimo prilagođavati.
U bliskoj budućnosti (sljedećih 5-10 godina), vrlo je vjerovatno da će vještačka inteligencija (AI) postati sveprisutna u procesu razvoja kao i sami računari. Kao što danas nijedan programer ne piše kod bez editora ili bez Google/StackOverflow-a pri ruci, uskoro nijedan programer neće pisati kod bez nekog oblika AI pomoći koji radi u pozadini. Integrisana razvojna okruženja (IDE) se već razvijaju kako bi u svoju srž uključila funkcije pokretane AI-jem (na primjer, editore koda koji vam mogu objasniti kod ili predložiti cijele promjene koda u projektu). Možda ćemo doći do tačke u kojoj će primarni zadatak programera biti formulisanje problema i ograničenja na način koji AI može razumjeti, a zatim kuriranje i usavršavanje rješenja koja AI pruža . Ovo podsjeća na oblik programiranja višeg nivoa, koji se ponekad naziva "brzo programiranje" ili "AI orkestracija".
Međutim, suština onoga što treba uraditi – rješavanje problema za ljude – ostaje nepromijenjena. Buduća umjetna inteligencija bi mogla generirati cijelu aplikaciju iz opisa („napravi mi mobilnu aplikaciju za zakazivanje ljekarskih pregleda“), ali posao razjašnjavanja tog opisa, osiguravanja njegove tačnosti i finog podešavanja rezultata kako bi se oduševili korisnici uključivat će programere (zajedno s dizajnerima, menadžerima proizvoda itd.). U stvari, ako osnovno generiranje aplikacija postane jednostavno, ljudska kreativnost i inovacije u softveru postat će još važnije za diferencijaciju proizvoda. Mogli bismo vidjeti procvat softvera, gdje mnoge rutinske aplikacije generira umjetna inteligencija, dok se ljudski programeri koncentriraju na najsavremenije, složene ili kreativne projekte koji pomiču granice.
Također postoji mogućnost da će se smanjiti barijera za ulazak u programiranje – što znači da bi više ljudi koji nisu tradicionalni softverski inženjeri (recimo, poslovni analitičar, naučnik ili marketinški stručnjak) moglo kreirati softver koristeći AI alate (nastavak pokreta „bez koda/niskog koda“ koji je dodatno pojačan AI-jem). Ovo ne eliminiše potrebu za profesionalnim programerima; naprotiv, mijenja je. Programeri bi u takvim slučajevima mogli preuzeti više konsultantske ili vodeće uloge, osiguravajući da su ove aplikacije koje razvijaju građani sigurne, efikasne i održive. Profesionalni programeri bi se mogli fokusirati na izgradnju platformi i API-ja koje koriste „neprogrameri“ uz pomoć AI-ja.
Iz perspektive radnih mjesta, određene programerske uloge mogu se smanjivati, dok druge rastu. Na primjer, neke početne pozicije kodiranja mogle bi se smanjiti ako se kompanije oslanjaju na vještačku inteligenciju za jednostavne zadatke. Može se zamisliti da bi mali startup u budućnosti trebao možda upola manji broj junior programera jer njihovi senior programeri, opremljeni vještačkom inteligencijom, mogu obaviti veliki dio osnovnog posla. Ali istovremeno, pojavit će se potpuno novi poslovi (kao što smo raspravljali u odjeljku o prilagođavanju). Štaviše, kako softver prožima sve više ekonomije (s vještačkom inteligencijom koja generira softver za nišne potrebe), ukupna potražnja za poslovima vezanim za softver mogla bi nastaviti rasti. Historija pokazuje da automatizacija često dovodi do više poslova na dugi rok , iako su to različiti poslovi - na primjer, automatizacija određenih proizvodnih zadataka dovela je do rasta poslova za dizajniranje, održavanje i poboljšanje automatiziranih sistema. U kontekstu umjetne inteligencije i programiranja, iako su neki zadaci koje je junior programer ranije obavljao automatizirani, ukupni opseg softvera koji želimo kreirati se širi (jer je sada jeftinije/brže ga kreirati), što može dovesti do većeg broja projekata i samim tim potrebe za većim ljudskim nadzorom, upravljanjem projektima, arhitekturom itd. Izvještaj Svjetskog ekonomskog foruma o budućim poslovima sugerira da su uloge u razvoju softvera i umjetnoj inteligenciji među onima čija sve veća , a ne manja, zbog digitalne transformacije.
Trebali bismo uzeti u obzir i ranije spomenuto predviđanje za 2040. godinu „mašine... pisati većinu svog koda“ ( Is There a Future for Software Engineers? The Impact of AI [2024] ). Ako se to pokaže tačnim, šta preostaje ljudskim programerima? Vjerovatno bi fokus bio na vođenju na vrlo visokom nivou (govoriti mašinama šta želimo da postignu u opštim crtama) i na područjima koja uključuju složenu integraciju sistema, razumijevanje ljudske psihologije ili nove problemske domene. Čak i u takvom scenariju, ljudi bi preuzeli uloge slične dizajnerima proizvoda, inženjerima zahtjeva i trenerima/verifikatorima AI . Kod bi se uglavnom mogao sam pisati, ali neko mora odlučiti koji kod treba napisati i zašto , a zatim provjeriti da li je krajnji rezultat ispravan i usklađen s ciljevima. To je analogno načinu na koji bi se autonomni automobili jednog dana mogli sami voziti, ali i dalje govorite automobilu kuda da ide i intervenišete u složenim situacijama - plus ljudi dizajniraju puteve, saobraćajne zakone i svu infrastrukturu oko njega.
Većina stručnjaka stoga zamišlja budućnost saradnje, a ne zamjene . Kako je to formulisala jedna tehnološka konsultantska firma, „budućnost razvoja nije izbor između ljudi ili vještačke inteligencije, već saradnja koja iskorištava najbolje od oba.“ ( Da li će vještačka inteligencija zamijeniti developere u 2025.: Kratki uvid u budućnost ) Vještačka inteligencija će nesumnjivo transformisati razvoj softvera, ali je više evolucija uloge developera nego izumiranje. Developeri koji „prihvate promjene, prilagode svoje vještine i fokusiraju se na jedinstveno ljudske aspekte svog rada“ otkrit će da vještačka inteligencija poboljšava njihove sposobnosti, a ne umanjuje njihovu vrijednost.
Možemo povući paralelu s drugom oblašću: razmotrimo porast računarski potpomognutog dizajna (CAD) u inženjerstvu i arhitekturi. Jesu li ti alati zamijenili inženjere i arhitekte? Ne - učinili su ih produktivnijima i omogućili im da kreiraju složenije dizajne. Ali ljudska kreativnost i donošenje odluka ostali su ključni. Slično tome, vještačka inteligencija se može posmatrati kao računarski potpomognuto kodiranje - pomoći će u rješavanju složenosti i mukotrpnog rada, ali programer ostaje dizajner i donosilac odluka.
Dugoročno gledano, ako zamislimo zaista naprednu umjetnu inteligenciju (recimo, neki oblik opće umjetne inteligencije koji bi u teoriji mogao raditi većinu onoga što čovjek može), društvene i ekonomske promjene bile bi mnogo šire od pukog programiranja. Još nismo tamo i imamo značajnu kontrolu nad načinom na koji integriramo umjetnu inteligenciju u naš rad. Razborit put je nastaviti integrirati umjetnu inteligenciju na načine koji povećavaju ljudski potencijal . To znači ulaganje u alate i prakse (i politike) koje ljude drže u toku. Već vidimo da kompanije uspostavljaju upravljanje umjetnom inteligencijom – smjernice o tome kako bi se umjetna inteligencija trebala koristiti u razvoju kako bi se osigurali etički i efikasni rezultati ( Istraživanje otkriva utjecaj umjetne inteligencije na iskustvo programera - GitHub Blog ). Ovaj trend će vjerovatno rasti, osiguravajući da ljudski nadzor formalno bude dio razvojnog procesa umjetne inteligencije.
Zaključno, na pitanje „Hoće li vještačka inteligencija zamijeniti programere?“ može se odgovoriti: Ne – ali će značajno promijeniti ono što programeri rade. Svakodnevni dijelovi programiranja su na putu da budu uglavnom automatizovani. Kreativni, izazovni i na čovjeka usmjereni dijelovi su tu da ostanu i zaista će postati istaknutiji. Budućnost će vjerovatno vidjeti programere koji rade rame uz rame sa sve pametnijim vještačkim asistentima, slično kao član tima. Zamislite da imate kolegu koji se bavi vještačkom inteligencijom i koji može da generiše kod 24/7 – to je veliko povećanje produktivnosti, ali i dalje mu je potreban neko da mu kaže na kojim zadacima da radi i da provjerava njegov rad.
Najbolje rezultate će postići oni koji tretiraju vještačku inteligenciju kao saradnika. Kao što je jedan izvršni direktor rekao: „Vještačka inteligencija neće zamijeniti programere, ali programeri koji je koriste zamijenit će one koji je ne koriste.“ U praksi, to znači da je na programerima odgovornost da se razvijaju s tehnologijom. Profesija programiranja ne umire – ona se prilagođava . U doglednoj budućnosti će biti mnogo softvera za izradu i problema za rješavanje, možda čak i više nego danas. Ostanite obrazovani, ostanite fleksibilni i fokusirajte se na ono što ljudi najbolje rade, programeri mogu osigurati uspješnu i ispunjenu karijeru u partnerstvu s vještačkom inteligencijom .
Konačno, vrijedi proslaviti činjenicu da ulazimo u eru u kojoj programeri imaju supermoći na raspolaganju. Sljedeća generacija programera će za nekoliko sati postići ono što je nekada trajalo danima i rješavati probleme koji su ranije bili nedostižni, koristeći vještačku inteligenciju. Umjesto straha, osjećaj za budućnost može biti optimizam i znatiželja . Sve dok pristupamo vještačkoj inteligenciji otvorenih očiju – svjesni njenih ograničenja i naše odgovornosti – možemo oblikovati budućnost u kojoj će vještačka inteligencija i programeri zajedno graditi nevjerovatne softverske sisteme, daleko iznad onoga što bi bilo ko od njih mogao učiniti sam. Ljudska kreativnost u kombinaciji s efikasnošću mašina je moćna kombinacija. Na kraju, ne radi se o zamjeni , već o sinergiji. Priča o vještačkoj inteligenciji i programerima se još uvijek piše – i pisat će je i ljudi i mašine, zajedno.
Izvori:
-
Brainhub, „Ima li budućnosti za softverske inženjere? Uticaj vještačke inteligencije [2024]“ ( Ima li budućnosti za softverske inženjere? Uticaj vještačke inteligencije [2024] ).
-
Brainhub, stručni citati Satye Nadelle i Jeffa Deana o umjetnoj inteligenciji kao alatu, a ne zamjeni ( Is There a Future for Software Engineers? The Impact of AI [2024] ) ( Is There a Future for Software Engineers? The Impact of AI [2024] ).
-
Medium (PyCoach), „Hoće li vještačka inteligencija zamijeniti programere? Istina iza pompe“ , s napomenom o nijansiranoj stvarnosti naspram pompe ( Hoće li vještačka inteligencija zamijeniti programere? Istina iza pompe | od The PyCoach | Artificial Corner | mart 2025. | Medium ) i citat Sama Altmana o tome da je vještačka inteligencija dobra u zadacima, ali ne i u punim poslovima.
-
DesignGurus, „Hoće li vještačka inteligencija zamijeniti developere… (2025)“ , s naglaskom na to da će vještačka inteligencija unaprijediti i unaprijediti developere, umjesto da ih učini suvišnima ( Hoće li vještačka inteligencija zamijeniti developere u 2025.: Kratki uvid u budućnost ) i navodeći područja u kojima vještačka inteligencija zaostaje (kreativnost, kontekst, etika).
-
Anketa programera Stack Overflow-a iz 2023. godine, korištenje AI alata od strane 70% programera, nisko povjerenje u tačnost (3% ima veliko povjerenje) ( 70% programera koristi AI alate za kodiranje, 3% ima veliko povjerenje u njihovu tačnost - ShiftMag ).
-
GitHub anketa iz 2023. godine pokazuje da je 92% programera isprobalo alate za AI kodiranje, a 70% vidi koristi ( Anketa otkriva utjecaj AI-a na iskustvo programera - GitHub blog ).
-
Istraživanje GitHub Copilota, koje je pokazalo 55% brže završavanje zadataka uz pomoć umjetne inteligencije ( Istraživanje: kvantificiranje utjecaja GitHub Copilota na produktivnost i sreću programera - GitHub Blog ).
-
GeekWire, o DeepMindovom AlphaCodeu koji postiže rezultate na prosječnom nivou ljudskog programera (top 54%), ali daleko od vrhunskih performansi ( DeepMindov AlphaCode dostiže prosječnu programersku vještinu ).
-
IndiaToday (februar 2025.), sažetak Sam Altmanove vizije o „kolegama“ koji rade na umjetnoj inteligenciji, ali koji „neće u potpunosti zamijeniti ljude“ ( Sam Altman kaže da će agenti umjetne inteligencije uskoro obavljati zadatke koje rade softverski inženjeri: Cijela priča u 5 tačaka - India Today ).
-
McKinsey & Company procjenjuju da će ~80% programerskih poslova ostati usmjereno na ljude uprkos automatizaciji ( Is There a Future for Software Engineers? The Impact of AI [2024] ).
Članci koje biste možda željeli pročitati nakon ovog:
🔗 Najbolji alati za parno programiranje umjetne inteligencije
Istražite vodeće alate umjetne inteligencije koji mogu surađivati s vama poput partnera za kodiranje kako biste poboljšali svoj tijek rada za razvoj.
🔗 Koja je vještačka inteligencija najbolja za kodiranje – Najbolji asistenti za vještačko kodiranje
Vodič kroz najefikasnije alate vještačke inteligencije za generiranje koda, otklanjanje grešaka i ubrzavanje softverskih projekata.
🔗 Razvoj softvera za vještačku inteligenciju – Transformacija budućnosti tehnologije.
Shvatite kako vještačka inteligencija revolucionira način na koji se softver gradi, testira i primjenjuje.