CESTA K POVOLANIU: Programovanie si vyžaduje logickú predstavivosť, vraví František Gyarfáš
Počas komunistického režimu, ktorý pochoval nádeje na slobodnejšiu spoločnosť, nechcel študovať humanitný smer. Počítačom sa nedalo klamať, preto ho v čase totality omámila predstava tvorby umelej inteligencie. Pracoval dlhé roky ako programátor, dnes vyučuje na Katedre aplikovanej informatiky na bratislavskom “matfyze” a okrem toho je veľký fanúšik filmu. Narodil sa ako optimista a optimizmus ho vraj ani doteraz neprešiel. František Gyarfáš.
V článku nájdete:
O povolaní
Najprv ste programovali, teraz to učíte. Ako ste Vy objavili svoje povolanie?
Keď som končil strednú školu, okolo mňa sa odohrávali dva neprehliadnuteľné procesy. V prvom rade hlboký spoločenský úpadok po obnovení poriadku konzervatívnymi komunistami, ktorý pochoval nádeje šesťdesiatych rokov na slobodnejšiu spoločnosť. Našej generácii to zarúbalo cestu k humanitnému vzdelaniu: tieto oblasti boli invalidizované najviac. Druhý fenomén sa objavil v oblasti počítačov: predstava tvorby algoritmov umelej inteligencie bola omamná, vzdialená od lžami obostretej reality. Počítačom sa nedalo klamať. To ma nasmerovalo k štúdiu počítačov a neskôr k práci na umelej inteligencii.
Učíte na bratislavskom “matfyze”, ktorý patrí medzi najťažšie fakulty na Slovensku. Čím to je?
Nemyslím si, že matfyz je “ťažký”. Je to exaktná škola, ktorá kladie nadštandardný dôraz na porozumenie svetu. Ja osobne som študoval na Technickej univerzite, ktorá bola porovnateľne náročná ako matfyz, avšak štúdium tam bolo omnoho viac zamerané na výchovu k praktickému riešeniu problémov.
Väčšinu profesionálnej praxe som strávil ako aktívny programátor doma aj v zahraničí a moje skúsenosti mi hovoria, že úspešní informatici potrebujú oboje: hlboké porozumenie k riešeným problémom, ale aj pragmatický ťah na riešenie. Ideálom sú pracovníci, ktorí majú oboje. Matfyz, podobne ako technika, dáva dostatočné základy na úspešný štart kariéry informatika. Avšak v tomto odbore sa treba učiť celý život.
Aký má byť programátor
Kto je svojím vzdelaním, talentom, či povahou, vhodný na prácu programátora?
V prvom rade programovanie nie je matematika. Vyžaduje si logickú predstavivosť: schopnosť naučiť program, ako sa má zachovať v každej situácii, do ktorej sa dostane.
Skúsme si to predstaviť ako pohyb planét v slnečnej sústave. Vieme, že každá planéta sa pohybuje vlastnou rýchlosťou po samostatnej dráhe a dokážeme tento pohyb aj vložiť do programového kódu. Čo ale nedokážeme, je vidieť v statickom kóde či a kedy sa planéty zrazia. To sa stane až pri behu programu. Ak však máme vytvoriť dobrý program, musíme to predvídať, testovať a naprogramovať aj potrebné záchranné akcie, ktoré náš program potom samostatne vykoná.
Dobrý programátor musí mať v prvom rade schopnosť logicky myslieť. V jeho základnej výzbroji musí byť zdravý rozum. Musí byť trpezlivý, pretože programy sa vyvíjajú dlhé mesiace. Musí byť presný, pretože je potrebné domyslieť všetko do úplných detailov. A musí byť tak trochu aj detektív, pretože veľká časť našej práce je hľadanie chýb, ukrytých v nenápadných detailoch. Vedomosti starnú najrýchlejšie. Preto je dôležitejšia skúsenosť. Dobrý programátor musí byť pokorný k vlastnej omylnosti a musí vedieť vyjsť s kolegami aj zákazníkmi.
Programovanie je remeslo. Výborné programovanie môže byť umelecké remeslo.
Veľkou prednosťou programovania ako povolania je, že je to vhodné povolanie aj do budúcich desaťročí. Už dnes vieme, že počas nich mnohé profesie zaniknú a budú nahradené strojmi, či inteligentnými programami. Programovaniu toto zatiaľ nehrozí.
Avšak najväčšou prednosťou programovania je, že to dokáže baviť.
Aký má byť programátor?
- potrebuje ovládať logickú predstavivosť
- musí byť schopný logicky myslieť
- musí byť trpezlivý
- musí byť presný
- musí byť pokorný
- tak trochu detektív
- a aj umelecký remeselník
Dnes pôsobíte ako vysokoškolský pedagóg. Je to práca najmä s mladými ľuďmi. Ako ich „naprogramovať“ tak, aby ich štúdium bavilo a aby raz boli vynikajúcimi odborníkmi, ale aby aj ostali naďalej „ľuďmi“?
Treba ich viesť k tomu, aby si to sami skúšali. Aby na vlastných projektoch, malých, aj väčších zistili, že schopnosť naučiť stroj samostatne konať je zaujímavá a je aj výzvou. Dôležité je aj to, že výsledok programovania je praktická, využiteľná vec. Keď sa toto podarí študentom pochopiť, získavajú sebavedomie tvorcov. A to je viac, ako byť vymeniteľným kolieskom v korporátnom súkolí.
Programovanie je sebavedomá, slobodná profesia. To nie je zlá vízia pre život.
Internet priniesol informačnú revolúciu
Vyučujete aj „filozofiu internetu“. S akou filozofiou prichádza internet? Alebo je „neutrálny“?
Počítače dokážu čosi, čo sme predtým nedokázali: samostatne, bez našej spoluúčasti, spracovávať informácie. Už tisícročia budujeme informačnú spoločnosť. Od objavenia písma ukladáme informácie do materiálu, čím ich sprístupňujeme vzdialeným príjemcom: v priestore aj čase.
Informácie však dokázali spracovávať iba ľudia. Až počítače a ich programy využívajú informácie nezávisle od nás: stali sa našimi informačnými partnermi, aj konkurentmi.
Internet je technická realizácia tejto informačnej revolúcie. Umožnil prepojenie počítačov, ich algoritmov, aj pamätí. My sme jeho prostredníctvom začali budovať informačný systém, ktorý v sebe postupne sústreďuje všetko ľudské poznanie: nové, aj historické. A sprístupňuje ho všade. Pojmy ako všadeprítomnosť a vševedúcnosť sme pred internetom považovali za technicky nerealizovateľné. Dnes, po tridsiatich rokoch, sa stali prirodzenou súčasťou nášho sveta a nikto sa tomu ani nečuduje.
Prakticky niet oblasti, do ktorej by internet zásadne nezasiahol. A to sme ešte iba na začiatku cesty. Informačná spoločnosť je dnes už natoľko komplexná a multidisciplinárna, že si filozofickú reflexiu jednoducho zaslúži.
Programovanie je sebavedomá, slobodná profesia. To nie je zlá vízia pre život.
Aký je Váš názor na sociálne siete? Ich filozofia je aká?
Sociálne siete sú jednou z funkcií internetu: prostriedok na komunikáciu medzi ľuďmi, na ich zoskupovanie podľa nimi zvolených kritérií, na vzájomné informovanie a koordináciu. Sú súčasťou informačnej spoločnosti rovnako, ako boli pošta, telefón, noviny či televízia súčasťou tej predchádzajúcej. Ich idea nie je nová, avšak rozsah, rýchlosť a komplexnosť áno.
Ešte pred pár rokmi sa diskutovalo o tom, že informačné technológie uprednostňujú digitálne gramotných – mladších, bohatších a lepšie vzdelaných – pred ostatnými. To sa ale nepotvrdilo. Naopak, používanie informačných technológií sa natoľko zjednodušilo a zlacnelo, že sa stalo všeobecne dostupným. Dnes sú v sociálnych skupinách aktívne všetky zložky svetovej populácie: od akademikov, až po holohlavých násilníkov. Všetci v nich šíria to, čomu veria. Preto je v ňom tak veľa hlúpostí, predsudkov a lží. A to nás momentálne trápi najviac.
Veľkou prednosťou programovania ako povolania je, že je to vhodné povolanie aj do budúcich desaťročí. Už dnes vieme, že počas nich mnohé profesie zaniknú a budú nahradené strojmi, či inteligentnými programami. Programovaniu toto zatiaľ nehrozí.
Napriek tomu som presvedčený, že tieto negatívne javy sú iba okrajom obrovského mora pozitívneho, čo nám internet priniesol. To, že nám poskytuje okamžite a kdekoľvek prakticky akékoľvek informácie, je fantastický pokrok, ktorý sme si v časoch telefónnych zoznamov, cestovných poriadkov, mnohozväzkových encyklopédií a miestnych knižníc nedokázali predstaviť. To, že sú medzi nimi aj lži, polopravdy a hlúposti, nie je vlastnosť internetu, ale jeho nedostatok.
Podobne aj sociálne siete priniesli nesmierny pokrok do organizácie medziľudských vzťahov. Dnes dokážeme byť v kontakte so svojimi príbuznými, priateľmi a kolegami omnoho lepšie, častejšie a hlbšie ako predtým. Dokážeme si radiť a pomáhať celosvetovo. Dokážeme sa organizovať podľa záujmov a kvalifikácie. A cez ne uľahčujeme aj boj s osamelosťou. Sociálne siete toto poskytujú aj zoskupeniam ľudí, ktorých si nevážime, ktorých sa bojíme a odmietame ich. Ale len kvôli nim by sme nemali potlačiť aj pozitívne stránky sociálneho života na internete.
Zaujalo ma aj „extrémne programovanie“, ktoré vyučujete. To je aký typ písania kódu?
Extrémne programovanie trochu klame svojim názvom. Niekedy okolo roku 2000 prišlo v metodológii programovania k prekvapujúcej revolúcii: návratu k zdravému rozumu. Vznikol celý rad metodológií, ktoré sa spolu nazývajú agilné. Jedna z nich nesie názov extrémne programovanie. Odlišuje sa najmä tým, že sa sústreďuje na detailnú prácu s programovým kódom. Vedie nás k písaniu jednoduchého, dobre čitateľného a jasne štruktúrovaného kódu, pretože s takým sa ľahšie pracuje. Dôraz sa kladie na písanie testov, na prerábanie kódu smerom k čistote, na opatrnosti, na dôvere k programátorovi. Na kamarátskom vzťahu k zákazníkom, aj ku kolegom. Keďže som programoval štvrť storočia, tieto zásady sú mi veľmi blízke. Rád ich učím, viem sa pre ne nadchnúť a zdá sa mi, že to oslovuje aj študentov. Málokedy sa im hovoria veci, ktoré prichádzajú nie z teórie, ale sú užitočné v praxi.
Ľudské písanie je omnoho bohatšie, mnohorozmernejšie, metaforickejšie a esteticky krajšie, ako písanie programov.
Píš. A potom choď do filmového klubu
Okrem iného sa venujete aj tvorivému písaniu. Pre niekoho je aj kód poéziou. Ako je to s Vami?
Programovanie je remeslo, a teda by nemalo byť poéziou. Avšak snaha o písanie čistého kódu pripomína dobré písanie ako také. Aj my by sme sa mali vyjadrovať jasne, dodržiavať nielen zákony gramatiky, ale aj zásady dobrej štylistiky. V tom vidím styčné body medzi programovaním a tvorivým písaním. Treba však zdôrazniť, že ľudské písanie je omnoho bohatšie, mnohorozmernejšie, metaforickejšie a esteticky krajšie, ako písanie programov.
Vraj ste filmovým fanúšikom. Čím sú pre Vás filmy príťažlivé? Čím si Vás ako druh umenia nadobro získali?
Filmy sú pre mňa magické už od mladosti. Ich pozeranie, premýšľanie o nich a aj písanie, sú pre mňa celoživotnou vášňou. Práca informatika si vyžaduje najmä používanie logiky. Fantázia je potrebná menej. Keď prichádzate unavení po robote domov, umenie vám prebudí inú zložku osobnosti, ktorá unavená nie je. Tieto dve veci sa výborne dopĺňajú.
Čo si zapisujete do Vašich domácich filmových denníkov?
Filmové denníky som si písal kedysi. V posledných desaťročiach som sa venoval aj aktívnej filmovej publicistike, takže denníky ostali trochu bokom. Ale písal som si do nich to, čo aj do svojich recenzií: čo som si o videných filmoch myslel.
Na záver: Aký máte filmový tip? Čo odporúčate pozrieť si?
To je ťažká otázka. Skôr, ako konkrétne filmy, by som doporučil kiná: treba chodiť do filmových klubov. Treba si hľadať, vytvoriť si a kultivovať vlastný filmový názor. Každý sme iný a páčia sa nám iné filmy. Akýchkoľvek žánrov. Keď to o sebe zistíme, budeme si vedieť vyberať. A budeme mať krajší, bohatší život.