Programování, aneb umění nad úkolem (nejen) přemýšlet

Programování není pouze o znalosti programovacího jazyka, ale také o schopnosti zjednodušit příkazy pro počítač takovým způsobem, aby s nimi byl schopen správně pracovat. Programátor tedy funguje jako překladatel mezi běžnými uživateli technologií a světem jedniček a nul. Bohužel se tím nemyslí bleskové psaní kódu všemi deseti a prolomení kybernetického zabezpečení během 15 sekund, jak by se mohlo zdát po zhlédnutí řady dnešních filmů. Vytváření kódu se v reálném světě často zasekne právě na jazykové bariéře člověka a stroje. 

Úspěšnému napsání programu předchází vymyšlení pseudokódu v podobě tzv. „algoritmu“. Slovo algoritmus máme v dnešní době spojené hlavně se světem programování, víte však, že se s algoritmy setkáváme i jinde? Dle samotné definice je totiž algoritmus postup o konečném počtu kroků, kterým můžeme vyřešit nějaký problém, či úlohu. Mezi algoritmy tak patří ku příkladu i recept na míchaná vajíčka nebo návod na sestavení skříně. Ve světě IT používáme algoritmus jako nástroj, jímž lze popsat teoretický princip řešení problému – je tedy prototypem pro napsání kódu. Pro vytvoření funkčního algoritmu si musí programátor nejprve rozmyslet, co přesně má program umět. S jakými vstupy pracuje? Jak s nimi pracuje? Co je výstupem? 

Můžeme si to jednoduše představit právě na vaření míchaných vajíček. S jakými vstupy pracujeme? Budeme potřebovat alespoň ty nejzákladnější ingredience jako jsou vajíčka, sůl a pepř. A abychom je měli kde uvařit, tak si připravíme také pánev a vařečku. Jak s nimi pracujeme? Rozehřejeme pánev, rozklepneme do ní vajíčka, osolíme, opepříme, mícháme vařečkou. Co je výstupem? Naše perfektní míchaná vajíčka. 

Co by se však stalo, kdybychom některé klíčové kroky prohodili, nebo dokonce vynechali? Měli bychom špatný recept, který by v tomto konkrétním případě mohl vést až ke katastrofálním dopadům pro nás a naši kuchyň. Stejné je to s programováním. Jestliže zvolíme chybný algoritmus, výsledkem nebude správně fungující program, ale chybové hlášení počítače. Avšak pokud je náš algoritmus funkční, můžeme program rozvíjet a dotvářet k dokonalosti. Ostatně to je například u aplikací běžné v podobě aktualizací, jejichž cílem je opravit chyby a nabídnout uživateli nové a lepší funkce. 

I špatný algoritmus je algoritmus. Různá řešení problému nás mohou dovést ke stejnému cíli, ne vždy se však jedná o ideální řešení. Představte si, že byste míchaná vajíčka dělali tak, že si každých 10 sekund zatočíte vařečkou nad hlavou. Výsledkem budou dobrá míchaná vajíčka, ale navíc Vás bude bolet ruka a kuchyň zašpiníte více, než by bylo nutné. Chybami se člověk učí a opakovaným vařením můžete recept dotáhnout k dokonalosti. 

Programování funguje podobně a ke zvládnutí základů není zapotřebí žádných speciálních znalostí. Pro úplné začátečníky byl vyvinut ve Spojených státech amerických již v 80. let 20. století programovací jazyk Karel, pojmenovaný na počest Karla Čapka. Programovací jazyk znal pouze jednoduché příkazy, skrze které jste mohli ovládat robota. Ze základních pěti příkazů (pohyb vpřed, otočení vlevo, zvedání předmětu, pokládání předmětu a vypnutí robota) bylo možné vytvářet příkazy složitější – například pro otočení vpravo muselo být použito 3x příkazu otočení vlevo. Karel tak napomáhal rozvíjet logické myšlení a učil porozumění principu jednoduchých algoritmů, jejichž správnost bylo možné ihned vyzkoušet na pohybech robota. 

V dnešní době si můžeme programování za pomoci jednoduchých předpřipravených příkazů vyzkoušet také sami z pohodlí našich domovů. Lze k tomu využít například vizuálního programovacího jazyku Scratch. Na rozdíl od běžných programovacích jazyků se příkazy v jazyce Scratch promítají v grafické podobě, nikoli v textové. Stejně jako u robota je tak funkčnost algoritmu ihned zřejmá. Pro odvážnější je k dispozici rozšířenější verze jazyka pod názvem Snap!. Oba programovací jazyky pracují s uživatelsky přívětivým prostředím a jsou dostupné i v českém jazyce. 

Vymyšlením funkčního algoritmu práce programátora nekončí. Ačkoli se počítače zdají jako velmi inteligentní a složité stroje, komunikace s nimi probíhá na základní úrovni vcelku jednoduchými příkazy. Námi připravený pseudokód je tak zapotřebí ještě zjednodušit na přesně definované úkony, se kterými si počítač zvládne poradit. V naší analogii s vařením míchaných vajíček by tak příkaz připravte si vařečku nebyl dostačující. Počítač by potřeboval slyšet z jakého materiálu, jakého tvaru a jak velkou vařečku na vajíčka potřebuje. Naštěstí pro nás s vařečkou sám od sebe točit nad hlavou nezačne, pokud mu to výslovně nepřikážeme. Odměnou za správně použité příkazy nám pak je samotný fungující program. 

Programování již dávno není dovedností vyhrazenou pro svět matematiků a informatiků. S trochou cviku si může každý naprogramovat své „Hello, World!“, či jednoduchou kalkulačku. Ve světě internetu lze velmi rychle nalézt návody a postupy, předpřipravené kostry programů a další nástroje zjednodušující programování, avšak nalezení efektivního řešení problému nadále zůstává znakem dobrých programátorů.  

Podobné články

Líbil se vám článek?
Sdílejte ho na sociálních sítích

Autor článku:

Martin Dušek

Martin Dušek

Marketingový ředitel
Datum zveřejnění: 11.10.2023