29. Čvc 2015 · Sebevzdělávání

Jak se NEučit programovat

V tomto článku vysvětluji, proč je lepší zúčastnit se řízeného výukového programu než se učit samostatně (ale jelikož jsem zvolil opačný přístup, nabízím vám seznam zdrojů, které byste měli použít, pokud zvolíte stejný směr).

Chtěl jsem se naučit programovat ze dvou důvodů:

  1. Věřím, že zaměstnanci by se měli aktivně podílet na projektech mimo svůj specializovaný obor, aby se:
    • Zničily hluché body a zjednodušila komunikace.
    • Zlepšila formulace cílů (vyhnout se situacím, kdy si obchoďák myslí, že vyvinutí specifické funkce bude trvat den, když to ve skutečnosti vyžaduje celý týden).
    • Rozšířilo (spolu)vlastnictví, tím pádem i zvýšila vnitřní motivace.
  2. Nejlepší způsob setkání se s potenciálními developery a spoluzakladateli je připojit se k jejich komunitě jako nezávislý hacker a pracovat s nimi bok po boku.

Abych našetřil co nejvíce peněz do neznámé budoucnosti, začal jsem se učit (podívejte se na seznam tutoriálů a recenzí níže). Ale čtení tutoriálů a sledování videí mi potvrdilo skutečnost, kterou jsem začal chápat již, když jsem usnul na první hodině svého potenciálního MBA programu – nejsem připraven k návratu do akademického prostředí. Věřím, že pokud se neučíte jen kvůli procesu učení, ale abyste něco ovládli co nejdříve (ASAP), existují dvě stádia:

  1. Stádium: Přemlouvat se každý den k činnostem, ve kterých jsme špatní, abychom se naučili úplné základy. Příklad: Jak vyvinout základní Ruby on Rails aplikaci zřízením poklidných cest s čistým MVC designem. Klíčová slova: bolestivé, pracné, grr.
  2. Stádium: Učit se postupně jednotlivé dovednosti v momentu, kdy je potřebuji. Příklad: Jak přidat specifické funkce, jako kontaktní formulář, do Ruby on Rails aplikace. Klíčová slova: zajímavé, motivující, produktivní, cool.

Stádiem 1 si neumím projít v izolaci. Jen tři dny jsem strávil sledování šestihodinového video podcastu (několik Youtube videí, pouštěných postupně). Věřím, že to co jsem se naučil ve 3 měsících, bych zvládl během tří týdnů. Potřebuji energii ostatních studentů, formalitu v podobě domácích úkolů a konstantní přítomnost vyučujícího nebo mentora „za svými zády“. A proto si myslím, že jsem měl utratit „velké prachy“ za účast v řízeném výukovém programu.

Ale nyní, když náklady na pokračování ve výuce dramaticky vrostly, už je trochu pozdě. Jako výsledek, i když jsem se to nakonec „naučil,“ jsem strávil 50 % svého času na StackOverflow (internetová stránka pro otázky a odpovědi ohledně programování), kde jsem se cítil jako mládě želvy snažící se dostat do vody předtím, než mu sluneční paprsky přinesou smrt. Cesta „udělej si sám“ (DoItYourself route) mě uvěznila do pod-juniorské-developerské pozice, kde je nezbytně nutné najít spolu zakladatele, nebo outsourcovat, aby člověk vytvořil plně funkční aplikaci.

To samozřejmě není narážka na kvalitu sebevzdělávacích tutoriálů, pouze komentář k mým vlastním učebním preferencím a poznatkům. Těm z vás, kteří zvládají projít 1. stádiem osamoceně, salutuji a doufám, že moje doporučení níže vám pomohou.

Poznámka: Musel jsem projít několika tutoriály, takže níže najdete jakž takž seřazený seznam (ale pouze jakž takž – reálně jsem si potřeboval sestavit tabulku užitečnost vs. jednoduchost).

  1. Naučte se Ruby on Rails od Daniela Kehoe

Tento tutoriál je krátký, jednoduchý a k věci. Zatímco poskytuje celkově dobré vyvážení konceptuální „Jak to funguje“ části s praktickou aplikací, osobně bych uvítal vyšší propojenost – v současné koncepci tutoriálu psaní aplikace začíná až v kapitole 9. Jako velké pozitivum oproti většině ostatních tutoriálů hodnotím hloubkové vysvětlení klíčových komponentů programování aplikací, například jak funguje Git, Zurb Foundation, Gems nebo RVM, které tato kniha nabízí.

  1. Ruby on Rails tutoriál od Michaela Hartla

De facto standart vše Rubyistů. Jediný důvod, proč tento tutoriál neuvádím na prvním místě je, že se Hartl pouští příliš brzo do programování, aniž by dostatečně poukázal na některé klíčové koncepty. To způsobuje studentům frustraci, když některé konfigurační elementy nefungují a oni neví, jak pokračovat. Na rozdíl od jakéhokoli jiného tutoriálu Hartl velmi zdůrazňuje rozvoj poháněný testy/ rozvoj poháněný chováním, což je jedna z nejlepších částí knihy (ano, přehání to, ale jen proto, abyste se opravdu dozvěděli, jak na to). Pokud je pro vás tento tutoriál příliš obtížný, přeskočte na č. 6 a č. 7 a ke zbylým se vraťte později.

  1. Naučte se programovat, 2. edice od Chrise Pine

Tento tutoriál je skvělý, vysvětlení jsou velmi zjednodušená a jasná u většiny témat. U pokročilejší látky jsou vysvětlení poněkud ošidnější a cítil jsem potřebu k vylepšení, ale celkově jde o skvělou knihu.

  1. UT Austin kurz jazyka Rails od Richarda Schneemana

Kurz nabízí několik úžasných vizuálních diagramů a efektů, které rozebírají koncept a mění látku na lépe uchopitelnou. Nicméně (a sám Schneeman to potvrdil), protože je tutoriál zkrácen/ upraven z univerzitních kurzů, občas je problematika podávána příliš rychle, s málo nebo žádnými základy a domácí úkoly tak mohou být opravdovou výzvou.

  1. Ruby Kickstart videocast

Výukové hodiny se v porovnání s domácími úkoly zdály příliš jednoduché. Ocenil bych více řešení vysvětlených krok po kroku v přednáškách, kde se vysvětluje přístup k jednotlivým problémům, aby domácí zadání mohla být skutečně vyřešena. Také by mohlo být obecně prospěšné mít jeden zastřešující problém, který by se studenti vždy snažili vyřešit, a při každé hodině představit jedno nové „elegantní“ řešení tohoto problému.

  1. Rails pro Zombie

Líbí se mi, jak se v prezentacích vytvářejí animace kódu a fyzicky se přesouvají po obrazovce, takže uživatel jasně vidí, jak daný kód navazuje na další kód nebo výstup. Nicméně se tyto přednášky zdají být zaměřené spíše na základní seznámení s jazykem Ruby on Rails; pokročilejší koncepty jsou vysvětleny méně důkladně a nejasně. Navíc cvičení jsou daleko jednodušší, než problémy řešené v hodinách, což je velká škoda, neboť zkoušením se učíme. Lidé, kteří se učí programovací jazyk Ruby on Rails potřebují cvičení na vytváření komplexních přesměrování a číselníků, ale v tomto tutoriálu se v jedné kapitole naučí pouze jak vytvořit zdrojovou linku. Existuje zde velký nepoměr mezi lekcemi, které představují zdlouhavý kód a „výzvami“ v podobě domácích zadání, které vyžadují napsání dvou řádků. Pokud procházíte tímto tutoriálem po č. 1-5, bude vám Rails for Zombies pravděpodobně připadat super jednoduché a můžete zkoušet předpovídat odpovědi.

  1. Codecademy – Ruby

Vysvětlení programovacího jazyka je zde velmi jasné, ale tutoriál je opět zaměřený spíše na základní seznámení s jazykem. Cvičení jsou znova daleko jednodušší než výukové hodiny, neměly by zde být případy, kdy přednášky obsahují obrovské bloky kódů a cvičení sestávají z pár řádků. Připadalo mi, že se ve cvičeních opakují pouze základní koncepty a ne ty pokročilejší (ano dokonce i v pokročilejších lekcích). Také, abychom si to ujasnili, zvládnutí jazyku Ruby neznamená, že budete schopní napsat webovou aplikaci (na to potřebujete rámec Rails). Pokud procházíte tímto tutoriálem po č. 1-5, bude to pro vás pravděpodobně super jednoduché a můžete zkoušet předpovídat odpovědi.

Tento článek byl původně publikován na mém Medium blogu a byl napsán v kontextu vytváření služby, která pronajímá outdoorové příslušenství pro kempování, turistiku, zimní sporty, atd. Last Minute Gear (www.lastmingear.com) pronajímá a dodává vybavení až do 1 hodiny před odjezdem!

Napsal James Dong. Z anglického originálu How NOT to Teach Yourself to Code přeložil Jan Rážek.

Share Button

Články