Čo robí programátor?

September 2013

Občas sa mi stane, že sa ma niekto (najmä príslušníčky nežného pohlavia) spýtajú čo vlastne robím za tým počítačom, dlho som nevedel odpovedať a ukázanie Visual Studia nepomohlo. Preto som z dlhej chvíľky napísal nasledujúci text.

Programátor sa hrá s programátorským legom. Ale s takým, kde sa dá každá skladačka použiť neobmedzene veľakrát, no vždy to je iba tá jedna skladačka. Dokonca aj keď sa z niekoľkých skladačiek poskladá väčia časť, tak tiež sa dá použiť neobmedzene veľakrát.

A čo s ním robí?

Hrá sa na boha – vytvára vlastný svet s vlastnými objektami, vlastnými zákonmi interakcie medzi nimi (fyzikálne zákony). Dokonca tu neplatí ani obmedzenie počtu dimenzií, programátor si vie stvoriť aj vlastný druh matematiky, ak potrebuje.

Objekty tohto sveta môžu byt veľmi komplexné, môžu obsahovať iné objekty, takisto môžu obsahovať sami seba, dokonca niekoľkokrát. Každý objekt má svoj typ, často aj niekoľko. Príklad z reálneho sveta: objekt Jano je typu údržbár a súčasne je zamestnanec, je dospelý, je človek, manžel.

Tento svet však musí byť do istej miery kompatibilný s reálnym svetom, inak by sa vytvorený program nedal použiť. Najmä v informačných systémoch majú svoj obraz objekty reálneho sveta (hore spomenutý Jano). V tomto svete musia mať svoj obraz súvislosti medzi objektami a vecami z reálneho sveta, ktoré často nie sú na prvý pohľad viditeľné, či zrejmé. K tomu má počítač obmedzenú pamäť aj výkon a čas je drahý, preto programátor musí myslieť aj na takéto veci. Poznať ako pracuje počítač, poznať mnoho algoritmov a postupu, ktorými vyrieši problém alebo dosiahne svoj cieľ. Na toto sa používa nesmierne množstvo trikov, s dátami, ktoré používateľ zadá v jednej forme sa lepšie pracuje v inej forme, efektívne sa ukladajú v ďalšej forme a zobrazujú sa zas inak a programátor musí zabezpečiť ich transformáciu.

Nesmierne dôležitým a súčasne jedným s najťažších aspektom programovania je to aby vyprodukovaný program bol schopný prečítať aj iný programátor.

Pre toto všetko sú programátor i dobre platený, musia byť schopný v hlave udržať celý svet a vytvoriť si vlastný, poznať technológie, mať na vysokej úrovni logické a abstraktné myslenie a najme musia podrobne poznať a rozumieť reálnemu svetu, aby ten vlastný nakoniec spravili úplne inak :).

Pre bežných ľudí?

Takže, čo môže si môže bežný smrteľník odniesť zo znalosti programovania?

  • Schopnosť empatie - pri tejto práci si človek musí často predstaviť, že je niekto iný.
  • Logické myslenie a racionalita - počítače sú hlúpe stroje, ktoré vedia vykonávať program, vedia sa rozhodovať iba podľa logických pravidiel, ktoré do nič programátor zapísal. Dokonca aj nelogické a iracionálne správanie je im potrebné povedať ako postupnosť logických krokov.
  • Výstižné vyjadrovanie myšlienok - vychádza aj s predchádzajúceho, programátor musí veľmi presne formulovať, čo chce aby počítač spravil.