Zažeňte vánoční nudu. Naučte se programovat

  • Programování není těžké a zelenáči se toho zbytečně děsí
  • I domácí vývojář naprogramuje hotové divy
  • Naučit se základy je dnes velmi jednoduché

Když jsem před dvěma lety napsal článek Začněte skutečně využívat počítač: Programujte ho, ve kterém jsem se snažil nastínit, že PC není pouze prohlížeč Facebooku, lechtivých webových stránek a herní terminál, mnoho z vás si postěžovalo, že programovat neumí a ať připravíme nějaký kurz.

Pamětníci, kteří nás čtou delší dobu, si jistě pamatují na dobu před deseti lety, kdy na Živě.cz skutečně vycházel mnohadílný seriál o programování v PHP a o pár let později minisérie o vývoji v C# s praktickými příklady pomocí bezplatného Visual Studia, nicméně dnes máme rok 2015 a doba pokročila. Proč tedy znovu vynalézat kolo, když už tu dávno je a to snad tisíckrát – a s postupem času ve stále lepší kvalitě.

Na webu dnes najdete hromadu propracovaných webů, které naučí základy programování v populárních jazycích i naprosté zelenáče, kteří v životě nenapsali ani řádek Javascriptu nebo školního Pascalu.

A jelikož máme sváteční volno a mnozí z vás dovolené a prázdniny, dnes se podíváme na několik takových skvělých příkladů.

Proč vlastně programovat?

Než ale začneme, je třeba si ujasnit jeden základní předpoklad. Než se pokusíte naučit nějaký programovací jazyk čistě pro svoji domácí potřebu, musíte mít hlavně důvod. Tím může být třeba nějaký problém, rébus, který chcete pomocí počítače elegantně a rychle spočítat. Pokud budete umět programovat, dává vám taková znalost ohromnou výhodu před ostatními.

Mým důvodem byly před mnoha lety domácí úkoly z fyziky a matematiky a na vysoké škole pak mnohem komplikovanější výpočty ze statistiky a kartografie. Zatímco jedni strávili víkend počítáním všemožných loxodrom, ortodrom, transformací souřadnic a výpočty s nautickými trojúhelníky, já si napsal jednoduchý skript, který vše spočítal během sekundy a ještě vše nakreslil do grafu.

Později jsem chtěl vědět, jak se vyvíjí v čase počasí v Brně, a tak jsem si napsal program, který už deset let zaznamenává každou hodinu základní počasí na brněnském letišti Tuřany, plní obrovskou a volně přístupnou databázi a kreslí časovou osu pro aktuální měsíc.

310737288
Stačí základní znalost programování a pár desítek řádků v Javascriptu a dozvím se, jaké bylo počasí v libovolný den a hodinu v posledních deseti letech

Před čtyřmi lety jsem si nakonec položil otázku, jaké jsou asi v Česku sítě Wi-Fi, kde všechny ty domácí, podnikové i restaurační krabičky s anténkami jsou, jaké mají zabezpečení a tak dále. Napsal jsem tedy drobnou aplikaci pro Android, spustil server a s pomocí dobrovolníků jsme zaměřili více než dva miliony bezdrátových routerů – je velmi pravděpodobné, že i ten váš.

656108038
Chtěl jsem zmapovat co nejvíce Wi-Fi routerů v Česku. Po čtyřech letech jich mám v databázi více než dva miliony. Co je k tomu potřeba? Pár tisíc řádků kódu v Javě a PHP a několik tisíc dobrovolníků.

Když se mě lidé ptají, proč jsem to vlastně dělal a jaký to má celé byznysplán, odpovídám jim zcela po pravdě, že jsem byl prostě jen zvědavý a neudělal jsem nic jiného, než že jsem využil ohromného výkonu a schopností těch placatých počítačů, které nosíte po kapsách. A crowdsourcingu – komunity dobrovolníků, kteří to chtěli vědět také.

Programování není věda. Nepotřebujete IQ 140 a jedničky z matematiky

Současné vysokoúrovňové programování počítače, které je pro domácí amatérské kódování PC nejvhodnější, dnes není žádná věda. Nemusíte být skvělí v matematice – raději vám nebudu ukazovat svoje vlastní vysvědčení, nemusíte mít IQ 140 a nemusíte být ani student technické školy, protože programování není nic jiného než návrat ke kořenům; je to spíše surové (a často velmi efektivní) ovládání počítače. Ostatně všichni ti, kteří zažili éru osmibitových počítačů, si pamatují, jak ovládali počítač třeba skrze příkazový jazyk Basicu.

100900003
K domácímu programování nepotřebujete IQ 140 a jedničky z matematiky

A jak už jsem napsal v onom předloňském článku, pokud jste schopni domluvit se na dovolené alespoň trochu anglicky, není důvod, proč byste se nemohli naučit Javascript, Javu, C#, Python, PHP a další jazyky – jsou mnohem jednodušší než německá gramatika.

Není složité se naučit základy počítačových jazyků. Je složité vymyslet dokonalý algoritmus. Ale nebojte, i ten váš nedokonalý bude fungovat. Nemusíte být prostě spisovatel s Nobelovkou v kapse, abyste napsali slohovou práci. 

Kodu

Dost ale teorie a omáčky okolo, pojďme se konečně podívat, kde začít. Naprostý úvod do základní logiky každého programu vám podá třeba kdysi velmi populární a dnes možná trošku zapomenutý projekt Kodu od Microsoftu.

Pokud jste zažili jazyk Karel, který pomocí jednoduchých příkazů ovládal figurku na hracím poli, Kodu je mu velmi podobný, ale umí toho mnohem více a rovnou v akcelerovaném 3D prostoru. V podstatě se jedná o návrhové prostředí, pomocí kterého můžete vytvořit hru. Namísto psaní komplikovaného kódu některého z jazyků ale programujete pomocí zadávání elementárních příkazů, které vybíráte ze seznamu a vytváříte tedy jakési schéma; třeba: „když klepnu na šipku vlevo, herní charakter se posune o kus vlevo.“

268148131 842343310
Schéma programu v Kodu složené z příkazů – jeho kód a herní scéna

Kodu je kupodivu docela mocné a lze v něm za pár minut udělat funkční 3D střílečku, ve které budou vaši figurku nahánět nepřátelé a vy jejich likvidací budete sbírat body. Na Kodu se každý naučí používat stavební kámen každého algoritmu – rozhodovací podmínku IF, THEN. Když se něco stane, pak udělej toto, anebo tamto.

Code Studio

S Kodu zažijete hromadu zábavy, nicméně se nejedná o multiplatformní software. V poslední době se tedy mnohem více mluví o projektu Code.org, který podporují softwaroví velikáni v čele s Microsoftem a Googlem. Jeho součástí je webové Code Studio, které běží v prohlížeči a můžete v něm bez znalosti klasického programování napsat hromadu webových experimentů a her. Jejich galerie je k dispozici třeba zde.

267016701
Vlevo nahoře je grafické plátno, na kterém se vše odehrává (scéna s tučňákem a psem) a vpravo pak schéma programu složené z jednoduchých příkazů

Code Studio připomíná Karla, a jelikož je celý web Code.org přeložený i do češtiny (sic strojově a je to bohužel znát), příkazy můžete taktéž vybírat v češtině. Stejně jako v Kodu vytváříte vlastně jakési logické schéma, které může být i poměrně komplexní.

Code Academy

Kodu a Code Studio je především zábava a perfektní nástroj pro děti, pro nás o něco odrostlejší, kteří chceme ovládnout skutečný jazyk a  nějakým způsobem automatizovat třeba Windows, to ale nestačí.

Pak na řadu konečně nastupuje skutečné programování. V knihkupectví najdete hromadu knih, z nichž mnohé jsou dnes už bestsellery, ale jak už jsem napsal v úvodu, máme rok 2015 a interaktivní web, proč toho tedy nevyužít i pro samotné studium.

Krásným příkladem jsou třeba stránky Code Academy, kde se po registraci můžete hned a zdarma pustit do některého z rychlokurzů. Zkušenosti s programováním mít prakticky nemusíte – stačí znalost angličtiny.

Dejme tedy tomu, že si vyberete jako já třeba Python. Začnete od naprosté nuly, ale na rozdíl od nudné teorie a zdlouhavých úvodů hned začínáte psát a plníte přímo v prohlížeči úkoly = programujete a hned vidíte výsledek. Kurzy jsou zpravidla natolik precizně připravené, aby vám jasně vysvětlily, co a proč se právě děje.

990372775
Kurz Pythonu na Code Academy a kapitola věnovaná proměnným. Vlevo je vždy základní popis a instrukce úkolu, vpravo pak editor a v černém poli pak interpret, který spustí váš kód. Je to velmi názorné a i naprostý začátečník brzy pochopí, jak to vlastně celé funguje. Pokud se vám nebude dařit, každá kapitola má nápovědu.

Celý kurz je rozčleněný často i do desítek kapitol, jenže to máte jako se seriály. Jakmile splníte první kapitolu, pokračujete do druhé, pak třetí, čtvrté… A v jedenáct večer si zděšeně uvědomíte, že jste strávili u počítače celý den, ale světě div se, vy už ten Python trošku umíte!

Code Academy vás neustále motivuje, přiděluje různé odznáčky a skóre a vedle Pythonu nabízí prakticky vše základní, s čím se dnes na webu setkáte. Můžete to zkusit s Javasciptem a jeho populární knihovnou jQuery, kterou dnes používá snad každá druhá stránka na internetu včetně Živě.cz, pak je tu PHP, Ruby i klasické HTML a tvorba webových stránek.

Google Apps Script

Jakmile vám přestane být Javascript cizí, nastane čas na plnění vašich snů. K tomu slouží třeba Google Apps Script, což je Javascript rozšířený o další funkce a je součástí úložiště Google Drive. Pomocí Apps Scriptu můžete ovládat a psát makra třeba pro webový tabulkový procesor Googlu, ale také programovat různé úkoly, které se budou automaticky zpracovávat třeba každých pár minut na serverech Googlu. Takovou úlohou je i ono moje počasí, které hodinu co hodinu stahuje textový soubor ze serveru amerického meteorologického úřadu NOAA. Obsahem souboru ve formátu METAR je pak aktuální stav počasí v Brně.

97724560 108387623
Jednoduchý kód vpravo se spustí na serverech Googlu každý den, stáhne si z webu cnb.cz kurzovní lístek a uloží do tabulkového editoru aktuální cenu eura. Pro Google Apps Script primitivní úkol.

Google Apps Script má ještě jednu skvělou vlastnost – je zdarma. Nemusíte si zřizovat žádný hosting, platit webovou doménu a tak dále. O vše se stará Google.

Visual Studio Code

Pokud budete chtít začít psát programový kód na počítači, budete potřebovat nějaký slušný editor. Těch opravdu propracovaných je celý zástup – třeba Atom, Sublime, a jelikož jsme v Česku, nesmím zapomenout ani na zdejší a už tradiční (a opravdu letitý) PSPad. Tyto programy umí často doplňovat kód, takže stačí napsat třeba jen část příkazu, umí automatizovat zápis větších struktur a tak dále. Proto práci mnohem více usnadňují a zrychlují, než kdybyste vše psali třeba v prostém Poznámkovém bloku Windows.

973733003
Multiplatformní Visual Studio Code od Microsoftu

Letos se na scéně objevil další pokročilý (a přitom rychlý a jednoduchý) univerzální editor kódu –  Visual Studio Code od Microsoftu. Pochvalují si jej i mnozí vývojáři z cizích platforem, kteří jinak nemají Microsoft příliš v lásce, Code totiž skutečně působí, jako by jej měl na svědomí spíše nějaký startup. K dispozici je vedle Windows také pro Linux a jablečný OS X a je rozšiřitelný o podporu hromady jazyků. Přestože má v názvu Visual Studio, se svým obrovským příbuzným toho má pramálo společného. Je rychlý a malý.

Stackoverflow

Domácí vývojář, který neprogramuje každý den, samozřejmě nikdy nezná vše a hledá řešení na webu. Velmi dobrým pomocníkem je v tomto případě komunitní Stackoverflow, kde vám zkušenější vývojáři poradí. Jelikož jsou odpovědi z webu perfektně indexované v Googlu, často stačí zadat do vyhledávače třeba „Java download file“ a některý z výsledků vás zavede právě na Stackoverflow, kde již před vámi někdo hledal odpověď, jak v Javě skrze HTTP stáhnout třeba textový soubor. 

Tak a teď už víte skoro vše. Takže běžte rychle skriptovat, programovat, tvořit – prostě používat počítač na 100 %. Pokud to zvládnete, ocitnete se tak trochu jako Neo z Matrixu poprvé ve skutečném světě a pochopíte, co vše lze s počítačem opravdu dělat. Bude to jízda!

Diskuze (112) Další článek: Mobilním zařízením propadají už i předškoláci

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,