'Zasekl jsem se!' Aneb co dělají zkušení programátoři?
Jak dál? Co mám dělat? Panikařit? Zásek v programování se stává i těm nejlepším programátorům. A je to skutečně frustrující. Hlavní je nepanikařit a zkusit několik osvědčených praktik, které ti zaručeně pomohou. Jsou vlastně velmi jednoduché. Především začátečníci seznam činností ocení.
Abys ušetřil čas a pravděpodobně i své mentální zdraví, projdi si nejdříve tyto kroky, než propukneš v hysterii.
Co dělat, když se zasekneš?
Nejdříve se zhluboka nadechni a vydechni. Ideálně to zopakuj několikrát a v hlavě si přeříkávej: 'To se stává. Najdu problém a bude to v pořádku.' Zůstat pozitivní znamená, že tvá mysl je otevřená a skutečně připravená chybu najít. Nebo si můžeš představit, že nehledáš nějakou svou chybu, ale dostal jsi za úkol vylepšit cizí kód. To je přece výzva!
A pokud potřebuješ ještě trošku více radosti ze života, připrav si ještě nějaký dobrý nápoj a svačinu a jdeme na to.
Nepanikařit, je to normální!
Ačkoliv to už bylo jednou řečeno, není na škodu některé věci zopakovat. Stává se to. I zkušeným programátorům. Ovšem rozdíl mezi juniorem a seniorem je většinou v čase, který jim zabere zásek odstranit. Zkušený senior už většinou rady, které zde rozepíšeme, zná a řídí se jimi. Nebo má úplně jiný postup, ale má na tento problém už POSTUP. Během své kariéry měl jistě mnoho příležitostí ho zdokonalovat do nynější podoby
Debugger rozkryje nejasnosti
Oblíbený i nenáviděný nástroj zároveň. Debugger (např.: ten v prohlížeči) ti pomůže zaostřit nejasné hrany tvých potíží. Můžeš konkrétněji určit, kde leží ta neplecha. Doplň svůj kód o kontrolní výpisy a zjisti kam až je kód v pořádku a kde už jsou v proměnných chybná data. Nesnaž se hledat jehlu v kupce sena zbrklými opravami, nevyplatí se to. Nebuď líný a vypisuj, loguj a nahlížej do proměnných. Pokud chybu nenajdeš během pár minut, nezbývá nic jiného, než si poctivě odkrokovat řádek po řádku. Pak už to musí vyjít.
Neboj se debugger používat při každé možné příležitosti.
Zkontroluj syntaxi
Jedná se o nejčastější chyby. Vážně. Občas se stane, že je někde v kódu něco špatně napsáno nebo označeno. Příkladem může být, když zapomeneme řetězec uzavřít do uvozovek. Počítač (zatím) není schopen číst tvé myšlenky, i když text chyby často napoví. Určitě si text chyby přečti a přelož! Projdi si na řádku s chybou všechny závorky, rovnítka a velká písmena či mezery.
Nejjednodušší by bylo, kontrolovat si každou část kódu v momentě, kdy ji dopíšeš. Tak toho na tebe nebude příliš mnoho a lépe vše podchytíš.
Vysvětluj, mluv, popisuj a zase mluv
Přemýšlej nahlas. Říkej ten problém sobě, někomu jinému (i kdyby to měla být kočka nebo kytka nebo gumová kachnička). Opravdu to myslíme vážně. Čím více budeš popisovat, co se má dít, tím spíš můžeš odhalit, proč se tak neděje. Občas se člověk musí i zeptat, aby si pak mohl sám odpovědět.
A opět zde se vyplatí rozdělit kód do více metod a souborů, aby jsi se na každou mohl opravdu soustředit.
Nejsi první ani poslední
Pravděpodobně tvou chybu už někdy někdo řešil. Především pokud jsi začátečník. Zkus nastartovat strýčka Googla a projet internet křížem krážem. Buď co nejkonkrétnější v zadávání svého problému. Chybovou hlášku klidně zkopíruj a vlož přímo do vyhledávače. Uveď i technologii. Prostě vše, co můžeš, aby jsi záhy našel řešení.
Pokud ti vrácené výsledky nepomohou, zkus dotaz přeformulovat. Často se totiž dostaneš znovu k tomu, že jsi se možná nad problémem dostatečně nezamyslel a nezkusil se z něj vymluvit (předchozí krok). A možná, že díky tomu nastane tvůj 'aha moment', aniž bys cokoliv musel vyhledat.
Zapoj čerstvé oči
Občas se stane, že se nelze odpoutat od vlastního kódu. Tehdy je potřeba podívat se na něj čerstvýma a nezasvěcenýma očima. Někdy skutečně potřebuješ někoho jiného, aby se na problém podíval. Nestyď se a zeptej se. Pokud nemáš ve svém okolí zrovna nikoho k dispozici, existují fóra. Zkus Stack Overflow či jinou komunitu. Každý programátor ví, jak jsou záseky k vzteku a pro ně to bude výzva
Lepší špatný, než žádný
Důležité je prostě stále něco zkoušet a zkoušet. Jak se můžeš odlepit z místa, když se o to nepokusíš?
Pokud neznáš žádný elegantní postup či řešení, dělej to, co umíš. Prostě postupuj dál svou cestou a tempem. Použij klidně 'hloupé řešení'. I to ti totiž může pomoc přijít na mnohem lepší.
Při programování (a vlastně i obecně) platí, že lidé mnohem jednodušeji dokáží vymyslet, jak něco vylepšit, než když mají vymyslet celé řešení od začátku do konce.
Pokud se vydáš špatnou cestou a zjistíš, že jsi sám sebe zahnal do kouta, není to nic hrozného. Používej správu verzí a atomické revize a kdykoliv se můžeš prostě vrátit do výchozího bodu. A zase začít jiným postupem, když už jsi o něco starší a moudřejší.
Vrať se k základům
Jak říká codewithjason.com: "Kdybych o této problematice věděl všechno, co lze vědět, zasekl bych se i tak?" Odpověď zní samozřejmě ne. Člověk nemůže vědět úplně všechno, co lze vědět o čemkoliv, protože se svět neustále mění. Pomáhá se občas vrátit k základům. Projít si e-learningy, videa, tutoriály, knihy. Všechno co lze, abys pochopil, kde vězí problém.
Sejde z očí...
Občas člověk vyčerpá všechny možnosti. Pak nezbývá nic jiného, než si vytvořit odstup a doslova odejít od monitoru. Přinejmenším alespoň koukat na něco jiného. Když se dlouho soustředíš na jeden problém, další okolnosti už může být těžké vidět. I když se to může zdát jako dobrý nápad, začít vyčerpaný další hodinu debuggování je spíše kontraproduktivní. Někdy je vypnutí to nejlepší, co pro sebe a svou práci můžeš udělat.
Pauza od konkrétního kódu nemusí trvat jen pár minut. Neboj se tomu dát klidně i pár hodin a někteří zajdou dokonce tak daleko, že se i několik dní až týdnů k tomu samému problému nevrátí. To souvisí s dalším bodem.
Neboj se prokládat a odkládat
Tvůj mozek je neposlušný v případě, že mu řekneš 'nemysli na to'. Piš si, že bude dělat přesný opak. Nedá ti spát a bude tu samou myšlenku přežvykovat jako tur uschlou přerostlou trávu.
Není ostuda proložit jeden problém jiným a začít řešit jinou část projektu či úplně jiný projekt. Může ti pomoci vyčistit mysl od myšlenek, které ti bránily v prozření. Nebo bude nová problematika přímo obsahovat odpověď, kterou tak dlouho a usilovně hledáš. Či díky tomu, že vyřešíš nový problém, získáš sebevědomí a s úplně jinou vervou se pustíš do starého.
Pamatuj, že i senioři se zasekávají. Pouze znají postup a drží se ho. Místo toho, aby zkoušeli všechno ostatní, jen ne prověřené metody. To je největší chyba začátečníků. Neboj, každý si tím musí projít...
Další zajímavé články