Co mají lidé skutečně na mysli, když říkají „Chci se naučit programovat“

Ohledně učení se programování je třeba vědět dvě důležité věci:

  1. Většina lidí ve skutečnosti nechce „naučit se kódovat“
  2. Naučit se kódovat už neznamená jednu věc

Je důležité vědět tyto dvě věci, protože jinak je způsob, jakým lidi učíme kódovat, špatný a lidé se to nenaučí.

První bod vidím stále dokola. Lidé, kteří mi řeknou, že se budou učit kódovat, pak se začnou učit a myslí si, že je to pekelně nudné.“

Říkám tomu kódovací omyl. Lidé si myslí, že se chtějí naučit programovat, ale ve skutečnosti chtějí vytvořit produkt.

Když se nad tím zamyslíme, mělo by to být celkem zřejmé. Znalost kódu sama o sobě není cenná, pokud s ní nedokážete nic udělat. Pro většinu lidí je tedy největší motivací k tomu, aby se naučili programovat, něco vytvořit (i když těsně na druhém místě je získání lépe placené práce).

Tím se dostávám k bodu číslo dvě. Naučit se programovat už neznamená totéž.

Dříve platilo, že abyste mohli programovat, museli jste o počítačích vědět téměř vše (odtud termín „informatika“). Pak se věci abstrahovaly do té míry, že jste se do určitých témat nemuseli nořit, pokud jste to opravdu nepotřebovali. Například jako vývojář webových aplikací v tuto chvíli potřebuji vědět jen velmi málo o správě systému, protože to za mě většinou dělají nástroje jako Heroku a Amazon Web Services.

Když tedy lidé řeknou, že se chtějí naučit programovat, většina učitelů začne tam, kde předpokládají (kde vždycky začínali), tedy u datových typů, různých struktur jazyka, a pomáhají studentům rozvíjet hlubší porozumění počítačům.

Problém je, že to není to, co lidé chtějí. Chtějí něco postavit. A my bychom už neměli považovat za samozřejmé, že abyste mohli něco postavit, musíte se naučit všechno o počítačích nebo dokonce o kódování obecně.

Příklad pokud už někdo pracuje se skvělým vývojářem back-endu, mělo by smysl ho naučit jen front-end, protože to pro něj bude nejužitečnější. Ve skutečnosti budou mít rychleji hotovo to, co chtějí, a back-end se budou moci naučit později. Tím snížíme kognitivní zátěž studenta a umožníme mu učit se rychleji.

Při vývoji pro web se musíte konkrétně zabývat:

  • HTML
  • CSS
  • JavaScriptem
  • Back-end programováním
  • Databázemi
  • Hostingem/DNS

Je toho hodně, co se zde musíte naučit. A většina z toho je pro vývoj jiných než webových aplikací dost irelevantní (samozřejmě kromě databází a struktury aplikací).

Já to vidím tak, že většina vzdělávání v oblasti kódování zahrnuje návnadu. Probíhá to takto:

Student: „Chci se naučit programovat“. (Ale ve skutečnosti – ale neví dost na to, aby se zeptal – chce vytvořit webovou nebo mobilní aplikaci.)

Učitel: „Dobře, začneme s datovými typy.“

Student: „Nevím, jak to udělat:

(o 2 týdny později)

Učitel: „Teď můžeme navrhnout efektivní algoritmy.“

Student: „Teď můžeme navrhnout efektivní algoritmy.“

Student: „Teď můžeme navrhnout efektivní algoritmy: „

Jako učitelé si musíme uvědomit, že když lidé říkají, že se chtějí naučit kódovat, často tím ve skutečnosti myslí, že chtějí vytvořit webovou nebo mobilní aplikaci.

To proto, že pro ně právě to kódování JE. Je to vše, s čím se kdy o kódování setkali. Problém je v tom, že nevědí, jak si o to říct! Takže bychom neměli brát za bernou minci všechno, co řeknou. Naším úkolem jako pedagogů je číst mezi řádky.“

Pamatuji si, jak jsem před několika lety sledoval divadelní hru, ve které kněz říká, že je třeba říkat pravdu i za obtížných okolností. Osoba, ke které mluví, se ptá: „Ale co když se vás někdo na něco zeptá a vy víte, že pravda mu ublíží?“. Kněz odpoví: „

Také ve výchově je třeba číst mezi řádky, abyste zjistili, co lidé skutečně chtějí. Pokud se ptají na nějakou konkrétní věc, musíte člověka nasměrovat k tomu, co ho dovede k jeho ideálnímu vzdělávacímu zážitku.

Je tedy na nás jako na vzdělavatelích a odbornících, abychom lidi vedli správným směrem a nenechali je jen tak tápat. Pokud to dokážeme, umožníme mnohem více lidem dělat úžasné věci.

Jako student: učte se to, co se chcete naučit.

Jednou z nejlepších věcí, kterou můžete při svých vlastních vzdělávacích dobrodružstvích udělat, je naučit se něco málo o mnoha věcech – abyste věděli, do čeho se chcete později ponořit hlouběji.

Když v One Month říkáme, že se můžete „naučit kódovat za 30 dní“, myslíme tím, že se za pouhých 30 dní naučíte HTML (JavaScript nebo Python) natolik, abyste se v kódu dokázali orientovat a byli si dostatečně jistí, abyste obstáli na trhu práce.

Jak dlouho trvá naučit se kódovat?

Jmenujeme se „One Month“, znamená to tedy, že po 30 dnech kódování naši studenti s učením končí? Vůbec ne! Kódování se věnuji už více než 15 let a stále je spousta věcí, které neumím – ale o to nejde. „Naučit se kódovat“ neznamená znát každou věc v jazyce, ale umět dost na to, abyste mohli konverzovat a zanechat ve světě stopu pomocí své mysli a svých tvůrčích schopností.