Esu programinės įrangos inžinierius ir kiekvieną mano kodo eilutę rašo DI: pasikalbėkime apie „Vibe Coding“

Esu programinės įrangos inžinierius ir kiekvieną mano kodo eilutę rašo DI: pasikalbėkime apie „Vibe Coding“

Dirbu programinės įrangos inžinieriumi jau daugiau nei šešerius metus, tačiau pastaruosius metus neparašiau nė vienos kodo eilutės rankomis. Visi dabartiniai mano projektai nuo pradžios iki galo sukurti dirbtinio intelekto. Tiesa, kai prieš gerus metus pirmąkart pabandžiau programuoti padedamas DI, šia euforija džiaugiausi vos tris dienas.

„Vibe Coding“ palaima

Puikiai atsimenu praėjusių metų (2025 m.) birželį, kai vedamas smalsumo pirmą kartą įsijungiau „Cursor“. Iš pirmo žvilgsnio tai atrodė kaip įprastas „VS Code“ redaktorius, tik su šonine juosta pokalbiams su DI.

Iki tol mano supratimas apie programavimą su DI apsiribojo „Copilot“ lygio patobulintu kodo sufleriu. Tačiau kai suformulavau pirmąją užklausą ir paspaudžiau „Enter“, prasidėjo tikra magija. Stebėjau, kaip DI karštligiškai mąsto ir akimirksniu beria dešimtis, šimtus kodo eilučių, mikliai šokinėja tarp failų, juos atnaujina ir net pats vykdo komandas terminale.

Pasirodo, dabar pakanka paprasta žmonių kalba aprašyti norimą funkciją, ir DI ją sukuria nuo nulio. Nebereikia krapštytis ties kiekviena sintaksės detale – tai nebėra banalus kodo užbaigimas. Tai visiškai naujas lygmuo, kai DI perima solidžią inžinieriaus darbo dalį.

Pasijutau lyg pasakoje gavęs stebuklingą teptuką: apėmė grynas džiaugsmas, išvydus atsivėrusias duris į visiškai naują pasaulį.

Tuomet savo mintis užfiksavau štai tokiais pastebėjimais:

„Vibe Coding“ tiesiog idealiai tinka turintiems ADHD (dėmesio trūkumo ir hiperaktyvumo sindromą). Tradicinis programavimas eina visiškai prieš ADHD prigimtį, o štai intuityvus kodavimas akimirksniu išgydė visas įsisenėjusias bėdas: nenorą rašyti testų, atmetimo reakciją į CSS, nuolatines klaideles kintamųjų pavadinimuose ir tą varginantį, monotonišką smulkių klaidų rankiojimą.

Su DI pagalba grįžtamąjį ryšį gauni žaibiškai, o pasitenkinimas rezultatu – milžiniškas. Kuo užduotis mechaniškesnė ir nuobodesnė, tuo geriau DI su ja susitvarko.

Belieka susitelkti į strateginę kryptį, architektūrinį matymą ir veikti kaip tikram projekto vedliui.

Man niekada nereikėjo to džiaugsmo pačiam baksnoti kiekvieną klavišą – man patinka pats kūrybos procesas ir galutinis rezultatas. Nuo asemblerio iki aukšto lygio kalbų, programuotojo patirtis visada turėjo tapti sklandesnė ir efektyvesnė.

Galimybė kurti sistemas iš gryno kūrėjo, o ne skaitmeninio mūrininko pozicijos – ar gi tai ne didžiausia programuotojo laimė?

„Vibe Coding“ ribos

Šiam metodui prigijo atskiras terminas – „Vibe Coding“. Jį 2025 m. vasarį nukalė vienas iš „OpenAI“ įkūrėjų Andrej Karpathy. Esmė – pasikliauti vien jausmu („vibe“): kasdiene kalba išdėstai DI savo norus, priimi viską, ką jis išspjauna, netikrindamas kodo eilutė po eilutės, o kilus klaidai tiesiog aklai meti pranešimą atgal DI, kol galiausiai apskritai pamiršti, kad po visu tuo slypi kodas.

Deja, išliejęs šias džiaugsmo kupinas mintis, euforijoje maudžiausi vos tris dienas – labai greitai atsirėmiau į šio metodo lubas.

Kūriau mobiliosios programėlės prototipą. Pasiklioviau grynu „Vibe Coding“ – leidau DI laisvai improvizuoti pagal miglotas instrukcijas, nepritaikydamas jokios inžinerinės disciplinos. Netrukus DI tapo praktiškai nevaldomas, o projekto architektūra virto tokia neperprantama makaronų koše, kad jos palaikyti tapo nebeįmanoma.

Teko viską nubraukti ir pradėti iš naujo. Šįkart į reikalą pažvelgiau kaip inžinierius: pritaikiau griežtus, standartinius programinės įrangos kūrimo procesus ir paverčiau DI disciplinuotu pagalbininku.

Taip atradau visiškai kitokią darbo tėkmę. Išlaikiau visą kūrybinį „Vibe Coding“ azartą, tačiau papildžiau jį griežta kodo peržiūra, aiškia dokumentacija ir smulkiais, palaipsniais pakeitimais – jokių didžiulių, chaotiškų šuolių. Rezultatas? Architektūra ir jos įgyvendinimas tapo visiškai kontroliuojami, o procesas vėl teikė pasitenkinimą, nes viskas veikė tiksliai taip, kaip suplanuota. Programavimas su DI tapo panašus į darbą su itin greitu, bet priežiūros reikalaujančiu praktikantu: techninių detalių rankomis rašyti nebereikia, tačiau strateginis matymas ir architektūrinis vairas privalo likti tavo rankose.

Netrukus perėjau prie „Claude Code“. Valdymas tapo dar sklandesnis ir tikslesnis, darbas tiesiog skriejo, o mano produktyvumas šovė į viršų keleriopai.

Programinės įrangos inžinierių ateitis

„Ar gali būti, kad dėl „Vibe Coding“ paprastumo ir greičio žmonės tiesiog nebenorės gilintis į programavimo pagrindus?“

Esu įsitikinęs – būtent taip ir nutiks!

Tradicinis kelias nuo kodo pradžiamokslio iki realaus produkto visada priminė laiptus: pradedi nuo bazinių programavimo kalbos pagrindų, tampi jaunesniuoju inžinieriumi, darbe pamažu kremti realius inžinerinius iššūkius ir ilgainiui subręsti iki savarankiško specialisto. Kiekviename žingsnyje gaudavai aiškų atsaką, o profesinis kelias buvo nuspėjamas ir pasiekiamas bet kuriam vidutinių gabumų žmogui, pasiruošusiam įdėti pastangų.

„Vibe Coding“ pradžios kartelę nuleido praktiškai iki grindų – sukurti veikiančią demonstracinę versiją dabar gali bet kas. Tačiau programų inžinerija yra giliai praktinė disciplina: atotrūkis tarp paprasto prototipo ir patikimo komercinio produkto yra toks pat, kaip skirtumas tarp žingsnio nuo 0 iki 1 ir kelionės nuo 1 iki 100.

Tradiciniame kelyje žmogus, pasiekęs etapą nuo 0 iki 1, natūraliai įgydavo fundamentalių žinių, reikalingų kilti nuo 1 iki 100. Tuo tarpu „Vibe Coding“ naujokui tokių pamatų nesuteikia. Bandant žengti nuo 1 iki 10, iškart atsiveria gili praraja, kuri atbaidys didžiąją dalį entuziastų.

Kadangi pradžia pasirodė apgaulingai lengva, vėliau iškilusios problemos atrodys neįveikiamos – vien vidutiniško susidomėjimo ar standartinių mokymosi gebėjimų tam neužteks. O tie reti asmenys, kurie šį barjerą visgi peršoks, neabejotinai pasižymės išskirtiniu imlumu, užsispyrimu ir problemų sprendimo įgūdžiais – jie atsidurs pačiame geriausiųjų programuotojų viename procente.

Kitaip tariant, šie keli talentai aukščiausio lygio inžinieriais būtų tapę ir iki dirbtinio intelekto eros.

DI programavimo gebėjimams sparčiai tobulėjant, rinkai tiesiog nebereikia pradedančiųjų inžinierių. Įprasta profesinio ugdymo grandinė trūksta – vis mažiau žmonių apskritai gaus progą klysti, tobulėti ir kaupti patirtį praktikoje.

Praėjus metams po to, kai užmečiau šio teksto juodraštį, darbo rinkos statistika šią prognozę tik patvirtina:

Šios industrijos ateitį matau gana niūriai. Programavimo pasaulis poliarizuojasi į du kraštutinumus: viename poliuje liks saujelė genialių architektų ir technologijų titanų, o kitame – minios entuziastų, kuriančių demonstracinius žaislus savo malonumui.

Šiuo keliu neišvengiamai pasuks ir kitos profesijos. Ateityje bet kokį nesudėtingą protinį darbą be vargo atliks DI.

Net matematika – sritis, kurioje, atrodytų, labiausiai reikia gilaus, originalaus žmogaus intelekto – per pastaruosius metus patyrė DI šturmą:

Apie ką bus ši straipsnių serija

Šiandien vis daugiau žmonių be jokio techninio bagažo griebiasi programavimo su DI. Daugelis nežino, nuo ko pradėti, arba apsiriboja vos keliais paviršutiniškais bandymais. Greitai paaiškėja, kad inžinerinių žinių stoka kiša koją: žmogus nebesupranta, kas vyksta „po variklio dangčiu“, nemoka skaidyti užduočių į etapus, stringa prieš sudėtingesnes problemas ir nesugeba nukreipti DI reikiama linkme.

Pastebėjau ir kitą bėdą: daugeliui trūksta paprasčiausio loginio mąstymo, gebėjimo tiksliai formuluoti klausimus, kritiškai vertinti rezultatus ir atskirti gerą atsakymą nuo DI haliucinacijos.

Esu programinės įrangos inžinierius su daugiau nei šešerių metų patirtimi. Padirbėjęs su DI, suprojektavau ir paleidau ne vieną sudėtingą produktą, pritraukusį realių vartotojų. Kaip ir minėjau pradžioje – šiandien kiekviena mano kodo eilutė parašyta DI. Dirbtinis intelektas iš tiesų leidžia kurti rimtas sistemas, tačiau su viena sąlyga: kūrėjas privalo tiksliai žinoti, ką daro, ir mokėti meistriškai vairuoti DI. Tai tėra įrankis; viską lemia žmogus už vairo.

DI epochoje tradicinis programavimo mokymosi kelias negrįžtamai keičiasi. Atsiliepiant į šiuos pokyčius, gimsta mano straipsnių serija: „Išsamus „Vibe Coding“ gidas pradedantiesiems nuo nulio“.

Gide paliesiu kelias esmines temas:

  1. Kaip suderinti DI pagalbą su šiuolaikinės programų inžinerijos standartais. Pirmiausia išsiaiškinsime, kas iš tiesų yra programų inžinerija, o tada nuo nulio sukursime veikiantį produktą. Tikslas – kad projektas neliktų vien trumpalaikis prototipas, o būtų patikimas, lengvai prižiūrimas ir vystomas be galvos skausmo.
  2. Mąstymo ir logikos lavinimas: kaip efektyviai formuluoti užklausas DI, kokių klaidų vengti ir kaip ruošti aiškią projekto dokumentaciją.
  3. Projekto ir kodo testavimas bei darbo eigos optimizavimas: kaip išlaikyti stabilią architektūrą, nuolat kelti kodo kokybę ir diegti naujas funkcijas. Kaip sparčiau kurti nenuleidžiant kokybės kartelės ir kaip automatizuoti pasikartojančius procesus.
  4. Optimalus technologijų kraitis (tech stack) darbui su DI: kokias programavimo kalbas ir karkasus rinktis, kad maksimaliai išnaudotumėte dirbtinio intelekto stiprybes.

Žodis pabaigai

Didžioji dalis šio teksto gimė prieš metus – 2025 m. spalį. Šįkart jį peržiūrėjau, atnaujinau ir papildžiau šviežiais darbo rinkos skaičiais bei DI pasiekimais matematikoje. Tąkart, priblokštas kosminio technologijų greičio, bijojau, kad bet kokios mintys pasens nespėjus joms ataušti, todėl apsiribojau trumpais įrašais socialiniuose tinkluose, atidėdamas ilgesnius tekstus į šalį. Prisėdęs prie šio juodraščio po metų supratau, kad įžvalgos vis dar taiklios. Tad sutvarkiau ir dalinuosi. Ateityje noriu rašyti dažniau – juk gyvo, tikro, žmogiško turinio šiame pasaulyje tik mažės.