personal<IT>y: „Dobrý kód je ako príbeh“ odhaľuje senior programátor v rozhovore o kódovaní, vývoji softvéru a mýtoch v programovaní
16.06.2025 | 15 min Anasofťáci
V rozhovore prezrádza ako sa z papiera a Pascalu dostal k vývoju komplexných riadiacich systémov, prečo je podľa neho programovanie kreatívna činnosť a čo má spoločné s jachtingom.
Technológie hýbu svetom, ale kto vlastne stojí za ich vývojom? Aké sú každodenné výzvy, motivácie a zručnosti ľudí, ktorí budujú digitálne riešenia a komplené softvéry? V sérii rozhovorov personal<IT>y nazrieme do zákulisia práce v IT očami odborníkov z ANASOFTu. Odhaľujú nielen svoj pracovny svet, ale aj osobný, pretože aj za zdrojovým kódom sa ukrýva človek so svojimi záľubami, pohľadom na spoluprácu, ale aj spôsobom akým premýšľa nad problémami.
Senior programátor Štefan sa venuje programovaniu už dlhšiu dobu, vedie tím kolegov a ukazuje, že kód musí byť nielen funkčný, ale aj udržateľný a čitateľný ako dobrý príbeh. V rozhovore prezrádza ako sa z papiera a Pascalu dostal k vývoju komplexných riadiacich systémov, prečo je podľa neho programovanie kreatívna činnosť a čo má spoločné s jachtingom.
Štefanova práca pripomína priekopníčku počítačovej vedy Adu Lovelace (na obraze), ktorá ako prvá pochopila, že programovanie nie je len o číslach, ale o nápadoch, štruktúre a vízii. Rovnako ako Lovelace písala prvý algoritmus s predstavou, že stroje raz budú vedieť vytvárať hudbu či umenie, aj Štefan vníma kód ako kreatívny jazyk, ktorým sa dajú riešiť komplexné problémy sveta.

Počítačový kód na papiery
Pracuješ ako programátor už niekoľko rokov.
No, ja som v podstate programátor, ale pri projektoch pracujem aj na technickom návrhu. To znamená, že sa čiastočne starám o organizáciu práce v tíme, vymýšľam technické zadania tak, aby sme ich realizáciou pokryli požiadavky klienta, usmerňujem programátorov a zaisťujem, že vývoj ide podľa plánu.
Aké je tvoje zameranie?
Väčšinou sa sústreďujem na backend, to znamená, že sa starám o to, aby aplikácia správne fungovala na pozadí. Backend developer sa zameriava na to, ako aplikácia funguje na serveroch, ako spracováva dáta, ako sa komunikuje s databázami a podobne. To sú veci, ktoré nie sú viditeľné pre používateľa, ale sú kľúčové pre správne fungovanie systému.
Ako si sa dostal k programovaniu?
Programovanie ma začalo zaujímať už v detstve. Mal som rád matematiku, začal som s ňou už na základnej škole. Vtedy ešte počítače neboli bežnou súčasťou každodenného života, ale v škole sme začali programovať na starých počítačoch. Potom som sa začal venovať programovaniu na strednej škole, kde som sa venoval jazykom ako Pascal a neskôr aj C.
Aké si mal skúsenosti s programovaním na začiatku?
Na začiatku to bolo zaujímavé. Pamätám si, že sme začínali s jazykom Karel, to bol taký jednoduchý jazyk pre deti, ktorý pomáhal pochopiť základy programovania hravou formou. Potom sme prešli na Pascal, čo bolo už trochu zložitejšie, ale stále veľmi prístupné. Pomedzi to som sa pomocou rôznych tutoriálov sám učil iné jazyky. Vtedy som začal skutočne vnímať, čo znamená programovať. No doba bola iná, počítače a internet neboli tak dostupné ako sú dnes. Pamätám si, že som občas písal kód na papier alebo neskôr som si sťahoval a na disketách nosil domov tutoriály, ktoré som po večeroch študoval.
Aký je rozdiel medzi tým, čo sa učíš v škole, a tým, čo robíš v praxi?
V škole sa učíš teóriu, algoritmy, základy jazyka. To je dobrý základ, ale keď sa dostaneš do praxe, všetko je viac praktické. Musíš riešiť reálne problémy, nie len teoretické úlohy. Tiež musíš vedieť, ako optimalizovať kód, aby bol efektívny, a musíš brať do úvahy aj veci ako bezpečnosť a výkonnosť. V praxi sa zistíš veľmi rýchlo, ako aplikovať to, čo si sa naučil, na skutočné problémy. Okrem toho v škole zvyčajne píšeš kód „na zelenej lúke“ a sám, no v praxi sa to stáva málokedy. Častejšie ide o rozširovanie už existujúceho komplexného softvéru, na ktorom pracuje viac programátorov.
Programovanie je veľmi kreatívna činnosť, hoci si to mnohí ľudia neuvedomujú
Čo ťa na programovaní najviac fascinuje?
Programovanie je veľmi kreatívna činnosť, hoci si to mnohí ľudia neuvedomujú. Keď riešiš problém, musíš prísť na spôsob, ako ho vyriešiť čo najlepšie, čo nieje vždy jednoznačné. Môžeš mať rovnaký cieľ, ale každý programátor ho môže dosiahnuť inak. Tento proces riešenia problémov a vymýšľania nových spôsobov, ako robiť veci efektívne, je na tom najzaujímavejší.
V čom je programovanie kreatívne?
Kreativita v programovaní je o hľadaní nových prístupov na riešenie problému. Mnohokrát máš jeden cieľ, ale môžeš ho dosiahnuť rôznymi spôsobmi. To znamená, že nie je len jeden "správny" spôsob, ako napísať kód, ale každý programátor ho môže napísať inak, a pritom všetko môže fungovať rovnako. Je to o tom, ako využiť svoje zručnosti na vytvorenie efektívneho riešenia. Tento proces je veľmi kreatívny, pretože neexistuje len jediná odpoveď.

Riešenie reálnych problémov cez algoritmy
Aké sú najdôležitejšie fázy pri vývoji softvéru?
Základná fáza je analýza. To je, keď sa zozbierajú požiadavky od klienta a analytici vytvoria detailnú funkčnú špecifikáciu. Potom nasleduje fáza návrhu, kedy sa vytvorí architektonické riešenie a rozplánuje sa ako budú jednotlivé časti systému spolupracovať.
A potom už začína samotné programovanie, kde sa píše kód podľa týchto návrhov. Po napísaní kódu prichádza fáza testovania. Na tomto sa podieľajú rôzni ľudia, nielen programátori, ale aj testeri, ktorí hľadajú chyby. Programátori často testujú svoj vlastný kód, ale veľa chýb sa nájde až v priebehu spoločných testov, kedy sa celý systém testuje ako celok.
Aká je tvoja konkrétna zodpovednosť pri tvorbe softvéru?
Moja hlavná zodpovednosť je za finálny produkt, teda za to, aby softvér, ktorý vyvinieme, bol kvalitný a zodpovedal požiadavkám zákazníka. Keď sa kód napíše, ja ho kontrolujem a zabezpečujem, že všetko je na svojom mieste. Programátor môže byť zodpovedný za určitú časť kódu, ale ja som zodpovedný za celkové fungovanie a implementáciu.
Nie každý programátor je uzavretý do seba
Programátori sa najčatejšie zobrazujú ako samotári pri počítači. Je programovanie individálna práca?
Je to určite tímová práca. Kým sa niečo napíše, vždy je potrebné, aby sa to skonzultovalo s ostatnými kolegami. Programovanie je skôr individuálna činnosť v tom zmysle, že každý programátor píše svoj kód, ale každý kód musí byť skontrolovaný, otestovaný a zladený s ostatnými časťami systému. Takže aj keď každý robí svoju časť, na konci musia všetci pracovať spolu, aby celý systém fungoval.
Mnoho ľudí si myslí, že programátori sú introverti. Je to podľa teba pravda?
Nie úplne. Určite sú medzi nami aj introverti, ale je to veľmi individuálne. Nie každý programátor je uzavretý do seba, aj keď niektorí môžu byť menej sociálni. Je to ako v každom inom povolaní. Dôležité je, že každý musí nájsť spôsob, ako fungovať v tíme a komunikovať. Programátori potrebujú byť schopní komunikovať, aby mohli spolupracovať na riešení problémov.
Pre programátorov je tiež dôležité neustále sa učiť vzhľadom rýchly vývoj. Ako to máš ty?
Neustále sa učím, pretože technológie sa menia rýchlo. Dnes je to o tom, že musíš byť flexibilný a ochotný prijať nové nástroje a jazyky. Čítam články, sledujem online kurzy a zúčastňujem sa na rôznych konferenciách alebo webinároch. Keď pracujem na projekte, často sa stretávam s novými technológiami, a ak niečo neviem, jednoducho sa to naučím. Programovanie nie je len o tom, čo vieš, ale aj o tom, ako sa prispôsobuješ a učíš sa nové veci.
Do akej miery je matematika nevyhnutná pri programovaní?
Logické uvažovanie a matematika sú veľmi dôležité pre programovanie. Nemusíš byť matematikom na úrovni PhD, ale základné pochopenie algoritmov, logiky a štruktúr dát je nevyhnutné. Programovanie je ako riešenie matematických úloh, vyžaduje to schopnosť myslieť analyticky. Ak rozumieš logike a vzorcom, budeš oveľa efektívnejší pri písaní kódu.
Každý problém, ktorý riešiš, má svoje vlastné riešenie a treba sa naň pozrieť z rôznych uhlov
A kedy si sa rozhodol, že chceš pokračovať práve v backend programovaní?
Vždy som sa cítil komfortnejšie pri práci na backende. Na frontend je podľa mňa kladených viac obmedzení a očakávaní na výsledný produkt, často to má netechnické dôvody ako napríklad aktuálne trendy alebo preferencie klienta. Samozrejme aj pre mňa ako používateľa je veľmi dôležitá vizuálna stránka aplikácií a celková používateľská prívetivosť, ale ako programátor som zručnosti a cit pre túto oblasť veľmi nerozvíjal. Vždy ma viac zaujímalo to čo je “za oponou”.
A čo považuješ za najväčšiu výzvu pri tejto práci?
Určite je to práca s logikou a optimalizácia. Každý problém, ktorý riešiš, má svoje vlastné riešenie a treba sa naň pozrieť z rôznych uhlov. Veľa vecí si človek musí vypracovať krok za krokom, aby dosiahol najlepší možný výsledok. Mnohokrát si musíš vymyslieť nové riešenia na staré problémy. A to je vlastne tá kreatívna časť práce.
A aké ďalšie zručnosti považuješ za dôležité pri programovaní?
Okrem technických zručností je dôležité mať aj dobrú schopnosť komunikovať a pracovať v tíme. Programovanie nie je len o písaní kódu. Je to aj o spolupráci, riešení problémov s ostatnými a o schopnosti vysvetliť svoje riešenia kolegom. A samozrejme, musíte sa neustále učiť. Technológie sa menia veľmi rýchlo, a ak nechcete zaostať, musíte sa prispôsobovať a vyhľadávať nové trendy a nástroje.

Riešiť problémy, ktoré ešte nikto neriešil
Čo pre teba znamená "dobrý kód"?
Dobrý kód je kód, ktorý je jasný, čitateľný a udržateľný. Nie je to len o tom, aby fungoval, ale aj o tom, aby ho ďalší programátor, ktorý príde po tebe, vedel pochopiť a upraviť. Kód by mal byť taký, že keď ho niekto číta, mal by ho chápať ako príbeh, mal by mu byť logicky zrozumiteľné. Keď sa kód píše správne, nielen že rieši problém, ale je aj ľahko prispôsobiteľný v budúcnosti.
Čo znamená "udržateľný kód"?
Udržateľný kód je taký, ktorý je ľahko pochopiteľný, jednoducho sa udržiava a je ľahko modifikovateľný. Ak sa kód zle napíše, môže byť neskôr problém ho upravovať alebo ho rozšíriť, pretože nový programátor sa musí viac trápiť s jeho pochopením. Udržateľnosť kódu je teda kľúčová.
Kód by mal byť ako príbeh, ktorý dáva zmysel
Často sa hovorí, že kód píšeš pre stroj, aby ho vykonával. Ty však tvrdíš, že kód píšeš pre ľudí, aby ho vedeli čítať. Môžeš to vysvetliť?
Presne tak, kód je primárne písaný pre ďalších programátorov, ktorí s ním budú pracovať, nie len pre stroj. Je dôležité, aby bol kód čitateľný, aby ho ďalší programátori, ktorí prídu po tebe, pochopili bez problémov. Kód by mal byť ako príbeh, ktorý dáva zmysel.
Máš nejaký príklad, kedy si musel vymyslieť nové riešenie na konkrétny problém?
Áno, napríklad pri digitalizácii riadenia skladu. Mali sme projekt, kde sme museli previesť fyzické úlohy, ktoré vykonávali ľudia, do softvéru. Tým, že sme začali implementovať systém, ktorý sleduje prácu v sklade a pracovné zadania pre operátorov, museli sme sa postarať o to, aby systém správne rozdelil úlohy, aby sa nezmiešavali a aby všetko fungovalo správne. Tento projekt bol zaujímavý, pretože sme museli vyvinúť nový spôsob riadenia úloh a optimalizácie skladových procesov.
Aký typ projektov ťa najviac baví?
Mám rád projekty, ktoré sú komplexné a vyžadujú si inovatívne riešenia. Keď riešiš problém, ktorý ešte nikto neriešil, to je naozaj zaujímavé. Rád pracujem na projektoch, ktoré majú veľa pohyblivých častí, pretože takto môžem prísť s novými nápadmi. Je to výzva, ale aj veľmi uspokojivé, keď sa všetko spojí a funguje správne.
Keď riešiš problém, ktorý ešte nikto neriešil, to je naozaj zaujímavé
Hovoril si o tom, že často diskutuješ s analytikmi, aby si obhájil svoje odhady a technické riešenia. Môžeš sa podeliť o nejaké skúsenosti z týchto diskusií?
Áno, je to veľmi bežné, že sa musíme s analytikmi dohadovať o technických riešeniach a odhadoch. Často prídu s požiadavkou na zjednodušenie projektu, aby sa zohľadnil rozpočet alebo termín. Niekedy musíme hľadať kompromisy, ktoré neohrozia funkčnosť systému, ale zároveň umožnia splniť obchodné požiadavky. Nie vždy je to jednoduché, ale je dôležité, aby si každý vedel obhájiť svoje rozhodnutia, a preto musím byť schopný presne vysvetliť, prečo sú určité technické rozhodnutia dôležité.
Kedy je potrebné zapojiť softvérového architekta do projektu?
Softvérový architekt je zvyčajne zapojený už v počiatočných fázach projektu, keď sa definujú technické princípy a základná architektúra. Ak je potrebné zmeniť niečo zásadné v architektúre, ako napríklad zmeniť spôsob, akým sa systém správa alebo ak sa objaví nejaký veľký problém, architekt sa opäť zapojí, aby určil správne riešenie. Moje úlohy zvyčajne spočívajú v tom, že implementujem tieto princípy do kódu a zabezpečujem, aby všetko fungovalo v súlade s tým, čo bolo navrhnuté.
Každý projekt prinesie nejaké odlišnosti
Aké výzvy považuješ za najväčšie pri práci na komplexných projektoch?
Najväčšou výzvou je, keď je potrebné zohľadniť všetky detaily a zároveň zachovať flexibilitu, pretože niektoré aspekty sa môžu zmeniť počas vývoja. Každý projekt prináša niečo nové, a aj keď máme skúsenosti, vždy existujú nepredvídateľné okolnosti, ktoré môžu projekt skomplikovať. Preto je dôležité byť flexibilný a pripravený prispôsobiť sa zmenám.
Hovoríš, že skúsenosti sa nedajú vždy presne zopakovať, že každé riešenie je trochu iné. Ako sa s tým vyrovnávaš?
Každý projekt prinesie nejaké odlišnosti, či už v technických požiadavkách, alebo v spôsobe, akým sa musíme prispôsobiť konkrétnym podmienkam. Preto je dôležité sa neustále prispôsobovať, učiť sa z predchádzajúcich skúseností a vždy sa snažiť čo najpresnejšie odhadnúť, ako sa daný problém vyrieši. Na to je potrebná flexibilita a schopnosť pozerať sa na problém z rôznych perspektív.

Programovanie je viac ako len kód
Spomínal si, že programovanie môže byť aj zábavné. Čo ťa na tejto práci baví najviac?
Zábava je v tom, že sa stále učím niečo nové. Každý projekt prináša výzvy, ktoré ma nútia premýšľať inak. To je na tom najviac zaujímavé. Niekedy aj riešenie, ktoré sa na prvý pohľad zdá komplikované, sa ukáže ako fascinujúce, keď nájdeš správny spôsob, ako na to. Pre mňa je to hlavne proces hľadania najlepšieho možného riešenia. Nie vždy to musí byť najjednoduchšie, ale vždy je to nové a vzrušujúce.
Ako relaxuje programátor?
Práca v záhrade je pre mňa veľmi osviežujúca. Je to úplne iný typ práce ako programovanie, ale zároveň je veľmi uspokojujúca. Záhrada mi poskytuje možnosť odísť od obrazovky a venovať sa niečomu fyzickému. Je to skvelý spôsob, ako si "vyčistiť hlavu" a získať nový pohľad na problémy, s ktorými sa stretávam v práci.
Pre mňa je to hlavne proces hľadania najlepšieho možného riešenia
Môžeš spomenúť nejaký konkrétny príklad, keď ti práca v záhrade pomohla pri práci?
Určite. Napríklad, keď som mal problém s optimalizáciou kódu, ktorý sa nevyvíjal podľa očakávaní, potreboval som si dať pauzu. Po pár hodinách v záhrade, keď som sa venoval niečomu úplne odlišnému, sa mi v hlave začali objavovať nové nápady, ako pristúpiť k problému. Niekedy, keď si dáš pauzu, tvoje podvedomie začne pracovať na riešení problémov, a keď sa vrátiš k počítaču, máš čerstvý pohľad.
A ako sa vyrovnávaš so stresom v práci?
Pri práci pod tlakom je dôležité zachovať chladnú hlavu a rozpoznať, čo je najdôležitejšie. Stres môže byť produktívny, ak ho využiješ ako motiváciu na rýchlejšie a efektívnejšie riešenie problémov, ale zároveň je dôležité neprepáliť to. Ak to naozaj začne byť príliš náročné, dám si krátku pauzu, aby som si vyčistil hlavu. A keď sa vrátim, mám jasnejšiu predstavu, ako ďalej postupovať.
Spomínal si, že cestuješ na "divoko" bez pevného plánu. Ako to vyzerá?
Áno, s manželkou sme cestovali napríklad po Španielsku a Portugalsku. Požičali sme si dodávku a jazdili sme, pričom sme nemali jasný plán, kam pôjdeme. Často sme išli na základe momentálnych rozhodnutí, zastavili sa, kde sa nám páčilo, a spoznali nové miesta bez toho, aby sme niečo plánovali.
Využívaš pri cestovaní aj nejaké programátorské zručnosti?
Samozrejme, aj v osobnom živote sa často snažím optimalizovať veci, rovnako ako pri práci. Pri takejto forme cestovania je potrebné každý deň naplniť základné potreby ako je spánok, hygiena, strava a pitný režim. Aj pri tom nám pomáhajú technológie, napríklad android aplikácie kde používatelia zdieľajú miesta na mape kde sú dostupné rôzne služby ako sprcha, pitná voda, parkovanie na noc. Je to podobné, ako keď sa snažíš optimalizovať kód, hľadáš spôsoby, ako spraviť veci efektívnejšie a bez toho, aby si strácal čas alebo zdroje.
Jachting je skvelý spôsob, ako si odpočinúť, ale zároveň sa pri ňom naučíš veľa o stratégii
Máš ešte nejaké ďalšie príklady ako sa tvoja “profesionálna deformácia” prejavuje v súkromnom živote?
Určite, je to o tom, že pri programovaní neustále hľadáš spôsoby, ako zjednodušiť alebo optimalizovať procesy. Takto to robím aj v osobnom živote, či už pri plánovaní ciest, organizovaní vecí doma, alebo aj pri riešení problémov s rodinou. Vždy sa snažím myslieť na to, ako to urobiť efektívnejšie. Rovnako ako v kóde, aj v živote sa neustále prispôsobujem a upravujem svoje prístupy, aby som našiel najlepšie riešenie pre konkrétnu situáciu.
Tvoje hobby je jachting. Má niečo spoločné s programovaním?
Jachting je skvelý spôsob, ako si odpočinúť, ale zároveň sa pri ňom naučíš veľa o stratégii a predvídaní, čo je vlastne veľmi podobné ako pri programovaní. Pri jachtingu si musíš neustále predstavovať, čo sa bude diať o niekoľko krokov dopredu, ako bude loď reagovať na vietor a vlny. Na rovnakom princípe, ako pri písaní kódu, si musíš predstaviť, ako všetky komponenty systému interagujú medzi sebou a čo sa stane, keď niečo zmeníš.
Aké sú iné podobnosti medzi jachtingom a programovaním?
Napríklad pri príprave na vyťahovanie plachty si musím predstaviť, ako sa všetky lana poskladajú, kde sa nachádzajú, ako sa navzájom ovplyvňujú. Ak niečo urobím zle, môže sa lano zamotať alebo plachta sa nemusí správne vytiahnuť. Toto je veľmi podobné tomu, ako pristupujem k písaniu kódu. Musím si predstaviť, ako budú jednotlivé funkcie, objekty a premenné spolupracovať, je potrebné zapojit určitú dávku predstavivosti, vizualizovať si v hlave cieľový stav a objaviť možné problémy a slabé miesta ešte skôr než začnem s realizáciou.
Programovanie nebude len o písaní kódu
Aké ďalšie zručnosti z jachtingu ti pomáhajú v práci?
Určite je to aj tímová práca. Na lodi, aj keď máš jasnú úlohu, vždy musíš spolupracovať s ostatnými členmi posádky. Rovnako aj v programovaní je tímová práca kľúčová. Musíš sa spoľahnúť na svojich kolegov, aby si mohol efektívne riešiť problémy a plniť úlohy. Na jachte, keď sa niečo pokazí, je dôležité rýchlo a správne komunikovať a riešiť situáciu, aby si dosiahol požadovaný cieľ. To isté platí aj v práci programátora, komunikácia a spolupráca v tíme sú nevyhnutné pre úspešné dokončenie projektu.
Ako teda vidíš budúcnosť programovania?
Budúcnosť programovania bude ešte viac zameraná na automatizáciu a umelú inteligenciu. Technológie sa vyvíjajú veľmi rýchlo a programátori budú musieť byť stále viac prispôsobiví. Programovanie nebude len o písaní kódu, ale aj o využívaní nových nástrojov a techník na automatizáciu týchto procesov. To, čo dnes považujeme za veľmi komplexné úlohy, bude možno o niekoľko rokov bežná vec. Programovanie sa stále viac stáva prístupné širšiemu okruhu ľudí, čo môže priniesť nové, inovatívne spôsoby vývoja softvéru.
A čo si myslíš o tom, že sa programovanie stáva dostupnejším pre širšiu verejnosť?
Myslím, že je to veľmi pozitívny krok. Vďaka rôznym vzdelávacím platformám a open-source nástrojom môže každý začať programovať a to je skvelé. Rozmanitosť názorov a prístupov je pre vývoj softvéru veľmi cenná. Programovanie už nie je len pre technických odborníkov, ale môže sa stať neoddeliteľnou súčasťou rôznych profesií. To môže otvoriť nové možnosti a spôsoby, ako využívať technológie v rôznych oblastiach.
Chcete dostávať novinky e-mailom?
Vyberte si z tém, ktoré vás zaujímajú a prihláste sa k odberu noviniek