Proč se neučit Python v roce 2021

Rozmohl se nám tady takový nešvar, a tím je sdílení videa Why You Shouldn’t Learn Python In 2021, které je takzvaně „k zamyšlení”. V komentářích pod videem sice už týpkovi všichni naložili, ale pořád mi to někdo posílá, tak mu chudákovi naložím ještě já tady.

Píšu to česky, protože je to pro české juniory, na českém trhu. Taky jsem to původně psal jako odpověď v junior.guru klubu, ale Discord mě zastavil limitem na počet písmenek ve zprávě, tak jsem se nakonec rozhodl to publikovat na blogu. Než budete číst dál, pusťte si to video, ať víte, o čem je řeč.

A jdeme na to. V Česku rozhodně lze najít práci s kombinací Python + Git + nějaký vlastní projekt. Firma vás ty další věci doučí. Cokoliv navíc (Django, SQL, Pandas…) zvyšuje šanci na uplatnění určitým směrem. A existuje i nemálo např. absolventek PyLadies, které uměly Python a nakonec šly dělat např. JavaScript. Přeučily se rychle, takže začít s Pythonem není překážkou pro následnou specializaci jinam.

On nikoho nezná, já znám desítky. On nevidí juniorní backend nabídky, já je vidím. Je možné, že v Česku ten trh prostě vypadá jinak než tam, kde je on (ať je to kdekoliv). Což není výmluva, ony ty trhy prostě fungují jinak, začátečníci nachází jiné úplatnění s jinými znalostmi v Německu, Česku, Slovensku, UK, USA, nebo na celosvětovém/remote trhu, kde zkouší své štěstí půlka Bangalore a na nabídku práce běžně chodí 4000 CVček, takže firmy si platí AI, aby jim na základě klíčových slov pomáhalo předvybrat aspoň 400 CV na ruční procházení.

Na kontraktorskou práci se pravda člověk v Česku uživí asi lépe s PHP/Symfony, PHP/Nette (v Česku), PHP/Laravel (na Slovensku a ve zbytku světa), PHP/WordPress, než s Pythonem. Ale myslím, že s Python/Django by to taky nebylo úplně ztracené, trh s weby postavenými na Djangu je určitě menší, ale je tu. Osobně ale v Česku považuji začátečníky kontraktory spíše za raritu. U většiny předpokládám, že se chtějí naučit základní minimum a jít se zaučit do nějaké firmy. V takovém případě nemá smysl koukat na Upwork, ale na StartupJobs a Profesia :)

S těma mobilníma appkama má pravdu. Pak mluví o JavaScriptu, kde ale neměří stejným metrem. Na jednu stranu říká, že samotný Python nestačí na contract job, ale na druhou vyjmenuje „naučíš se jenom HTML, CSS, JS a React - a je to!“ ;) Což je podle mě pro začátečníka docela nálož technologií. Mě teda přijde, že vidím spíš lidi, které vezmou pouze s Pythonem, než lidi, které vezmou pouze (opravdu pouze!) s JavaScriptem.

Jan Doležal mi po vydání článku připomenul ještě jednu věc (díky!), takže jsem dodatečně přidal tento odstavec. Výhodou Pythonu je, že umožňuje lidem automatizovat si věci i v současné práci, což dost oceňují vědci, novináři, finančníci, ale nejen ti. Člověk se naučí Python a zvládá dělat výpočty nebo zpracovávat Excely mnohem lépe. Jednou třeba z té práce odejde a bude se živit programováním, ale třeba taky ne a bude prostě dělat svou práci efektivněji, díky programování. Jestli tenhle efekt mají Swift, Kotlin nebo frontend, to teda opravdu nevím.

Neúprosný tlak týpka na to, aby cokoliv, co se naučím, mělo nějakou kariérní cestu, mi přijde přehnaný. Pokud jsem career switcher a snažím se co nejrychleji změnit obor, uplatnit se a vydělávat peníze, tak OK, ale pokud jsem student, proč to tak hrotit? Můžu experimentovat, hrát si, učit se Haskell, C, pochopit na tom spoustu konceptů, které mi pak pomohou i v tom JavaScriptu.

Jsem zastáncem toho, že není nutné začít s C, že to lidé opravdu mohou přeskočit, živit se úspěšně Pythonem a chybět jim to nebude, ale pokud někdo s C začne a bude vědět, co jsou pointery, tak přece super. Týpek ve videu propojuje znalosti s pracovními nabídkami tak tvrdě, jak ten páprda Hanák ze Svazu průmyslu a dopravy ČR, který si pořád stěžuje, že lidi studují humanitní obory, místo aby se učili to, co právě teď potřebují fabriky v Česku.

To, že se lidi dokola učí různé jazyky a nic s nimi nedělají, je ale pravda. Co teď doporučuju já:

  1. Pokud máš jasný cíl, tak vyber jazyk podle toho. Chceš dělat mobilní appky? Vyber si Swift nebo Kotlin a jeď. Chceš zkusit hry? Vezmi C# a Unity a zkoušej. Jdi nejkratší cestou k cíli.
  2. Pokud nevíš přesně, ale existuje něco, co by tě z nějakého důvodu bavilo tvořit, běž to tvořit. Dělají tvoji kámoši v PHP? Uč se PHP a předháněj se s nimi v tom, kdo co umí. Chceš si automatizovat dvířka do kurníku? Vezmi Arduino nebo RapsberryPi a nauč se to, co k tomu budeš potřebovat. Učení je nejefektivnější, když tě baví, takže pokud tě něco baví nebo tě v něčem podporuje tvoje okolí, využij to. Je jedno, v jakém jazyce to je, s každým mainstreamovým jazykem se dnes v pohodě uplatníš, nebo se pak snadno přeučíš. Nabyté znalosti se ti neztratí.
  3. Pokud nemáš vůbec představu, začni s Pythonem. Protože Python se dobře učí, je kolem něj super komunita, nabídky práce na něj existují a navíc je to druhá nejlepší, univerzální volba na všechno, hned po nějakém specializovaném jazyku. Až zjistíš, kam tě to víc táhne, naučíš se klidně další jazyk, ale teď už nerozmýšlej, vem Python a běž něco vytvořit.

Trojka je důležitá, protože zamezuje rozhodovací paralýze. Mnoho lidí vůbec neví, kam budou chtít směřovat, a Python je v takovém případě prostě nejlepší start. Jinak jsou lidé mnohdy schopni dokola přebírat a řešit, jestli teda Javu nebo C# a na tom se na dlouho zaseknou. Podobně jsem to teď popisoval i do podcastu .NET.CZ.

No a potom je důležité se nezaseknout jen na učení, na kurzech, knihách, atd., ale taky něco reálného vytvořit, nějaký praktický projekt. Někdo třeba už umí základy Pythonu, ale místo aby je aplikoval, prohloubil ty znalosti a vytvořil něco, čím by prakticky prokázal, že ty věci zvládá použít (což by mu následně pomohlo sehnat si první práci), tak se v tomto bodě zasekne a než aby vyhrnul rukávy a do něčeho se pustil, tak jde na další kurz a další knihu a další jazyk a pak má základy Pythonu, JavaScriptu, Javy, C# a PHP, ale v ničem z toho se nedostane za opisování z tutoriálů, co se týče praktického použití, takže ho nikam nevezmou.

Abych to shrnul:

  • Trhy se liší i mezi městy, natož mezi státy či světadíly (v Brně je díky Red Hatu větší poptávka po Pythonu a Linuxu, na Slovensku nefrčí Nette). I kdyby vše, co týpek ve videu říká, byla pravda, nemusí to být pravda použitelná v českém kontextu.
  • Kontraktorské práce u nás dělají spíš senioři. Vy si budete velmi pravděpodobně hledat entry level práci jako zaměstnanec v nějakém startupu nebo korporaci, kde se vlastně teprve vše doučíte. Na volnou nohu odejdete kdyžtak spíš až po letech. Python vám navíc umožňuje programovat ve své práci i bez změny práce a oboru.
  • Pro Python existuje hned několik career paths, minimálně v Česku určitě: webové aplikace, datová analýza, automatizace, sítě, DevOps, ops a Linux…
  • Porovnání s JavaScriptem je postavené na hlavu, protože tam si bez dalších 3 technologií ani neškrtnete, zatímco práci s čistým Pythonem sehnat lze.
  • Ne každý hned ví, jakým směrem se chce ubírat. Pro tyto lidi je Python skvělá volba.
  • Ne každá znalost je hodnotná pouze pokud na ni ve vyhledávání vypadne 300 pracovních nabídek.
  • Největší překážkou juniorů není to, že se učí Python, ale že dokola točí kurzy, místo aby začali tvořit něco, kde zkusí reálně použít nabyté znalosti a co můžou pak ukázat na pohovoru.

Týpek má vzdělávací agenturu, která ale Python neučí a lidi za ním asi pořád chodí s tím, že se Python učit chtějí. Tak místo toho, aby to učit začal, natočil video, kde dělá reklamu těm třem věcem, které učí, dělá tam reklamu i přímo té svojí agentuře a přes clickbaitový název nažene hromady shlédnutí. Polarizující reklama je taky reklama.

Tož asi tak. Clickbaitový titulek jsem okopíroval a taky si tady udělám reklamu. Pokud by vás bavilo si o takových věcech povídat nebo potřebujete poradit s tím, jakým směrem se jako začátečník vydat, pojďte za náma do klubu a vyřešíme to :)