Hlavní navigace

Senzory Martina Malého: Jak se může lékař začít učit programovat

Autor: Depositphotos
Martin Malý

Dnes je velice snadné začít programovat, protože jsou celé hory návodů a jazyků. Ale je velmi těžké začít programovat, protože vás k tomu vlastně nic nenutí.

Občas se mě čtenáři ptají, jak to či ono myslím, popřípadě jestli bych jim s tím či oním neporadil. Většinou vyhovím a odpovím, ale často se stává, že je to otázka natolik zajímavá, že si říkám, že by se hodilo odpověď rozvést veřejně, ať je k užitku i ostatním. A přesně to hodlám udělat v tomto sloupku.

Před časem jsem napsal lehce provokativní článek Proč by se holky měly naučit kódovat. Třeba vám to kontroverzní nepřipadne, každopádně na sesterském webu Root.cz u tohoto tématu byla diskuse na několik set příspěvků. Čtenářské diskuse ale málokdy přinesou něco zajímavého, to spíš přímé vzkazy. Třeba na margo výše odkázaného článku mi napsal student lékařské fakulty dotaz: Dobrý den, zaujal mě Váš článek o tom, proč bychom se měli naučit programovat. Nemám moc času, ale zkusím to. Máte nějaké tipy s jakým programem začít, nebo obecně, jak se naučit programovat? Děkuji mnohokrát za odpověď a hezký den!

Otázku „proč by se měl lékař zabývat programováním“ jsem probral v tom článku. Teď bych se rád věnoval otázce, co tedy má dotyčný zkusit, aby to pro něj bylo zajímavé a potenciálně užitečné. Je mi jasné, že deset programátorů k této otázce zaujme dvanáct různých stanovisek, ale přesto si dovolím navrhnout docela obecné řešení…

Dneska je velice snadné začít programovat, protože jsou celé hory tutoriálů, návodů a jazyků. Na druhou stranu je velmi těžké začít programovat, protože vás k tomu vlastně nic nenutí. Můžete celý život používat počítač, aniž byste se naučili byť jen PRINT „HELLO WORLD“. Takže začít programovat vyžaduje nějakou motivaci. A ta motivace musí být silnější než složitost zvoleného jazyka. Pokud strávíte celý den tím, že se budete učit teorii, aniž by počítač cokoli udělal, tak motivace pravděpodobně vyprchá a vy se místo programování začnete věnovat třeba kávovému snobismu, kde po jednom dni studia máte jasně viditelné výsledky, můžete poučovat o arabice a latéčku a připadat si výjimečně. Otázka tedy je: Jaký zvolit jazyk a jaký kurz, aby byla učící křivka příznivá – za deset minut Hello world, za dalších deset sčítání a odčítání, za hodinu nějaké zpracování textů, a večer už stahuje a zpracovává data. Nemusí znát podrobnosti – ty se doučí zítra, pozítří a pak ještě celý život.

V otázce prvního jazyka mají někteří „od fochu“ zcela jasno: Musí to být C++, Java, Pascal, Ada, Eiffel, Smalltalk, C, popřípadě Perl. Jenže třeba takový Pascal je vhodný pro člověka, který pak půjde studovat programování na VŠ, ale nemyslím si, že je to vhodný jazyk pro člověka, co se chce naučit programovat jen tak. Ano, Pascal vám dá dobré základy všeho, z čeho vychází moderní programovací techniky, až někam k OOP. Ale student medicíny, který by si rád k anatomii, fyziologii a biochemii přidal programování, podle mého nepotřebuje toto. On totiž nebude psát sofistikované systémy, spíš bude, promiňte mi to slovo, lehce skriptovat. Což není nic špatného. Když situaci otočím, asi není zapotřebí, aby kdejaký programátor uměl udělat laparoskopickou operaci apendixu, ale měl by umět zavázat prst, rozpoznat, kdy si dát živočišné uhlí a kdy aspirin, měl by poznat nějaké základní příznaky chorob a umět dát první pomoc.

Pokud máme jasno v tom, co vlastně od takové výuky čekáme, pojďme najít vhodný jazyk. Dovolím si tvrdit, že to nemá být Java ani C/C++/C# (nevhodná učící křivka). Neměl by to být ani nějaký minoritní jazyk, tam nenajdete zase pomoc, když se zaseknete. Měl by to být jazyk rozšířený, s jednoduchou syntaxí, a přitom dostatečně mocný. Když jsem takhle šel a postupně zužoval výběr, došel jsem nakonec k Pythonu. Python je dostatečně jednoduchý, dostatečně mainstreamový (ne, že by nebylo hezké učit se Haskell, že?), s širokými možnostmi použití, a hlavně má příznivou učící křivku a dostatek výukových materiálů. A to říkám, ačkoli paradoxně znám tak maximálně základy tohoto jazyka a nikdy jsem v něm nepsal. Jen jsem se ho mnohokrát začal učit.

Takže jestli mohu poradit, tak Python. Obšírnější argumentaci najdete třeba v článku První jazyk: Python. Další otázka je, kde a jak se to naučit. Možností je spousta:

Pro ty, co vládnou angličtinou, jsou tu i další kurzy:

  • https://www.codecademy.com/learn/python
  • CS101 na Udacity
  • Spousta kurzů na edX – od základů Pythonu po praktické kurzy typu „datová analýza pomocí Pythonu“. Třeba právě pro studenty přírodovědných oborů by mohla být užitečná znalost kvantitativní biologie
  • I Coursera nabízí desítky kurzů s Pythonem, od naprostých začátečníků po speciální použití, jako je analýza genomu, zkoumání statistických dat ze sociálních sítí nebo tvoření hardware s Raspberry Pi

Ostatně, až budete Python umět, můžete se rovnou přehodit na MicroPython, což je jazyk, který se používá v IoT k programování některých malých modulů, od ESP8266 po desky se STM32.

Pokud se chcete do toho pustit a začnete se učit, tak vám přeju hodně zdaru a hlavně to, ať vás nic a nikdo neodradí! Každý někdy a nějak začínal a žádná začátečnická otázka není hloupá! Hloupá je jen namyšlená odpověď na ni!

Našli jste v článku chybu?