Van értelme full-stack fejlesztést tanulni az AI korában?
„Az AI elveszi a programozók munkáját.” Talán te is hallottad már ezt az aggályt. De vajon tényleg ez vár a szoftverfejlesztőkre? Érdemes még ma is full-stack fejlesztést tanulni, vagy átveszi ezt a területet a mesterséges intelligencia? Hozzá nem értő emberek helyett kérdezzünk meg erről egy full-stack fejlesztőt!
Prooktatás:
Pár érdeklődőnk feltette mostanában azt a kérdést, hogy van-e még értelme full-stack fejlesztőnek tanulni az AI korában. Te mit gondolsz erről?
Gábor, a Digitalprobe alapítója:
Hát persze, hogy van értelme. A kedvenc példám erre az, hogy átmennél-e azon a hídon, vagy felmennél-e a tizedikre azzal a lifttel, amire ki van írva, hogy „Ezt a liftet 100%-ban AI tervezte. Egy ember sem nézte át.” Vagy beleültetnéd a gyerekedet egy olyan hullámvasútba, amire az van kiírva, hogy „Ezt csak AI tervezte, AI építette, AI üzemelteti.” Szerintem senki nem tenné. Ott van szerintem nagyon elrontva a gondolkodás, hogy mindenki azt mondja: a fejlesztő kódot ír, tehát a fejlesztő legnagyobb outputja a kód. Az AI tud kódot írni, tehát akkor a fejlesztő lecserélhető AI-ra. Csakhogy ez egy teljesen hibás kiindulópont. Valójában a kód a fejlesztő munkájának a legmarginálisabb mellékterméke. A gondolkodás, a koncepcióalkotás, az architektúra-tervezés és a felelősségvállalás az, ami a fejlesztő valódi feladata. Ahogy a hidas vagy a játszóteres példában is: ezek azok a dolgok, amiket nem lehet egyszerűen rábízni az AI-ra.
Prooktatás:
Akkor szerinted mire érdemes használni?
Gábor:
Arra a részre, amit én "lapátolásnak" hívok. Azt a lapátolós munkát nagyon jól rá lehet bízni, hogy miután az ember kitalálta a nagyívű stratégiát, a megvalósítást, azt, hogy öt év múlva is maintainelhető legyen a rendszer, utána a téglákat már nagyon jól meg tudja csinálni az AI. Sőt, ettől gyorsabb lesz a fejlesztés. De persze utána egy ember átnézi. Így egy sokkal jobb produktum születik, mintha egyáltalán nem használnánk AI-t. Viszont ha a gondolkodást is teljesen átadod neki, abból csak hulladék lesz.
Prooktatás:
Oké, de ezt a munkáltatók is tudják? Mert igazából ez munkavállalói oldalról szokott felmerülni.
Gábor:
Igen. Szerintem ezt a munkáltatók is egyre inkább látják. Már most is vannak olyan cégek, amelyek elkezdték visszavenni azokat a fejlesztőket, akiket korábban AI miatt elküldtek, mert elkezdett szétesni a szoftverük. Mi is rendszeresen beszélünk erről kollégákkal, akivel együtt fejlesztek. Mi is érezzük magunkon, hogy néha ellustulunk. És akkor lesz rossz a kód, amikor már a gondolkodást is rábízzuk az AI-ra. Van egy jól felépített kódbázis, jön egy komplex feladat, és nem gondolkodsz rajta, hanem csak beírod:
"Csináld meg ezt."
Az AI megcsinálja. Működik. A teszteken is átmegy. Csak közben egy kicsit spagetti lesz a kód. Kicsit nem úgy kellett volna megszervezni. Az első ilyen alkalomnál alkalommal legyintesz, hogy: "Jó... annyira nem tetszik, de merge-öljük be." És mivel az AI mindig a meglévő kódból tanul, a következő generált kód is ezt a rossz mintát fogja követni. És újra. És újra. A végén pedig már olyan hibákba fut bele, amik eredetileg nem is léteztek.
Prooktatás:
Tehát nem rögtön omlik össze.
Gábor:
Pontosan. Hanem hosszabb idő alatt, a maintainelés során jönnek elő a problémák. Nem az van, hogy a kód nem működik. Csak egyre nehezebb új funkciókat fejleszteni. Egyre furcsább hibák jelennek meg. Egy idő után pedig már maga az AI sem tud értelmesen dolgozni a saját maga által korábban felépített káoszban. És én már dolgoztam olyan projekten, ahol ezt élőben láttam. Promptoltam valamit, közben csak scrolloztam az oldalt, és már attól Internal Server Error lett. Annyira össze volt taknyolva a rendszer. Az egyik rossz döntés épült a másikra. Ez olyan, mint amikor egy rossz klón mindig egy kicsit rosszabb lesz, mint az előző. A végén már teljesen szétesik az egész. Azt hiszem a Rick and Mortyban is volt egy hasonló rész. Pont ilyen az AI is. Ha egy rossz kódbázisból tanul, akkor minden következő generáció egy kicsit rosszabb lesz, mint az előző.
Prooktatás:
Akkor szerinted pont ezért van még inkább értelme full-stack fejlesztőnek tanulni?
Gábor:
Abszolút. Szerintem ma még inkább megéri engineering mindsettel rendelkező fejlesztőnek lenni. Nem egyszerű kódolónak. Annak van igazán értéke, aki rendszerben tud gondolkodni, architektúrát tud tervezni. Ezt a részt nem fogod odaadni az AI-nak. Egy jól kitalált rendszer tégláit egyébként szerintem az AI már jobban megcsinálja, mint egy átlagos fejlesztő. Ezért aki jól gondolkodik, de pluszban tudja az AI-t is használni, annak szerintem még jobb lehetőségei lesznek.
Prooktatás:
De gondolom, azért a kódolás elsajátítását nem lehet megúszni.
Gábor:
Egyáltalán nem. Ugyanez van a fényképezésnél is. Az iPhone rengeteg dolgot automatikusan beállít, amikor egy képet készítesz vele. Mégsem iPhone-nal készülnek a profi fotók. A profi fotós tudja, hogy mikor kell eltérni az automatikus beállításoktól. Vagy például, A DJ-zésnél is ugyanez történt. Ma már a DJ szoftver gyakorlatilag helyetted mixel. Összerakja a zenéket, kiszámolja a BPM-et, összeilleszti őket. Viszont attól még nem lesz valakiből profi DJ. Ugyanúgy, ahogy attól sem lesz valaki profi fotós, hogy van egy iPhone-ja. Aki megtanult bakelitről játszani, aki végigcsinálta azt a nehéz utat, az sokkal jobban érti, hogy mi történik. A modern eszköz csak segít neki. Nem helyettesíti.
Prooktatás:
És akkor ugyanilyen eszköz az AI is?
Gábor:
Pontosan. Lehet, hogy kevesebb fejlesztőre lesz szükség. Viszont a jó fejlesztőkre még nagyobb szükség lesz. Azok, akik rendszerben tudnak gondolkodni, szerintem még értékesebbek lesznek.