Prokletí informatika

Právě jsem se vrátil ze zkoušky. Dopadla – jak to tak u mě většinou bývá – víc než úspěšně. Místo bujarých oslav si však (opět) říkám, jestli je to vlastně v pořádku.

 

Než se však pustím do vyprávění toho, co se vlastně stalo a proč už v sobě nemám třetího panáka, dovolte mi jednu důležitou poznámku na úvod.

V názvu článku stojí „informatika“. Lidé, kteří mě znají, tak ví, že já mé spolužáky či kolegy rozděluji na ty, kteří jsou „informatik“ a na ty, kteří jsou „student informatiky“ (popř. „absolvent informatiky“). Tento na první pohled nenápadný rozdíl je však prakticky fatální.

Většina lidí si totiž myslí, že když studují (nebo již dostudovali) informatiku, stali se z nich informatici. To je však velký omyl. Vezměte si sebe – kolik z vašich spolužáků ze střední, kteří školu skutečně vystudovali, to skutečně umí (a případně dělá)? Když se zamyslím já, tak z mých spolužáků ze střední, elektrotechnické průmyslovky, se elektrotechnice věnuje možná tak polovina. Zbytek třídy, ač na to mají papír, bych jako elektrotechniky rozhodně nikdy nenazval.

A s informatiky je to podobné. Znám spoustu lidí (netvrdím, že přímo mých spolužáků; vzhledem k tomu, že nás aktuálně studuje 6, tak bych prakticky musel být konkrétní, což bych nerad), kteří studují informatiku stejně jako já a přitom informatiky nejsou. Ano, určitým způsobem třeba umí programovat, zadaný úkol nějak vyřeší, ale když se jich zeptáte, proč to řešili tak a tak, nebo jestli je třeba jakože nenapadlo použít to, co nás učili dva roky zpátky, tak neví. Neví, neznají, nenapadlo je to, už si to nepamatují.

Tito lidé prostě o informatice, no, dobře, nechci říkat, že neví nic, ale – z jejich práce je patrné, že prostě nejsou informatikové. Chodí do školy, učí se na zápočty a zkoušky, ale je vidět, že tomu, co se učí důkladně nerozumí a hlavně – neumí to použít v praxi. Takový člověk informatiku pouze studuje, nic víc. Jo – a samozřejmě na ni nadává. Že se musí učit teoretické nesmysly a zbytečnosti, které mu budou v praxi k ničemu.

Tak přesně o těchto lidech tento článek není. Tento článek popisuje smýšlení někoho, kdo na přednáškách přednášejícího neposlouchá, kdo na přednáškách slova přednášejícího hltá po kilech. Mluvím tu o člověku, pro kterého zabývat se teoretickou informatikou není odporná zbytečnost a ztráta času, ale něco zajímavého. Něco natolik zajímavého, že se nebojí tomu obětovat část svého volného času.

Takto nějak se vidím já. Přiznávám, že tato představa je poněkud idealizovaná, ale to koneckonců nevadí – ani já nejsem dokonalý informatik. Dobře, ale říkáte si, co je na tom tedy tak špatné?

No, první věc, která nejspíš napadne každého, je těžká integrace do praxe. Člověk zvyklý na přednášky a hluboké dumání nad rozličnými teoretickými problémy zpravidla velmi těžce nese fakt, že najednou nejhlubší problém, který ho čeká, je zjistit, proč zákazníkovi aplikace spadla.

Ale o tom jsem nechtěl mluvit. Toto totiž zjevně trápí kdejakého studenta či absolventa vysoké školy. To, proč píši tento článek pramení přímo z podstaty informatiky, resp. jejich aplikovanějších podob.

Jedním z úkolů informatiky totiž je něco, čemu já souhrnně říkám „teorie programování“. To je, zjednodušeně řečeno, sada informatických disciplín, které nám ukazují, jak by se mělo programovat. Pochopitelně, znalost teorie programování je jeden ze základních předpokladů každého informatika. Každý informatik totiž pak nejen, že něco nějak naprogramuje, ale je si vědom toho, co a jak vyřešil, že jeho řešení je nejlepší možné a pokud není, tak dokáže přesně popsat proč.

Pořád si říkáte, co je na tom špatné? Ukážu názorně: Informatik je postaven před úkol vytvořit jednoduchou databázovou aplikaci. Něco jako telefonní seznam nebo tak. Nu, aplikaci si kompletně navrhne, vytvoří si malý databázový framework, sadu GUI komponent a důmyslný systém jednotkových testů. Na závěr vše spojí dohromady a po dvou týdnech má hotovou perfektní aplikaci.

Když před tentýž úkol postavíte neinformatika, založí si projekt, vloží třídu, otevře hlavní metodu, do ní nabuší příšerné množství kódu, aplikaci spustí, prokliká a má hotovo. Za jedno odpoledne. I s pauzou na kafe. Hodinovou.

A na to, že to celé funguje jenom nějakým zázrakem a že se každý bojí v té aplikaci cokoliv změnit, protože je mu jasné, že by okamžitě odkráčela do křemíkového nebe (a ještě cestou sestřelila nějaké dopravní letadlo, prostě jen tak), se nikdo neptá. Obzvlášť v komerčním prostředí, kde každá minuta je drahá. A rozdíl třinácti a půl dne je v tomto případě značný.

Tuto situaci si asi dokážete představit. Ale pointou tohoto příběhu dvou programátorů není příšerná práce neinformatika, ale – naopak precizní práce informatika. Tady je totiž krásně vidět, že informatikovi naprosto vůbec nezáleží na tom, na jak rozsáhlém projektu pracuje, on je precizní vždy.

I když si jen píše v excelu vzoreček pro výpočet počtu sazenic na záhon, naprosto automaticky dokumentuje a testuje. A výpočet si dělí na dílčí kroky. A tak podobně. Prostě dělá vše, co je mu jakožto informatikovi vlastní.

A v tom je ten problém. Informatik je totiž takový detailista, puntičkář, chcete-li. Nedokáže se od toho odprostit. Ve všem musí mít dokonalý systém. A pokud ne, celé to zahodí a raděj to udělá celé znovu. Co naplat, že ztratí dva dny práce. Nedokázal by se smířit s tím, že vyprodukoval něco, co není podle jeho představ. Co se mu na 100% nelíbí. Co není ideální.

Tohle všechno stojí čas. To věčné zdokonalování, vylepšování, uhlazování. A vždycky se objeví nějaký další problém. Takže kus práce zahodit a zase znovu.

Zprvu je to skvělé, člověk má radost, jak se jeho dílo posouvá stále více a více kupředu. K dokonalosti. Ale časem začne sledovat, jak vždy, když má cíl na dosah, tak mu o kousek uskočí. A to začíná být frustrující. A únavné. A celé to skončí zpravidla tím, že to prostě vzdá a je nucen se spokojit s výsledkem, který rozhodně není dokonalý. Pořád je 1000x dokonalejší než to, co by vyplodil kdejaký neinformatik, ale – není to ono.

Takže zpravidla člověk, i když projekt zdárně dokončí, je totálně vyčerpán – jak fyzicky, po nekonečných dnech a nocích za počítačem, tak psychicky – žít s tím, že po tak usilovné práci a takovém množství času projekt stejně nedotáhl do konce. Ke kýžené dokonalosti.

Jedinou útěchou tak pro něj může být, když se zjeví problém. Neinformatikovo veledílo totiž v takovém případě havaruje a z neinformatika se stává hromádka neštěstí, zatímco informatik na to byl připraven a problém tak vyřeší velmi snadno. Toť teorie. V praxi se – bohužel – vždycky se objeví něco, s čím ani sebelepší informatik nepočítal a hromádka neštěstí se stává z něj. Podařilo se totiž najít (další) důkaz toho, že jeho dílo skutečně není dokonalé.

Takže zatímco neinformatikové si žijí ten svůj život smířeni s tím, že hold občas budou muset řešit nějaký ten problém, život informatika je jeden velký problém. A to je problém. Prokletí.

 

Koho by zajímalo, jak (nedokonale dokonale) vypadá jednoduchý překladač programovacího jazyka po dvou měsících informatické práce, mkrněte na github. Už je oficiálně odevzdán, takže jej, myslím, můžu veřejně uveřejnit.

 

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *