Fokusirani programer kodira na prijenosnom računalu u modernom uredskom radnom prostoru.

Hoće li umjetna inteligencija zamijeniti programere? Zadnji koji izađe, isključite uređivač koda.

Tko zadnji izađe, isključite uređivač koda. “ Ova ironična fraza kruži po forumima za programere, odražavajući tjeskobni humor zbog porasta broja asistenata za kodiranje u AI-u. Kako AI modeli postaju sve sposobniji za pisanje koda, mnogi programeri se pitaju hoće li ljudski programeri doživjeti istu sudbinu kao i operateri dizala ili operateri centrala – poslovi koje je automatizacija učinila zastarjelima. Godine 2024., smjeli naslovi su proglašavali da bi umjetna inteligencija uskoro mogla pisati sav naš kod, ostavljajući ljudske programere bez ikakvog posla. Ali iza pompe i senzacionalizma, stvarnost je puno nijansiranija.

Da, umjetna inteligencija sada može generirati kod brže od bilo kojeg čovjeka, ali koliko je taj kod dobar i može li umjetna inteligencija sama obaviti cijeli životni ciklus razvoja softvera? Većina stručnjaka kaže „ne tako brzo“. Vođe softverskog inženjerstva poput izvršnog direktora Microsofta Satye Nadelle naglašavaju da „umjetna inteligencija neće zamijeniti programere, ali će postati bitan alat u njihovom arsenalu. Radi se o osnaživanju ljudi da rade više, a ne manje.“ ( Hoće li umjetna inteligencija zamijeniti programere? Istina iza te pompe | autor The PyCoach | Artificial Corner | ožujak 2025. | Medium ) Slično tome, Googleov šef za umjetnu inteligenciju Jeff Dean napominje da iako umjetna 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 umjetna inteligencija „vrlo dobra u zadacima“ , ali „strašna u punim poslovima“ bez ljudskog nadzora. Ukratko, umjetna inteligencija je izvrsna 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 umjetna inteligencija zamijeniti programere?“. Ispitujemo kako umjetna inteligencija utječe na uloge u razvoju softvera danas i koje su promjene pred nama. 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 umjetna inteligencija razvija. Umjesto pojednostavljenog odgovora da ili ne, vidjet ćemo da je budućnost suradnja između umjetne inteligencije i ljudskih programera. Cilj je istaknuti praktične uvide o tome što programeri mogu učiniti kako bi napredovali u dobu umjetne inteligencije – od usvajanja novih alata do učenja novih vještina i predviđanja kako bi se karijere programera mogle razvijati u nadolazećim godinama.

Umjetna inteligencija u razvoju softvera danas

Umjetna inteligencija se brzo uplela u moderni tijek rada razvoja softvera. Daleko od znanstvene fantastike, alati temeljeni 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ćujući programerima da se usredotoče na složenije aspekte stvaranja softvera. Pogledajmo neke od istaknutih mogućnosti i alata umjetne inteligencije koji trenutno transformiraju programiranje:

  • Generiranje koda i automatsko dovršavanje: Moderni AI asistenti za kodiranje mogu stvarati kod na temelju 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 redak 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 što vam je potrebno jednostavnim jezikom. Ovi alati mogu izraditi standardni kod u sekundama, od jednostavnih pomoćnih funkcija do rutinskih CRUD operacija.

  • Otkrivanje i testiranje grešaka: Umjetna inteligencija također pomaže u otkrivanju grešaka i poboljšanju kvalitete koda. Alati za statičku analizu i linteri pokretani umjetnom inteligencijom mogu označiti potencijalne greške ili sigurnosne ranjivosti učeći iz prošlih obrazaca grešaka. Neki alati umjetne inteligencije automatski generiraju jedinične testove ili predlažu testne slučajeve analizirajući putove koda. To znači da programer može dobiti trenutne povratne informacije o rubnim slučajevima koje je možda propustio. Ranim pronalaženjem grešaka i predlaganjem ispravaka, umjetna inteligencija djeluje poput neumornog QA asistenta koji radi uz programera.

  • Optimizacija i refaktoriranje koda: Druga upotreba umjetne inteligencije je predlaganje poboljšanja postojećeg koda. S obzirom na isječak, umjetna inteligencija može preporučiti učinkovitije algoritme ili čišće implementacije prepoznavanjem uzoraka u kodu. Na primjer, može predložiti idiomatskiju upotrebu biblioteke ili označiti redundantni kod koji se može refaktorirati. To pomaže u smanjenju tehničkog duga i poboljšanju performansi. Alati za refaktoriranje temeljeni 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 u ručnom čišćenju.

  • DevOps i automatizacija: Osim pisanja koda, umjetna inteligencija doprinosi procesima izgradnje i implementacije. Inteligentni CI/CD alati koriste strojno učenje kako bi predvidjeli koji će testovi vjerojatno propasti ili kako bi odredili prioritete određenih poslova izgradnje, čineći kontinuirani integracijski proces bržim i učinkovitijim. Umjetna inteligencija može analizirati produkcijske zapise i metrike performansi kako bi identificirala probleme ili predložila optimizacije infrastrukture. Zapravo, umjetna inteligencija pomaže ne samo u kodiranju, već i u cijelom životnom ciklusu razvoja softvera – od planiranja do održavanja.

  • Sučelja prirodnog jezika i dokumentacija: Također vidimo da umjetna inteligencija omogućuje prirodnije interakcije s razvojnim alatima. Razvojni programeri mogu doslovno zatražiti od umjetne inteligencije da izvrši zadatke („generiraj funkciju koja radi X“ ili „objasni ovaj kod“) i dobije rezultate. AI chatbotovi (poput ChatGPT-a ili specijaliziranih razvojnih asistenata) mogu odgovoriti na programerska pitanja, pomoći s dokumentacijom, pa čak i pisati projektnu dokumentaciju ili slati poruke na temelju promjena koda. To premošćuje jaz između ljudske namjere i koda, čineći razvoj pristupačnijim onima koji mogu opisati što žele.

 

Razvojni programeri usvajaju AI alate: Istraživanje iz 2023. pokazuje da je čak 92% razvojnih programera koristilo AI alate za kodiranje u nekom svojstvu - bilo na poslu, u svojim osobnim projektima ili oboje. Samo mali broj od 8% izvijestio je da ne koristi nikakvu AI pomoć pri kodiranju. Ovaj grafikon pokazuje da dvije trećine razvojnih 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: AI kodiranje brzo je postalo uobičajeno među razvojnim programerima ( Istraživanje otkriva utjecaj AI-a na iskustvo razvojnih programera - GitHub Blog ).

Ovo širenje AI alata u razvoju dovelo je do povećane učinkovitosti i smanjenja napornog kodiranja. Proizvodi se stvaraju 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čita 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 izraditi nacrt rješenja u sekundama. Tvrtke poput Amazona i Microsofta rasporedile su AI parove programere (Amazonov CodeWhisperer i Microsoftov Copilot) u svoje timove developera, izvještavajući o bržem dovršetku zadataka i manje svakodnevnih sati provedenih na standardnom kodu. Zapravo, 70% programera anketiranih u anketi Stack Overflow iz 2023. 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 toč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 učinkovitiji automatizacijom repetitivnog rada.

Važno je napomenuti da uloga umjetne inteligencije u programiranju nije posve nova – njezini elementi postoje već godinama (uzmimo u obzir automatsko dovršavanje koda u IDE-ima ili okvirima za automatizirano testiranje). No, posljednje dvije godine bile su prekretnica. Pojava moćnih modela velikih jezika (poput OpenAI-jeve GPT serije i DeepMindovog AlphaCodea) dramatično je proširila ono što je moguće. Na primjer, DeepMindov AlphaCode sustav dospio je na naslovnice nastupivši na konkurentnoj razini natjecanja u programiranju , postigavši ​​oko 54% plasmana na izazovima kodiranja – u biti izjednačavajući vještinu prosječnog ljudskog natjecatelja ( DeepMindov AlphaCode izjednačava prosječnu vještinu programera ). Ovo je bio prvi put da je AI sustav postigao konkurentne rezultate na natjecanjima u programiranju. Međutim, znakovito je da je čak i AlphaCode, sa svom svojom vještinom, još uvijek bio daleko od pobjede nad najboljim ljudskim programerima. U tim natjecanjima, AlphaCode je mogao riješiti oko 30% problema unutar dopuštenih pokušaja, dok vrhunski ljudski programeri rješavaju >90% problema jednim pokušajem. Ovaj nedostatak naglašava da, iako umjetna inteligencija može do određene točke rješavati dobro definirane algoritamske zadatke, najteži problemi koji zahtijevaju duboko razmišljanje i domišljatost ostaju ljudsko uporište .

Ukratko, umjetna inteligencija se čvrsto ukorijenila u svakodnevnom alatu programera. Od pomoći u pisanju koda do optimizacije implementacije, dotiče se svakog dijela procesa razvoja. Odnos je danas uglavnom simbiotski: umjetna inteligencija djeluje kao kopilot (prikladno nazvan) koji pomaže programerima da kodiraju brže i s manje frustracije, umjesto neovisnog 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 više rutinskog posla, uloga softverskog programera doista se počinje razvijati. Umjesto da provode sate pišući standardni kod ili ispravljajući svakodnevne pogreške, programeri mogu prepustiti te zadatke svojim AI asistentima. To pomiče fokus programera prema rješavanju problema više razine, arhitekturi i kreativnim aspektima softverskog inženjerstva. U biti, umjetna inteligencija proširuje programere, omogućujući im da budu produktivniji i potencijalno inovativniji. Ali prevodi li se to u manje programerskih poslova ili jednostavno u drugačiju vrstu posla? Istražimo utjecaj na produktivnost i uloge:

Povećanje produktivnosti: Prema većini izvještaja i ranih studija, alati za kodiranje umjetne inteligencije značajno povećavaju produktivnost programera. Istraživanje GitHuba pokazalo je da su programeri koji koriste Copilot mogli dovršiti zadatke mnogo brže od onih bez pomoći umjetne inteligencije. U jednom eksperimentu, programeri su u prosjeku riješili zadatak kodiranja 55% brže uz pomoć Copilota - trajalo je oko 1 sat i 11 minuta umjesto 2 sata i 41 minute bez njega ( 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 pomoć umjetne inteligencije 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 usredotoče na zadovoljavajući posao ( Koliki je postotak programera rekao da github copilot čini... ). Ovi alati pomažu programerima da ostanu "u zoni" rješavanjem zamornih zadataka, š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. Velik 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 potaknuti umjetnu inteligenciju da je generira. Umjesto pretraživanja dokumentacije kako bi pronašao pravi API poziv, programer može pitati umjetnu inteligenciju prirodnim jezikom. 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 prebacuje se na nadzor izlaza umjetne inteligencije (pregled prijedloga koda, njihovo testiranje) i rješavanje nezgodnih 20% problema koje umjetna inteligencija ne može shvatiti. U praksi, programer bi mogao započeti svoj dan trijažom zahtjeva za povlačenjem koje generira umjetna inteligencija ili pregledom serije ispravaka koje predlaže umjetna inteligencija, umjesto da piše sve te promjene od nule.

Suradnja i timska dinamika: Zanimljivo je da umjetna inteligencija također utječe na timsku dinamiku. S automatizacijom rutinskih zadataka, timovi potencijalno mogu postići više s manje mlađih programera zaduženih za naporan posao. Neke tvrtke izvještavaju da njihovi stariji inženjeri mogu biti samostalniji – mogu brzo izraditi prototipove značajki uz pomoć umjetne inteligencije, bez potrebe da mlađi inženjer radi početne nacrte. Međutim, to postavlja novi izazov: mentorstvo i dijeljenje znanja. Umjesto da mlađi uče obavljajući jednostavne zadatke, možda će morati naučiti kako učinkovito upravljati AI rezultatima. Timska suradnja mogla bi se prebaciti na aktivnosti poput zajedničkog poboljšanja AI uputa ili pregleda AI generiranog koda za pogreške. S pozitivne strane, kada svi u timu imaju AI asistenta, to bi moglo izjednačiti uvjete i omogućiti više vremena za rasprave o dizajnu, kreativno brainstorming i rješavanje složenih korisničkih zahtjeva koje trenutno nijedna umjetna inteligencija ne razumije odmah. Zapravo, više od četiri od pet programera vjeruje da će alati za umjetnu inteligenciju (AI) kodiranje poboljšati timsku suradnju ili ih barem osloboditi da više surađuju na dizajnu i rješavanju problema, prema nalazima ankete GitHub-a iz 2023. ( Anketa otkriva utjecaj umjetne inteligencije na iskustvo programera - GitHub Blog ).

Utjecaj na radne uloge: Glavno je pitanje 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. Povijesni presedan s drugim automatizacijama (poput porasta devops alata ili programskih jezika više razine) sugerira da se poslovi programera ne ukidaju toliko koliko se povećavaju . Doista, industrijski analitičari predviđaju će uloge softverskog inženjerstva nastaviti rasti , ali će se priroda tih uloga promijeniti. Nedavno izvješće Gartnera predviđa da će do 2027. 50% organizacija softverskog inženjerstva usvojiti platforme „softverske inženjerske inteligencije“ proširene umjetnom inteligencijom kako bi povećale produktivnost , u odnosu na samo 5% u 2024. ( Is There a Future for Software Engineers? The Impact of AI [2024] ). To ukazuje na to da će tvrtke široko integrirati umjetnu inteligenciju, ali implicira da će programeri raditi s tim inteligentnim platformama. Slično tome, konzultantska tvrtka 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 bi se mogli promijeniti.

Jedan mogući pomak je pojava uloga poput „AI softverskog inženjera“ ili „Promptnog 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 povezana s AI su znanstvenik podataka, softverski inženjer i inženjer strojnog učenja , a potražnja za tim ulogama više se nego udvostručila u posljednje tri godine ( Is There a Future for Software Engineers? The Impact of AI [2024] ). Od tradicionalnih softverskih inženjera sve se više očekuje da razumiju osnove strojnog učenja ili da integriraju AI usluge u aplikacije. Daleko od toga da programere učini suvišnima, „AI bi mogao podići profesiju, omogućujući programerima da se usredotoče na zadatke više razine i inovacije.“ ( Hoće li AI zamijeniti programere u 2025.: Kratki uvid u budućnost ) Mnogi rutinski zadaci kodiranja mogli bi se obavljati AI-om, ali programeri će biti više zaokupljeni dizajnom sustava, integracijom modula, osiguravanjem kvalitete i rješavanjem novih problema. Viši inženjer iz jedne tvrtke usmjerene na AI dobro je to sažeo: AI ne zamjenjuje naše programere; ona pojačava . Jedan programer naoružan moćnim AI alatima može obaviti posao za više njih, ali taj programer sada preuzima posao koji je složeniji i utjecajniji.

Primjer iz stvarnog svijeta: Razmotrimo scenarij iz softverske tvrtke koja je integrirala GitHub Copilot za sve svoje developere. Neposredni učinak bio je značajno smanjenje vremena provedenog na pisanju jediničnih testova i standardnog koda. Jedna mlađa developerica otkrila je da pomoću Copilota može brzo generirati 80% koda nove značajke, a zatim provoditi vrijeme prilagođavajući preostalih 20% i pišući integracijske testove. Njezina produktivnost u smislu izlaznog koda gotovo se udvostručila, ali što je još zanimljivije, priroda njezina doprinosa se promijenila - postala je više recenzent koda i dizajnerica testova za kod napisan umjetnom inteligencijom. Tim je također primijetio da su pregledi koda počeli otkrivati ​​pogreške umjetne inteligencije , a ne ljudske tipografske pogreške. Na primjer, Copilot je povremeno predlagao nesigurnu implementaciju enkripcije; ljudski developeri morali su ih uočiti i ispraviti. Ovakav primjer pokazuje da su, iako se izlaz povećavao, ljudski nadzor i stručnost postali još kritičniji u tijeku rada.

Ukratko, umjetna inteligencija nesumnjivo mijenja način rada programera: čini ih bržima i omogućuje im rješavanje ambicioznijih problema, ali i zahtijeva od njih da unaprijede svoje vještine (i u korištenju umjetne inteligencije i u razmišljanju na višoj razini). To je manje priča o „umjetnoj inteligenciji koja preuzima poslove“, a više priča o „umjetnoj inteligenciji koja mijenja poslove“. Programeri koji nauče učinkovito koristiti ove alate mogu umnožiti svoj utjecaj – klišej koji često čujemo je: „umjetna inteligencija neće zamijeniti programere, ali programeri koji koriste umjetnu inteligenciju mogu zamijeniti one koji to ne čine.“ Sljedeći odjeljci istražit će zašto su ljudski programeri i dalje bitni (što umjetna inteligencija ne može dobro raditi) i kako programeri mogu prilagoditi svoje vještine kako bi napredovali uz umjetnu inteligenciju.

Ograničenja umjetne inteligencije (Zašto ljudi ostaju vitalni)

Unatoč impresivnim mogućnostima, današnja umjetna inteligencija ima jasna ograničenja koja je sprječavaju da ljudske programere učini zastarjelim. Razumijevanje tih 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 temeljnih nedostataka umjetne inteligencije u programiranju i odgovarajućih snaga ljudskih programera:

  • Nedostatak istinskog razumijevanja i kreativnosti: Trenutni modeli umjetne inteligencije ne razumiju kod ili probleme na način na koji to ljudi čine; prepoznaju obrasce i iznose vjerojatne rezultate na temelju 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. Umjetna inteligencija možda može generirati kod koji zadovoljava specifikaciju koju je već vidjela, ali ako je zamolite da dizajnira novi algoritam za neviđeni problem ili da interpretira dvosmislen zahtjev, vjerojatno će posustati. Kao što je jedan promatrač 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 domene, intuiciju i kreativnost za dizajniranje softverskih arhitektura ili rješavanje složenih problema. Umjetna inteligencija, nasuprot tome, ograničena je obrascima koje je naučila; ako problem ne odgovara dobro tim obrascima, umjetna inteligencija može proizvesti netočan ili besmislen kod (često samouvjereno!). Inovacije u softveru – smišljanje novih značajki, 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 redaka koda. Uključuje razumijevanje razloga koji stoje iza koda – poslovnih zahtjeva, potreba korisnika i konteksta u kojem softver radi. Umjetna inteligencija ima vrlo uzak raspon konteksta (obično ograničen na unos koji se daje u danom trenutku). Ne razumije u potpunosti sveobuhvatnu svrhu sustava ili kako jedan modul komunicira s drugim izvan onoga što je eksplicitno navedeno u kodu. Kao rezultat toga, umjetna inteligencija može generirati kod koji tehnički funkcionira za mali zadatak, ali se ne uklapa dobro u veću arhitekturu sustava ili krši neki implicitni zahtjev. Potrebni su ljudski programeri kako bi se osiguralo da je softver usklađen s poslovnim ciljevima i očekivanjima korisnika. Dizajn složenih sustava – 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 umjetna inteligencija danas ne može učiniti. U velikim projektima s tisućama komponenti, umjetna inteligencija „vidi drveće, ali ne i šumu“. Kao što je navedeno u jednoj analizi, „umjetna inteligencija 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 umjetna inteligencija zamijeniti developere u 2025.: Kratki uvid u budućnost ). Ljudi održavaju viziju šire slike.

  • Zdrav razum i rješavanje dvosmislenosti: Zahtjevi u stvarnim projektima često su nejasni ili se razvijaju. Ljudski programer može tražiti pojašnjenje, donositi razumne pretpostavke ili odbijati nerealne zahtjeve. Umjetna inteligencija 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 jamstva da će biti ispravna). Zato kod generiran umjetnom inteligencijom ponekad može biti tehnički ispravan, ali funkcionalno neispravan - nedostaje mu prosudba da zna što je korisnik stvarno namjeravao ako su upute nejasne. Nasuprot tome, ljudski programer može interpretirati zahtjev visoke razine („učiniti ovo korisničko sučelje intuitivnijim“ ili „aplikacija bi trebala elegantno obrađivati ​​nepravilne unose“) i shvatiti što treba učiniti u kodu. Umjetnoj inteligenciji bi bile potrebne izuzetno detaljne, nedvosmislene specifikacije da bi doista zamijenila programera, a čak je i učinkovito pisanje takvih specifikacija jednako teško kao i pisanje samog koda. Kao što je članak Forbes Tech Councila prikladno primijetio, da bi umjetna inteligencija zapravo zamijenila programere, morala bi razumjeti nejasne upute i prilagoditi se poput čovjeka - razina razmišljanja koju trenutna umjetna inteligencija ne posjeduje ( Objava Sergija Kuzina - LinkedIn ).

  • Pouzdanost i „halucinacije“: Današnji generativni AI modeli imaju dobro poznatu manu: mogu proizvesti netočne ili potpuno izmišljene izlaze, fenomen koji se često naziva halucinacija . U kodiranju to može 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 AI koda zahtijeva pažljiv pregled i testiranje od strane čovjeka . Podaci ankete Stack Overflow odražavaju to - od onih koji koriste AI alate, samo 3% ima veliko povjerenje u točnost AI izlaza, a doista mali postotak aktivno ne vjeruje u točnost ( 70% programera koristi AI alate za kodiranje, 3% ima veliko povjerenje u njihovu točnost - ShiftMag ). Velika većina programera tretira AI prijedloge kao korisne savjete, a ne kao evanđelje. Ovo nisko povjerenje je opravdano jer AI može napraviti bizarne pogreške koje nijedan kompetentan čovjek ne bi napravio (poput pogrešaka koje se razlikuju za jedan, korištenja zastarjelih funkcija ili stvaranja neučinkovitih rješenja) jer ne razmišlja doista o problemu. Kao što je jedan komentar na forumu ironično primijetio: „Oni (umjetna inteligencija) puno haluciniraju i donose čudne dizajnerske odluke koje čovjek nikada ne bi napravio“ ( Hoće li programeri postati zastarjeli zbog umjetne inteligencije? - Savjeti za karijeru ). Ljudski nadzor ključan je za otkrivanje tih pogrešaka. Umjetna inteligencija vam može brzo donijeti 90% značajke, 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 moraju otklanjati pogreške – umjetna inteligencija još ne može preuzeti odgovornost za svoje pogreške.

  • Održavanje i razvoj kodnih baza: Softverski projekti žive i rastu godinama. Zahtijevaju dosljedan stil, jasnoću za buduće održavatelje i ažuriranja kako se zahtjevi mijenjaju. Umjetna inteligencija danas nema sjećanje na prošle odluke (osim ograničenih uputa), pa možda neće održavati kod dosljednim u velikom projektu osim ako nije vođena. Razvojni programeri osiguravaju održivost koda - pisanjem jasne dokumentacije, odabirom čitljivih rješenja umjesto pametnih, ali nejasnih i refaktoriranjem koda po potrebi kada se arhitektura razvija. Umjetna inteligencija može pomoći u tim zadacima (poput predlaganja refaktoriranja), ali odlučivanje o tome što refaktorirati ili koji dijelovi sustava trebaju redizajn stvar je ljudske prosudbe. Nadalje, prilikom integracije komponenti, razumijevanje utjecaja nove značajke na postojeće module (osiguravanje unatrag kompatibilnosti itd.) nešto je čime se ljudi bave. Kod koji generira umjetna inteligencija moraju integrirati i uskladiti ljudi. Kao eksperiment, neki su razvojni programeri pokušali dopustiti ChatGPT-u da izgradi cijele male aplikacije; rezultat često u početku funkcionira, ali postaje vrlo teško održavati ili proširiti jer umjetna inteligencija ne primjenjuje dosljedno promišljenu arhitekturu - donosi lokalne odluke koje bi ljudski arhitekt 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, neispravno sanitiziranje 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 – mogla bi, na primjer, trenirati na pristranim podacima i predlagati algoritme koji nenamjerno diskriminiraju (u značajki koju pokreće umjetna inteligencija, poput koda za odobravanje kredita ili algoritma 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 odluka koje su u skladu s ljudskim vrijednostima – „ne može se zanemariti. Ovi aspekti razvoja usmjereni na ljude izvan su dosega umjetne inteligencije, barem u doglednoj budućnosti.“ ( Hoće li umjetna inteligencija zamijeniti programere 2025.: Kratki uvid u budućnost ) Programeri moraju služiti kao vrata savjesti i kvalitete za doprinose umjetne inteligencije.

S obzirom na ta ograničenja, trenutni konsenzus je da je umjetna 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 umjetna inteligencija zamijeniti programere? Istina iza te pompe | autor The PyCoach | Artificial Corner | ožujak 2025. | Medium ). Umjetnu inteligenciju možemo smatrati mlađim asistentom: brza je, neumorna i može prvi obaviti mnoge zadatke, ali joj je potrebno vodstvo i stručnost starijeg programera kako bi proizvela uglađen konačni proizvod. Znakovito je da se čak i najnapredniji sustavi kodiranja umjetne inteligencije koriste kao asistenti u stvarnoj upotrebi (Copilot, CodeWhisperer itd.), a ne kao autonomni programeri. Tvrtke ne otpuštaju svoje programerske timove i ne puštaju umjetnu inteligenciju da divlja; umjesto toga, ugrađuju umjetnu inteligenciju u tijekove 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 obavljaju softverski inženjeri: Cijela priča u 5 točaka - India Today ). Oni će funkcionirati kao „virtualni suradnici“ koji obavljaju dobro definirane zadatke za ljudske inženjere, posebno one zadatke tipične za softverskog inženjera niske razine 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-a i rješavanja zadataka više razine koje AI ne može obavljati. Čak i gledajući u budućnost, gdje neki istraživači predviđaju da će do 2040. AI moći napisati većinu vlastitog 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 za nadzor, vođenje i pružanje kreativne iskre i kritičkog razmišljanja koje strojevima nedostaje .

Također vrijedi napomenuti da je razvoj softvera više od pukog kodiranja . Uključuje komunikaciju sa zainteresiranim stranama, razumijevanje korisničkih priča, suradnju u timovima i iterativni dizajn – sve područja gdje su ljudske vještine nezamjenjive. Umjetna inteligencija ne može sjediti na sastanku s klijentom kako bi dogovorila što oni stvarno žele, niti može pregovarati o prioritetima ili inspirirati tim vizijom za proizvod. Ljudski element ostaje ključan.

Ukratko, umjetna inteligencija ima važne slabosti: nedostatak istinske kreativnosti, ograničeno razumijevanje konteksta, sklonost pogreškama, nedostatak odgovornosti i nepostojanje razumijevanja širih implikacija softverskih odluka. Upravo su te praznine ono u čemu ljudski programeri briljiraju. Umjesto da se umjetna inteligencija promatra kao prijetnja, možda je točnije promatrati je kao snažno pojačalo za ljudske programere – koje se bavi svakodnevnim stvarima kako bi se ljudi mogli usredotočiti na dublje. U sljedećem odjeljku raspravljat će se 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 umjetnom inteligencijom.

Prilagođavanje i napredak u doba umjetne inteligencije

Za programere i developere, porast umjetne inteligencije u kodiranju ne mora biti strašna prijetnja - može biti prilika. Ključ je prilagoditi se i razvijati zajedno s tehnologijom. Oni koji nauče koristiti umjetnu inteligenciju vjerojatno će se pokazati produktivnijima i traženijima, dok će oni koji je ignoriraju možda otkriti da zaostaju. U ovom odjeljku usredotočujemo 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 suradnja s umjetnom inteligencijom, a ne natjecanje. Evo kako se developeri mogu prilagoditi i koje nove vještine i uloge trebaju razmotriti:

1. Prihvatite umjetnu inteligenciju kao alat (naučite učinkovito koristiti AI asistente za kodiranje): Prije svega, programeri bi se trebali upoznati s dostupnim AI alatima. Tretirajte Copilot, ChatGPT ili druge AI-je za kodiranje 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 ispraviti pogreške u kodu generiranom umjetnom inteligencijom. Baš kao što je programer morao naučiti svoj IDE ili kontrolu verzija, učenje osobitosti AI asistenta postaje dio skupa vještina. Na primjer, programer može vježbati uzimajući dio koda koji je napisao i tražeći od umjetne inteligencije da ga poboljša, a zatim analizirajući promjene. Ili, kada započinjete zadatak, ocrtajte ga u komentarima i vidite što umjetna inteligencija pruža, a zatim ga usavršavajte. S vremenom ćete razviti intuiciju za ono u čemu je umjetna inteligencija dobra i kako s njom surađivati. Zamislite to kao "razvoj uz pomoć umjetne inteligencije" - novu vještinu koju možete dodati u svoj alatni set. Doista, programeri sada govore o "brzom inženjerstvu" kao vještini - znajući kako postaviti prava pitanja umjetnoj inteligenciji. Oni koji je savladaju mogu postići znatno bolje rezultate s istim alatima. Zapamtite, „razvojni programeri koji koriste umjetnu inteligenciju mogu zamijeniti one koji je ne koriste“ – stoga prihvatite tehnologiju i učinite je svojim saveznikom.

2. Usredotočite se na vještine više razine (rješavanje problema, dizajn sustava, arhitektura): Budući da umjetna inteligencija može podnijeti više kodiranja niske razine, programeri bi se trebali popeti na ljestvici apstrakcije . To znači staviti veći naglasak na razumijevanje dizajna i arhitekture sustava. Razvijajte vještine u rješavanju složenih problema, dizajniranju skalabilnih sustava i donošenju arhitektonskih odluka – područja gdje je ljudski uvid ključan. Usredotočite se na zašto i kako rješenja, a ne samo na što. Na primjer, umjesto da trošite svo vrijeme usavršavajući funkciju sortiranja (kada umjetna 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 sustava. Dizajnersko razmišljanje – uzimajući u obzir potrebe korisnika, tokove podataka i interakcije komponenti – bit će visoko cijenjeno. Umjetna inteligencija može generirati kod, ali programer je taj koji odlučuje o ukupnoj strukturi softvera i osigurava da svi dijelovi rade u skladu. Izoštravanjem svog razmišljanja o široj slici, postajete nezamjenjivi kao osoba koja vodi umjetnu inteligenciju (i ostatak tima) u izgradnji prave stvari. Kao što je navedeno u jednom izvješću o budućnosti, programeri bi se trebali „usredotočiti na područja u kojima je ljudski uvid nezamjenjiv, poput rješavanja problema, dizajnerskog razmišljanja i razumijevanja korisničkih potreba.“ ( Hoće li umjetna inteligencija zamijeniti programere 2025.: Kratki uvid u budućnost )

3. Unaprijedite svoje znanje o umjetnoj inteligenciji i strojnom učenju: Za rad uz umjetnu inteligenciju, korisno je razumjeti umjetnu inteligenciju . Razvojni programeri ne moraju svi postati istraživači strojnog učenja, ali dobro razumijevanje načina rada tih modela bit će korisno. Naučite osnove strojnog učenja i dubokog učenja – to 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 učinkovitije koristite alate umjetne inteligencije. Ako znate, na primjer, ograničenja velikog jezičnog modela i kako je obučen, možete predvidjeti kada bi mogao zakazati 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). Razvojni programer softvera 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 AI uslugama u oblaku; čak i ako ne gradite modele od nule, poznavanje integracije AI API-ja u aplikaciju vrijedna je vještina. Ukratko, postati „AI pismen“ brzo postaje jednako važno kao i biti pismen u web ili tehnologijama baza podataka. Razvojni programeri koji mogu obuhvatiti svijet tradicionalnog softverskog inženjerstva i AI bit će u vrhunskoj poziciji za vođenje budućih projekata.

4. Razvijte jače meke vještine i znanje domene: Kako umjetna inteligencija preuzima mehaničke zadatke, jedinstveno ljudske vještine postaju još važnije. Komunikacija, timski rad i stručnost u domeni područja su na koja treba udvostručiti napore. Razvoj softvera često se odnosi na razumijevanje problematične domene - bilo da se radi o financijama, zdravstvu, obrazovanju ili bilo kojem drugom području - i prevođenje toga u rješenja. Umjetna inteligencija neće imati taj kontekst ili sposobnost suradnje sa zainteresiranim 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 doista zadovoljava stvarne potrebe. Slično tome, usredotočite se na svoje vještine suradnje: mentorstvo, vodstvo i koordinaciju. Timovima će i dalje biti potrebni stariji programeri za pregled koda (uključujući kod napisan umjetnom inteligencijom), za mentoriranje mlađih programera o najboljim praksama i za koordinaciju složenih projekata. Umjetna inteligencija ne uklanja potrebu za ljudskom interakcijom u projektima. Zapravo, s umjetnom inteligencijom koja generira kod, mentorstvo starijeg programera moglo bi se pomaknuti prema podučavanju mlađih programera kako raditi s umjetnom inteligencijom i validirati njezin rezultat , a ne kako napisati for-loop. Biti u stanju voditi druge u ovoj novoj paradigmi vrijedna je vještina. Također, vježbajte kritičko razmišljanje – propitujte i testirajte rezultate umjetne inteligencije te potaknite druge da čine isto. Razvijanje zdravog skepticizma i načina razmišljanja usmjerenog na provjeru spriječit će slijepo oslanjanje na umjetnu inteligenciju i smanjiti pogreške. U osnovi, poboljšajte vještine koje umjetnoj inteligenciji nedostaju: razumijevanje ljudi i konteksta, kritičku analizu i interdisciplinarno razmišljanje.

5. Cjeloživotno učenje i prilagodljivost: Tempo promjena u umjetnoj inteligenciji izuzetno je brz. Ono što se danas čini vrhunskim moglo bi biti zastarjelo za nekoliko godina. Razvojni programeri moraju prihvatiti cjeloživotno učenje više nego ikad. To može značiti redovito isprobavanje novih AI asistenata za kodiranje, pohađanje online tečajeva ili certifikata iz AI/ML-a, čitanje istraživačkih blogova kako biste bili u tijeku s novostima ili sudjelovanje u zajednicama razvojnih programera usmjerenih na umjetnu inteligenciju. Prilagodljivost je ključna – budite spremni prilagoditi se novim alatima i tijekovima rada čim se pojave. Na primjer, ako se pojavi novi AI alat koji može automatizirati dizajn korisničkog sučelja iz skica, front-end razvojni programer trebao bi biti spreman učiti i uključiti to, preusmjeravajući svoj fokus možda na poboljšanje generiranog korisničkog sučelja ili poboljšanje detalja korisničkog iskustva koje je automatizacija propustila. Oni koji učenje tretiraju kao kontinuirani dio svoje karijere (što mnogi razvojni programeri već čine) lakše će integrirati AI razvoj. Jedna strategija je posvetiti mali dio svog tjedna učenju i eksperimentiranju – tretirajte to kao ulaganje u vlastitu budućnost. Tvrtke također počinju pružati obuku svojim razvojnim programerima o učinkovitom korištenju AI alata; iskorištavanje takvih prilika će vas dovesti u prednost. Razvojni programeri koji će napredovati bit će oni koji umjetnu inteligenciju vide kao partnera u razvoju i kontinuirano usavršavaju svoj pristup suradnji s tim partnerom.

6. Istražite nove uloge i karijerne puteve: Kako se umjetna inteligencija sve više isprepliće s razvojem, pojavljuju se nove mogućnosti karijere. Na primjer, inženjer za upute ili specijalist za integraciju umjetne inteligencije uloge su usmjerene na stvaranje pravih uputa, tijekova rada i infrastrukture za korištenje umjetne inteligencije u proizvodima. Drugi primjer je inženjer etike umjetne inteligencije ili revizor umjetne inteligencije – uloge koje se usredotočuju na pregled izlaza umjetne inteligencije radi pristranosti, usklađenosti i ispravnosti. Ako ste zainteresirani za ta područja, pozicioniranje s pravim znanjem moglo bi otvoriti te nove puteve. Čak i unutar klasičnih uloga, mogli biste pronaći niše poput „frontend razvojnog programera uz pomoć umjetne inteligencije“ naspram „backend razvojnog programera uz pomoć umjetne inteligencije“, gdje svaki koristi specijalizirane alate. Pratite kako organizacije strukturiraju timove oko umjetne inteligencije. Neke tvrtke imaju „AI cehove“ ili centre izvrsnosti koji vode usvajanje umjetne inteligencije u projektima – aktivnost u takvim grupama može vas staviti u prvi plan. Štoviš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 umjetne inteligencije da objasni kod itd.). To ne samo da produbljuje vaše razumijevanje tehnologije, već vas i smješta u zajednicu koja predvodi promjene. Suština je biti proaktivan u pogledu agilnosti karijere . Ako se dijelovi vašeg trenutnog posla automatiziraju, budite spremni preći na uloge koje dizajniraju, nadgledaju ili proširuju te automatizirane dijelove.

7. Održavanje i istakivanje ljudske kvalitete: U svijetu u kojem umjetna inteligencija može generirati prosječan kod za prosječan problem, ljudski programeri trebali bi težiti stvaranju iznimnih i empatičnih rješenja koja umjetna 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 (umjetna 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 umjetna 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. Time dodajete sloj profesionalnosti i kvalitete koji nedostaje isključivo strojno generiranom radu. S vremenom će vas izgradnja reputacije za visokokvalitetni softver koji „jednostavno radi“ u stvarnom svijetu izdvojiti. Klijenti i poslodavci cijenit će programere koji mogu kombinirati učinkovitost umjetne inteligencije s ljudskom vještinom .

Razmotrimo i kako bi se obrazovni putevi mogli prilagoditi. Novi razvojni programeri koji ulaze u ovo područje ne bi trebali izbjegavati alate umjetne inteligencije u svom procesu učenja. Naprotiv, učenje s umjetnom inteligencijom (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 temeljne 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 portfelja koji pokazuje vašu sposobnost rješavanja složenih problema i korištenja umjetne inteligencije kao jednog od mnogih alata.

Da sažmemo strategiju prilagodbe: 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, dobro je to rekao: „Umjetna inteligencija će temeljno promijeniti š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 upravljačkim rukama svojih karijera.

Da bismo saželi ovaj odjeljak, evo kratkog kontrolnog popisa za razvojne programere koji žele osigurati svoju karijeru za budućnost u doba umjetne inteligencije:

Strategija prilagodbe Što učiniti
Naučite AI alate Vježbajte s Copilotom, ChatGPT-om itd. Naučite brzo pisanje i validaciju rezultata.
Usredotočite se na rješavanje problema Poboljšajte vještine dizajna i arhitekture sustava. Pozabavite se pitanjima „zašto“ i „kako“, a ne samo „što“
Usavršavanje u umjetnoj inteligenciji/strojnom učenju Naučite osnove strojnog učenja i znanosti o podacima. Razumite kako funkcioniraju modeli umjetne inteligencije i kako ih integrirati.
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 tečajeve 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 provjerite kvalitetu AI rezultata. Dodajte ljudski dodir – dokumentaciju, etička razmatranja, prilagodbe usmjerene 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ćuje im proizvodnju boljeg softvera nego ikad prije, umjesto da ga čini zastarjelim.

Budući izgledi: Suradnja između umjetne inteligencije i programera

Što budućnost nosi za programiranje u svijetu vođenom umjetnom inteligencijom? Na temelju trenutnih trendova, možemo očekivati ​​budućnost u kojoj umjetna inteligencija i ljudski programeri još bliže surađuju . Uloga programera vjerojatno će se nastaviti pomicati prema nadzornoj i kreativnoj poziciji, pri čemu će umjetna inteligencija obavljati više „teškog posla“ pod ljudskim vodstvom. U ovom završnom odjeljku predviđamo neke buduće scenarije i uvjeravamo da izgledi za programere mogu ostati pozitivni - pod uvjetom da se nastavimo prilagođavati.

U bliskoj budućnosti (sljedećih 5-10 godina), vrlo je vjerojatno da će umjetna inteligencija postati sveprisutna u procesu razvoja kao i sama računala. Kao što danas nijedan programer ne piše kod bez uređivača ili bez Googlea/StackOverflowa pri ruci, uskoro nijedan programer neće pisati kod bez nekog oblika pomoći umjetne inteligencije koja radi u pozadini. Integrirana razvojna okruženja (IDE) već se razvijaju kako bi u svoju srž uključila značajke pokretane umjetnom inteligencijom (na primjer, uređivače koda koji vam mogu objasniti kod ili predložiti cijele promjene koda u projektu). Mogli bismo doći do točke u kojoj je primarni zadatak programera formulirati probleme i ograničenja na način koji umjetna inteligencija može razumjeti, a zatim birati i usavršavati rješenja koja umjetna inteligencija pruža . To nalikuje obliku programiranja više razine, ponekad nazvanom "brzo programiranje" ili "orkestracija umjetne inteligencije".

Međutim, bit onoga što treba učiniti – rješavanje problema za ljude – ostaje nepromijenjena. Buduća umjetna inteligencija mogla bi generirati cijelu aplikaciju iz opisa („izradi mi mobilnu aplikaciju za zakazivanje liječničkih pregleda“), ali posao razjašnjavanja tog opisa, osiguravanja njegove točnosti i finog podešavanja rezultata kako bi se oduševili korisnici uključivat će razvojne programere (zajedno s dizajnerima, voditeljima proizvoda itd.). Zapravo, 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 razvojni programeri koncentriraju na vrhunske, složene ili kreativne projekte koji pomiču granice.

Također postoji mogućnost da će se smanjiti prepreka za ulazak u programiranje – što znači da bi više ljudi koji nisu tradicionalni softverski inženjeri (recimo, poslovni analitičar, znanstvenik ili marketinški stručnjak) moglo stvarati softver pomoću AI alata (nastavak pokreta „bez koda/niskog koda“ koji je pojačan AI-om). To ne eliminira potrebu za profesionalnim programerima; naprotiv, mijenja je. Programeri bi u takvim slučajevima mogli preuzeti više konzultantske ili vodeće uloge, osiguravajući da su te aplikacije koje razvijaju građani sigurne, učinkovite i održive. Profesionalni programeri mogli bi se usredotočiti na izgradnju platformi i API-ja koje koriste „neprogrameri“ uz pomoć AI-a.

Iz perspektive radnih mjesta, određene programerske uloge mogu se smanjiti, dok druge rastu. Na primjer, neke početne pozicije kodiranja mogle bi se smanjiti ako se tvrtke oslanjaju na umjetnu inteligenciju za jednostavne zadatke. Može se zamisliti da će mali startup u budućnosti trebati možda upola manje juniorskih programera jer njihovi senior programeri, opremljeni umjetnom inteligencijom, mogu obaviti puno osnovnog posla. Ali istovremeno će se pojaviti potpuno novi poslovi (kao što smo raspravljali u odjeljku o prilagodbi). Štoviše, kako softver prožima sve više gospodarstva (s umjetnom inteligencijom koja generira softver za nišne potrebe), ukupna potražnja za poslovima povezanim sa softverom mogla bi nastaviti rasti. Povijest pokazuje da automatizacija često dovodi do više radnih mjesta na dugi rok , iako su to različita radna mjesta - na primjer, automatizacija određenih proizvodnih zadataka dovela je do rasta radnih mjesta za projektiranje, održavanje i poboljšanje automatiziranih sustava. U kontekstu umjetne inteligencije i programiranja, iako su neki zadaci koje je junior programer prije obavljao automatizirani, ukupni opseg softvera koji želimo stvoriti se širi (jer je sada jeftinije/brže ga stvoriti), što može dovesti do više projekata i time potrebe za većim ljudskim nadzorom, upravljanjem projektima, arhitekturom itd. Izvješće 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 „strojevi... pisati većinu vlastitog koda“ ( Is There a Future for Software Engineers? The Impact of AI [2024] ). Ako se to pokaže točnim, što preostaje ljudskim programerima? Vjerojatno bi fokus bio na vođenju vrlo visoke razine (govoriti strojevima što želimo da postignu u općim crtama) i na područjima koja uključuju složenu integraciju sustava, 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 umjetne inteligencije . Kod bi se uglavnom mogao sam pisati, ali netko mora odlučiti koji kod treba napisati i zašto , a zatim provjeriti je li krajnji rezultat točan i usklađen s ciljevima. To je analogno načinu na koji bi se autonomni automobili jednog dana mogli sami voziti, ali i dalje automobilu govorite kamo da ide i intervenira u složenim situacijama - plus ljudi dizajniraju ceste, prometne zakone i svu infrastrukturu oko njega.

Većina stručnjaka stoga zamišlja budućnost suradnje, a ne zamjene . Kako je to formulirala jedna tehnološka konzultantska tvrtka, „budućnost razvoja nije izbor između ljudi ili umjetne inteligencije, već suradnja koja iskorištava najbolje od oboje.“ ( Hoće li umjetna inteligencija zamijeniti programere u 2025.: Kratki uvid u budućnost ) Umjetna inteligencija će nesumnjivo transformirati razvoj softvera, ali to je više evolucija uloge programera nego izumiranje. Programeri koji „prihvate promjene, prilagode svoje vještine i usredotoče se na jedinstveno ljudske aspekte svog rada“ otkrit će da umjetna inteligencija poboljšava njihove sposobnosti, a ne umanjuje njihovu vrijednost.

Možemo povući paralelu s drugim područjem: razmotrite porast računalno 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 stvaranje složenijih dizajna. Ali ljudska kreativnost i donošenje odluka ostali su središnji. Slično tome, umjetna inteligencija može se promatrati kao računalno potpomognuto kodiranje - pomoći će u rješavanju složenosti i mukotrpnog rada, ali programer ostaje dizajner i donositelj odluka.

Dugoročno gledano, ako zamislimo uistinu naprednu umjetnu inteligenciju (recimo, neki oblik opće umjetne inteligencije koji mogao učiniti većinu onoga što čovjek može), društvene i ekonomske promjene bile bi puno šire od samog programiranja. Još nismo tamo i imamo značajnu kontrolu nad načinom na koji integriramo umjetnu inteligenciju u svoj 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 tvrtke koje uspostavljaju upravljanje umjetnom inteligencijom – smjernice o tome kako bi se umjetna inteligencija trebala koristiti u razvoju kako bi se osigurali etički i učinkoviti rezultati ( Istraživanje otkriva utjecaj umjetne inteligencije na iskustvo programera - GitHub Blog ). Ovaj će se trend vjerojatno povećavati, osiguravajući da je ljudski nadzor formalno dio razvojnog procesa umjetne inteligencije.

Zaključno, na pitanje „Hoće li umjetna inteligencija zamijeniti programere?“ može se odgovoriti: Ne – ali će značajno promijeniti ono što programeri rade. Svakodnevni dijelovi programiranja na putu su da budu uglavnom automatizirani. Kreativni, izazovni i na čovjeka usmjereni dijelovi ostat će i doista će postati istaknutiji. Budućnost će vjerojatno vidjeti programere koji rade rame uz rame sa sve pametnijim AI asistentima, slično kao član tima. Zamislite da imate kolegu koji radi s umjetnom inteligencijom i može generirati kod 24 sata dnevno, 7 dana u tjednu – to je veliko povećanje produktivnosti, ali i dalje mu treba netko tko će mu reći na kojim zadacima treba raditi i provjeravati njegov rad.

Najbolje rezultate postići će oni koji se prema umjetnoj inteligenciji odnose kao prema suradniku. Kao što je rekao jedan izvršni direktor: „Umjetna 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 bit će puno softvera za izradu i problema za rješavanje, možda čak i više nego danas. Ostankom obrazovanim, fleksibilnim i fokusiranjem na ono što ljudi rade najbolje, programeri mogu osigurati uspješnu i ispunjavajuću karijeru u partnerstvu s umjetnom inteligencijom .

Konačno, vrijedi proslaviti činjenicu da ulazimo u eru u kojoj programeri imaju supermoći na raspolaganju. Sljedeća generacija programera postići će za nekoliko sati ono što je prije trajalo danima i rješavati probleme koji su prije bili izvan dosega, koristeći umjetnu inteligenciju. Umjesto straha, osjećaj za budućnost može biti optimizam i znatiželja . Sve dok pristupamo umjetnoj inteligenciji otvorenih očiju - svjesni njezinih ograničenja i svjesni svoje odgovornosti - možemo oblikovati budućnost u kojoj umjetna inteligencija i programeri zajedno grade nevjerojatne softverske sustave, daleko iznad onoga što bi bilo tko od njih mogao učiniti sam. Ljudska kreativnost u kombinaciji s učinkovitošću stroja snažna je kombinacija. Na kraju, ne radi se o zamjeni , već o sinergiji. Priča o umjetnoj inteligenciji i programerima još se piše - i pisat će je i ljudi i stroj, zajedno.

Izvori:

  1. Brainhub, „Ima li budućnosti za softverske inženjere? Utjecaj umjetne inteligencije [2024.]“ ( Ima li budućnosti za softverske inženjere? Utjecaj umjetne inteligencije [2024.] ).

  2. 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] ).

  3. Medium (PyCoach), „Hoće li umjetna inteligencija zamijeniti programere? Istina iza pompe“ , s napomenom o nijansiranoj stvarnosti naspram pompe ( Hoće li umjetna inteligencija zamijeniti programere? Istina iza pompe | autor The PyCoach | Artificial Corner | ožujak 2025. | Medium ) i citat Sama Altmana o tome da je umjetna inteligencija dobra u zadacima, ali ne i u punim poslovima.

  4. DesignGurus, „Hoće li umjetna inteligencija zamijeniti developere… (2025.)“ , s naglaskom da će umjetna inteligencija povećati i unaprijediti developere, a ne učiniti ih suvišnima ( Hoće li umjetna inteligencija zamijeniti developere u 2025.: Kratki uvid u budućnost ) i navodeći područja u kojima umjetna inteligencija zaostaje (kreativnost, kontekst, etika).

  5. Anketa programera Stack Overflowa za 2023., korištenje AI alata od strane 70% programera, nisko povjerenje u točnost (3% ima veliko povjerenje) ( 70% programera koristi AI alate za kodiranje, 3% ima veliko povjerenje u njihovu točnost - ShiftMag ).

  6. GitHub anketa iz 2023. pokazuje da je 92% programera isprobalo alate za AI kodiranje, a 70% vidi koristi ( Anketa otkriva utjecaj AI-a na iskustvo programera - GitHub blog ).

  7. Istraživanje GitHub Copilota, koje je pokazalo 55% brže dovršavanje zadataka uz pomoć umjetne inteligencije ( Istraživanje: kvantificiranje utjecaja GitHub Copilota na produktivnost i sreću programera - GitHub Blog ).

  8. GeekWire, o DeepMindovom AlphaCodeu koji postiže rezultate na prosječnoj razini ljudskog programera (top 54%), ali daleko od vrhunskih ( DeepMindov AlphaCode odgovara prosječnoj programerskoj vještini ).

  9. IndiaToday (veljača 2025.), sažetak Sam Altmanove vizije o AI „suradnicima“ koji obavljaju zadatke mlađih inženjera, ali „neće u potpunosti zamijeniti ljude“ ( Sam Altman kaže da će AI agenti uskoro obavljati zadatke koje obavljaju softverski inženjeri: Cijela priča u 5 točaka - India Today ).

  10. McKinsey & Company procjenjuju da će ~80% programerskih poslova ostati usmjereno na ljude unatoč 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 bi poboljšali vaš tijek rada za razvoj.

🔗 Koji je AI najbolji za kodiranje – Vrhunski AI asistenti za kodiranje
Vodič kroz najučinkovitije AI alate za generiranje koda, otklanjanje pogrešaka i ubrzavanje softverskih projekata.

🔗 Razvoj softvera za umjetnu inteligenciju – Transformacija budućnosti tehnologije
Shvatite kako umjetna inteligencija revolucionira način na koji se softver gradi, testira i primjenjuje.

Natrag na blog