Hlavní obsah
Internet, technologie a elektronika

Jak se programuje s umělou inteligencí. Zkušenosti

Foto: Chat GPT

Takový nápor jsem si ani neuměl představit. Vždycky se to alespoň někam sunulo. Teď ne.

Umělá inteligence jako programátorský parťák. Praktická příručka pro ty, kdo s AI opravdu chtějí tvořit funkční kód. Tento text není teorie. Je to extrakt stovek hodin reálné práce s AI kodérem v placené profi verzi na živém projektu.

Článek

Výsledky jsou často překvapivé: AI umí psát syntax, ale nechápe váš styl, zapomíná, lže, v tichosti mění kód a rozbíjí věci, které fungovaly a aktivně zanáší chyby, pokud není vedena železnou rukou.

I potom musíte všechny klíčové věci po každé iteraci kontrolovat znovu a znovu a číslovat verze a dávat „ok“ značku k těm, které fungovaly. Největší tragédie je zjistit po týdnu, že vám před týdnem něco zásadního, co se vůbec ten týden neměnilo a neměl jste důvod to testovat, tak že to zničil. A vše, co jste za ten týden udělali, musíte opatrně dělat znovu celý další týden na té verzi, kde to ještě fungovalo a pořád dokola kontrolovat, zda to už rozbil nebo ještě ne. Řešíte design a kolonky časového panelu a on vám rozbije ukládání dat gridu. Kdy a proč netušíte. To nepochopíte.

Vůbec to nesouvisí. Ale hlavně. On už to neumí opravit, přestože je to jeho kód. Čtyři hodiny zuřivosti, nervů, propáleného kreditu a nic. Vodí vás dokola. Pak se vracíte na verzi starou týden a jen díky tomu, že si každý post do AI archivujete, tak jste schopni procesy postupně zopakovat. Bez číslování verzí a archivování postů nejde vůbec nic. Teď jsou v módě agenti, ti jsou asi dobří na příkazy typu „Napiš appku“ a jedou si „best practices“ a tuctová řešení. Ale na tohle to fakt nejde. Ale třeba s tím ještě pořádně neumím.

Základní realita – s kým máte tu čest. AI nemá paměť – po pár zprávách zapomene, co jste dělali. Po zavření vlákna nic neví. Proto s každým novým vláknem se zadávají hned na začátku „Specifikace“, kde je 10-15 řádků s přesnou specifikací projektu a nejdůležitější věc je příkaz „Pozor. Důsledněji hlídej, na které verzi souboru pracuješ, vždy stále pokračujeme v úpravách na verzi, která byla upravovaná. Pokud se výslovně neřekne, že soubor stejného jména nahrávám znovu, tak stále upravujeme v upravené verzi. Hlídej soubor, na kterém pracujeme pečlivě. Starší verze nás nezajímají. Úpravy se dělají vždy na poslední upravené verzi.“ Bez tohoto polopatického příkazu je ten stroj schopen vám po třech hodinách práce v tichosti strčit verzi z rána, ve které udělá tři drobné poslední úpravy a vy nic netušíte a ztratili jste den, pokud zítra pokračujete v tom, v čem jste skončili.

Občas jsou to fakt infarktové stavy a je zjevné že pomůcka to je, ale jako nástroj to ještě nevyzrálo. Upřímně, dělám s tím jen proto, že se bojím, že až to nebude vtip nespolehlivý, ale profi věc, tak že to bude stát desetinásobek ceny nebo více a já na to mít nebudu, tak si to raději odtrpím v téhle porouchané inteligenci, která je i tak podle mne nejlepší z toho, co je. Laici jsou totálně nadšení co to umí, ale výsledky jsou podle mne obvykle nepoužitelný dobře vypadající vtip nebo věc, kterou mají všichni stejnou a dokola se opakuje, to jde. Ale skutečné programování čehokoliv specifického dost bolí. Na co je to fajn, to jsou překlady kódů mezi jazyky. Ale jen po jednotlivých funkcích a s žádnými závislostmi.

AI nemá váš styl – nechápe vaše pokročilé vlastní gridy, knihovny, nic. V trénovacích datech to nebylo. Pokud ho do toho budete nutit, zkazí to. Nebo vám to bude pořád měnit na nesmysly. I když mu dáte vzorovou stránku a striktně požadujete aby určité řešení vzal odtamtud, něco si do toho přidá, čím všechno zkazí a vám vyrobí dny práce navíc, pokud netušíte, jaký je to „pilný blbec“ a čeho je schopen. Měl jsem přepočtovou konstantu pro zobrazování 2.96 .. nikdo neuhodne proč, ale všude mi ji ad hoc změnil na 3.96 a podal mi kód že je prý věrně zkopírovaný. Zjistil jsem to po měsíci, následoval týden zpětných přepočtů a všech závislostí, stejně už to nešlo změnit, tak mám 3.96 a zbytek projektu má 2.96. Proč? To nikdo neví. Jen vím, že s tím budou problémy deset let. Dokud to nějaká chytřejší AI na sto místech v kódu neopraví, protože se vše tvořilo s jiným koeficientem, ale jen v této sekci. To by člověk zaplakal.

Subjektivně mi přijde, že jsou dny, kdy je AI bystrá a funguje skvěle a dny, kdy mám před sebou něco úplně jiného a na co sáhne to zkazí. Ale přitom spouštím stále stejnou verzi. To je fakt divné. Ale nevidím do toho. prostě kombinačky, které jeden den neštípou a jsou tupé, druhý den ok, třetí den nikdo neví. A používejte to. Peklo. Ale umí syntaxi stokrát lépe než já. Ale nedokáže poslechnout, pokud nerozložíte vše na prvočísla a i pak nedodrží zadání. Naštěstí to jde zkontrolovat a číst vše co píše, že si váš algoritmus zjednodušil a on pak selže. A vy koukáte a ptáte se proč? Prý protože výstup byl za těchto podmínek stejný a ušetřila se řádka kódu. Je to totální pako. Ale nic lepšího není, tak co se dá dělat. Pořád se soustředit, vše kontrolovat, očekávat úplně nesmyslné chyby a hloupá řešení. A vynechávání věcí.

Shrnutí: AI zjednodušuje a mění algoritmy – výsledek vypadá stejně, ale průběh je jiný, křehký a rizikový. AI selhává při přesunech logiky mezi stránkami a při složitějších souborech. AI neumí CSS podle předlohy – „udělej to jako jpg vzor“ pouze 40% úspěšnost. A nepomáhá ani audit. S jistotou vám při zpětné kontrole tvrdí, že to přesně ono a koukáte na poloviční počet tlačítek a jiné rozložení a grafiku a nulovou funkčnost.

Závěr: Nečekejte parťáka. Čekejte velmi rychlého juniora, který umí syntax, ale aktivně škodí, pokud ho neuhlídáte. A uhlídat nejde. Leda že byste mu dávali nejjednodušší věci a vše po něm kontrolovali krok po kroku. Větší celky a jejich změny jsou vždycky past. Jde to odladit, ale na sto etap. Neustále nacházíte chyby a znovu a znovu vysvětlujete věci, které byly v zadání včera předevčírem, před týdnem, nikdy není hotovo, vždy se ukáže, že je to zase jinak. A znovu řešíte to samé. Osobně to beru jako školu, že prostě se plýtvá mým časem, ale naučím se od něj syntaxi a to, co je v učebnicích, to mu jde, nechám si to postavit a postupně doladím puzzle, které už použiji bez něj podle vzoru a pak ho z procesu vykopnu, protože ty nervy bych nikomu nepřál.

Bezpečnostní postup – verze, návraty, komprese. Toto je nejdůležitější pravidlo. Bez něj skončíte ve slepé uličce. Číslujte verze 1.0, 1.1, 2.0 … vždy zapište, která fungovala - OK do názvu složky pokud dělá, co má. Po každém úspěšném testu zálohujte. Jinak se nevrátíte. Jakmile udělá v delším vlákně kompresi, začne dělat násobně chyb a poškodí váš kód, okamžitě jak zahlásí „komprimuji“, tak ukončete vlákno a založte jiné, dejte úvodní specifikaci a jedeme znovu.

Po 20 zprávách vždy založte nové vlákno. Staré vlákno je zmatené a pomalé. A riziko, že vám podstrčí verzi z rána s desetinou úprav, je veliké a s každým dalším postem se zvětšuje.

Jak zadávat úkoly – přesnost je vše. Špatně je „Oprav to přihlašování, nefunguje.“ Správně: „Máš soubor login.php (přikládám). Funkce validate() na řádku 2124. Chyba: po zadání správného hesla zamrzne prohlížeč, řeší ctrl+F5. Dej mi diagnostickou verzi s výpisy do konzole F12 na řádcích v okolí funkce pro diagnostiku, podám ti výsledky. Pak podle výpisů najdeme bug.“

Zásady zadání: Vždy přiložte soubor (kopírovat text pokud jde jen o malou funkci také stačí). Vždy buďte konkrétní a uveďte jména funkcí, popis algoritmu i příklad co zpracuje s jakým výsledkem. Např ochrana struktury datumu v kolonce : „obsluha může zadat pro výsledek 01.01.2026 tyto formáty, funkce je musí ošetřit : 1.1.26 .. 01.1.2026 .. 1.01.2026 .. 1,1,26 .. 1/1/2026 .. 1-1-26 .. výsledkem musí být vždy hodnota s délkou 10 znaků ve formátu DD.MM.RRRR“. Stejně třetinu variant zkazila, padlo na to 8 postů. A to byla dobrá bilance. Čas na testy a všechny varianty je drsný.

Požadujte výpisy do konzole (F12) na 5–10 místech. Trvejte na svém postupu – AI často udělá něco jiného. Diagnostika chyby – když něco nefunguje. AI často neumí najít vlastní chybu. Musíte ho k tomu donutit. Někdy se to jeví, že s každým postem vidí kód poprvé a nic o něm neví, ani co dělala před 10 minutami, vše je novinka. Hláška: „Napřed si musím nastudovat kód“ v situaci, kdy děláme na stejném souboru 4 hodiny, to mne ničí.

Standardní postup při chybě, která je zjištěna v čas. Vraťte se okamžitě k poslední funkční verzi. Pokud je to do hodiny, vyplatí se to více než s AI „řešit a opravovat chybu“, ta hodina na to padne minimálně a tokenů mraky.

Zkoušel jsem podat starší verzi, která fungovala, když šlo o problém po několika dnech o kterém jsem netušil, že se to zase v tichosti zkazilo, co běhalo na jedničku. Pojmenoval jsem verzi „tento_soubor_OLD_fungoval_pred_zmenami.php“. Výsledek? Analyzoval jeden soubor, pak druhý, ve dvou třetinách situací jen udělal chaos a propálil kredit a muselo se vrátit o tři dny zpět. Ve třetině případů vzal funkci ze starého souboru, udělal úpravy v nové funkci a ok. Nikdy neuhodnete, zda to bude rutinní úprava nebo zásek a konečná. A protože kód píše on, tak nemáte šanci v tom něco efektivně hledat.

Pokud chyba přetrvává tak diagnostika výpisy. Diagnostika krok za krokem: „Dej výpis do konzole F12 aspoň na deset míst kolem problémové operace. Výpis ať obsahuje měnící se hodnoty těsně před každou kritickou operací. Pak mi dej poslední hlášení, které se objevilo. Podle toho zjistíme, kde to naposledy fungovalo.“ Tento postup na jednodušší věci téměř vždy nakonec funguje, i když to vypadá beznadějně a trvá dlouho a stojí kredit. Ale také už se mi stalo, že to prostě nešlo.

Co je naprostá hrůza je, když vás vodí v kruhu. Odmáčknete rutinní operaci a on píše a přemýšlí a píše a přemýšlí a když je to osmá varianta „Už to mám“ .. „Ne to by nebyl problém“ .. „Pokusím se na věc podívat z jiného úhlu“ .. tak nezbývá než vypnout prohlížeč a po restartu založit nové vlákno, jinak je schopen vám na banalitě (někdy i moje chyba, že jsme vynechal v zadání slovíčko a on testuje okrajové věci, než aby řešil příčinu kiksu), tak je schopen propálit kredit na 4 hodiny během 15 minut. A nezastavíte ho, není tam tlačítko „Stop“. Musíte shodit prohlížeč a modlit se, aby dalších 15 otoček „Tak to nebylo ono, ale už to skoro mám.“ neproběhlo na pozadí na serveru. Za vaše peníze. Tím si nejsem moc jist.

Co AI vždycky udělá hloupě a tvrdí jak provedl profi řešení – algoritmy od AI to jsou téměř vždy hloupé pastičky. Jeho vlastní file locky a zápisy na disk. Téměř vždy strašně blbnou. Přesouvání logiky mezi obrazovkami. Zásadní chyby, dokonce i v syntaxi, nechá tam závorky v kódu, zmnoží lomítka, nevysleduje souvislosti, vše přestane téměř vždy pracovat. Raději se tomu vyhněte.

Více timeoutů. Ovlivňují se tak, jak by vás to nikdy nenapadlo. Jeden vypne druhý. Každý měl čekat 3 sekundy. Vypíná se to po půl sekundě a AI tvrdí, že je vše v pořádku. Oblíbený dotaz „Fakt tam nemáš dva timeouty různých procesů přes sebe“ .. „Ano mám, tak jsem jeden odstranil“ a chodí. Kdybych se nezeptal, provařím dvě hodiny. Ta ztráta času a nervů je tak hnusná, to je nejhorší aspekt práce s AI. Ty blbosti, které jsou z nesmyslnosti, že člověk by takové chyby nikdy neudělal.

Záchranný postup – když jste v háji (8+ zpráv bez výsledku). Založte zcela nové vlákno – AI je tam svěží a přemýšlí jinak. Přiložte ZIP poslední funkční verze. Napište: „Tohle fungovalo. Teď chci provést změnu X. Nepoužívej vlastní algoritmus, jdi přesně podle zadání.“ Požadujte kontrolu: „Až to napíšeš, ještě jednou znovu zkontroluj, že každá část odpovídá zadání.“ Testujte každý krok – nenechte ho udělat tři změny najednou.

A tohle se vyplatí? Bohužel ano i když je to očistec. Placená verze – cca 20 Kč/den, 3–4 hodiny práce – ano, stojí to za to. Bezplatné verze – neukáží, co AI skutečně umí; jsou v podstatě k ničemu, možná na pokec.

Režim. Práce 4 hodiny denně s AI + 2 hodiny pečlivá příprava na další den – to je reálný model, počítejte s tím. Je to tvrdá práce a pakárna. Za každou chybu či chybějící slovíčko vás potrestá. zanese do všeho šum, pokud mu dáte minimální šanci. AI není náhrada programátora. Je to nástroj, který: umí syntax a rychle píše, ale neustále zanáší chyby, vyžaduje neustálou kontrolu a vedení, je skvělý na polo-hotové věci, které s minimální a kontrolovanou částí dokončuje a upravuje. Ale dělat s ním větší projekt opravdu bolí. A musí se po kouskách, pět kroků dopředu, osm zpět, když zjistíte, že na začátku něco za vás vymyslel a rozhodl blbě a nepochlubil . Iterace typu, „vše znovu a jinak“, dokud si pamatuji co jsme dělali minulý týden, jsem neznal než jsem začal pracovat s AI.

Dnešní katastrofa, která mne donutila napsat tento článek : „Dnes jsme 4 hodiny řešili jeho chybu. Pak jsem pochopil, že je to neřešitelné. Vrátil jsem se o týden zpět a udělal to jinak – a nedal mu šanci to udělat po jeho. Fungovalo to.“ Ale nyní budu týden dělat znovu vše co jsem dělal minulý týden a myslel, že je to hotové, protože jsem to dělal na jím rozbité verzi.

Nebojte se zahodit hodiny práce a jít jinudy. S AI je to úplně normální. Tento text vznikl z reálné zkušenosti. Každé pravidlo je vykoupeno frustrací a ztraceným časem – ale výsledkem je, že to jde. Jen ne tak, jak byste čekali. Ale zatím je to levné. Nepochybuji o tom, že až to bude fungovat jako spolehlivý programátor, že na tom bude nalepena i cenovka jako za spolehlivého programátora. Dnes firmy podle mne jen ladí poruchy na náš účet a zákazník je pokusný králík. A je to dobře. Protože na to, abych si platil programátora, bych nikdy neměl, ale za 20 korun na den, tak prostě vynechám dva jogurty a budu hubnout a třeba pak jednou někomu něco prodám.

Převzato: https://jirikoudela.eu/

Máte na tohle téma jiný názor? Napište o něm vlastní článek.

Texty jsou tvořeny uživateli a nepodléhají procesu korektury. Pokud najdete chybu nebo nepřesnost, prosíme, pošlete nám ji na medium.chyby@firma.seznam.cz.

Související témata:

Sdílejte s lidmi své příběhy

Stačí mít účet na Seznamu a můžete začít publikovat svůj obsah. To nejlepší se může zobrazit i na hlavní stránce Seznam.cz