The Codest
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Odvětví
    • Fintech a bankovnictví
    • E-commerce
    • Adtech
    • Healthtech
    • Výroba
    • Logistika
    • Automobilový průmysl
    • IOT
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
Šipka zpět ZPĚT
2018-11-05
Vývoj softwaru

VÝUKOVÉ KOLEJNICE

Michal Begejowicz

Nejprve několik slov o samotném kurzu. Ještě před začátkem kurzu dostali naši studenti "předpracovní" úkol, který obsahoval instrukce a cvičení, jež měli před kurzem splnit. Jejich úkoly zahrnovaly instalaci Linuxu, seznámení se s terminálem a základy HTML, CSS a Git.

Výpočty

V následujících čtyřech měsících jsme se scházeli každé dva týdny a krok za krokem jsme objevovali Úžasný svět. Ruby et al. Kurz zahrnoval jazyk Ruby, Ruby on Rails, Javascript a některé oblíbené nástroje pro RoR aplikace jako Devise, Pundit, Sidekiq nebo Carriewave.

Každý student měl také svého mentora, který byl zodpovědný za motivaci studentů a kontrolu jejich práce mezi schůzkami.

Plán útoku

Jako učitel jsem přišel připraven s tříletou zkušeností s Ruby on Rails, 10 let zkušeností s programováním obecně a několik prezentací s otázkami a cvičeními k tomu.

Kromě krátkého kurzu správy Linuxu, který jsem absolvoval předtím, jsem neměl žádné zkušenosti s výukou. Co se týče studentů, věděl jsem jen, že jich bude deset a že pocházejí z velmi odlišných prostředí - pro některé z nich je to první setkání s programováním, zatímco jiní se před zápisem do kurzu snažili naučit C nebo Ruby sami.

Rozhodl jsem se dát si dvě předsevzetí - budu trpělivý a v případě potřeby vše vysvětlím (žádné "to už jsme probrali"). První předsevzetí obstálo ve zkoušce časem, ale to druhé - zcela zjevně - ne. Rozhodl jsem se, že se nebudu nijak zvlášť připravovat, pokud jde o věci, které budu učit - s Ruby/Rails pracuji každý den a cítím se ve svých dovednostech v této oblasti docela jistý. Maximálně jsem si přečetl prezentace, které jsem měl k dispozici.

Dva lidé před notebooky

Výzva

Jedna z prvních věcí, která mi byla hned po začátku kurzu naprosto jasná, byla, že nelze vysvětlit všechno. Je to velmi smutné zjištění pro někoho, jako jsem já, kdo se rád hloubá a objevuje, jak věci fungují, ale v omezeném čase jednoho setkání můžete naučit jen tolik, kolik si studenti zapamatují. Ukázalo se, že můžete být velmi slušným programátorem v Ruby, aniž byste přesně věděli, jak jsou vlastně pole reprezentována v paměti nebo jak přesně funguje Devise.

Výuka probíhala v sobotu a v neděli od 9 do 17 hodin. Je důležité si uvědomit, že výuka je dost vyčerpávající práce - kromě vysvětlování látky musíte být také vždy připraveni odpovídat na související (nebo i nesouvisející) otázky a řešit různé problémy, které vaši studenti mají.

Káva je váš přítel, ale nejdůležitější je výše zmíněná trpělivost. Pro lidi, kteří dosud nekódovali, je třeba se naučit pojmy, které jsou pro programátory samozřejmé - jako jsou cykly, typy nebo dokonce proměnné - a není to okamžitý proces. Pokud programujete už XX let, matematiku považujete za snadnou, dokážete vyjmenovat všechna známá programátorská paradigmata uprostřed noci, může být těžké vžít se do situace člověka, který si není úplně jistý, na kterou stranu znaménka rovnosti patří název proměnné. Je však nezbytné, abyste to udělali. Základní pojmy jako proměnné, cykly nebo pole se stávají tak přirozenými, že je těžké pochopit, jak je někdo může hned nepochopit, ale pro "nás programátory" jsou těžší, než se zdá.

Dalším problémem, zejména na začátku kurzu, bylo vysvětlit tyto pojmy tak, aby byly dobře pochopeny. Podle mého názoru není možné naučit se Rails bez toho, abyste se naučili Ruby - i když vím, že někteří by tvrdili, že to tak není. Je pravda, že Rails má své vlastní vzory a spoustu věcí si lze spíše zapamatovat, než se je naučit na začátku. Nicméně si myslím, že k tomu, aby se člověk stal svědomitým vývojářem RoR, je třeba mírné porozumění Ruby, OOP nebo SQL je nutností. Učit lidi programovat je něco úplně jiného než učit Rails - zatímco u Rails se dá očekávat, že spoustu věcí prostě přijmete nebo jim uvěříte (nikdo nemusí na začátku vědět, jak fungují zpětná volání - stačí, co umí), programátorské koncepty by měly být vysvětleny podrobněji.

Zapojení Síly

Jak se to dělá?

Trpělivě.

Asi to vypadá, že se stále opakuji, ale nemohu dostatečně zdůraznit, jak důležitá je trpělivost. I o mých nejmotivovanějších studentech bylo známo, že tu a tam udělají syntaktickou chybu - je to součást normálního procesu učení a učiteli nezbývá nic jiného než ukázat, v čem chyba spočívá a jak ji opravit. Časem se je naučí opravovat sami, ale to bude trvat mnohem déle než jednu nebo dvě chyby.

Další věc, kterou je třeba poznamenat, je, že Ruby není tak snadné, jak se zdá. Pokud jste se začali učit Ruby se znalostí C/Java/Python, pravděpodobně vám vše připadalo tak čisté, hezké a jednoduché. Zkuste se však nad tím zamyslet a všimnete si toho:

  1. Co je to za závorky? Mám je používat? Neměl bych?
  2. Co to je? vlastní věc? Někdy ji musím použít (např. attr_writer – self.variable = ...), někdy ne (attr_reader – proměnná) a někdy nemůžu! (private def some_method – self.some_method vyhodí chybu)
  3. Bloky. Vsadím se, že i někteří zkušení programátoři (různých jazyků) by potřebovali chvilku více, než se očekává, aby porozuměli #inject

Kromě prostého opravování chyb je tu také otázka skutečného předávání znalostí studentům. K tomu budete potřebovat velkou flexibilitu. Někteří studenti se spokojili s tím, že pole je pouze uspořádaný seznam prvků. Jiní potřebovali více vizuální analogie, jako je například police s očíslovanými místy, na které lze věci položit. Zjistil jsem, že stejné věci vysvětluji vícekrát různými způsoby - což je docela náročné cvičení!

Ale jak už jsem řekl, nemůžete vysvětlit všechno. Když jsem vysvětloval vztahy v Rails, bylo to spíše "takhle se to dělá a umožňuje to dělat to a to. Když chceš tohle, je to úžasné". Naštěstí se mě nikdo neptal, jak to funguje - nemyslím si, že juniorští vývojáři potřebují vědět o odrazech.

Situační umístění

Vzhledem k formátu našeho kurzu (setkání každý druhý víkend a dlouhé přestávky) jsme museli zajistit, aby období mezi těmito víkendy byla pro naše studenty produktivní - bez jejich cvičení v tomto čase by kurz vůbec nefungoval.

Někteří z mých spolupracovníků souhlasili, že budou mentory studentů v kurzu. Práce mentorů spočívala v ověřování cvičení, která byla zadána během víkendových setkání, a v pomoci s problémy, které se při jejich plnění vyskytly. Studenti s mentory komunikovali prostřednictvím služby Slack.

Byl jsem mentorem dvou svých studentů. Byla to výrazně odlišná forma výuky - a plná vlastních úskalí. Jednu věc jsem si uvědomil trochu pozdě: dobrý programátor musí být samostatný - měl by se alespoň pokusit vyřešit problémy sám, než požádá o pomoc. A být neustále k dispozici na Slacku mi nejen zabíralo spoustu času, ale také k takové samostatnosti příliš neinspirovalo.

Nechápejte mě špatně - spousta otázek, které jsem jako mentor dostával, byla správná a jejich zodpovězení znamenalo rozšíření znalostí studentů. Je však velmi snadné přejít do "učitelského módu" - a znovu vysvětlovat všechny otázky z víkendových setkání. Z dnešního pohledu si myslím, že role mentora spočívá v přehledu, dodání užitečných odkazů a položení několika otázek, které by mohly pomoci najít řešení. Občasné vysvětlování se může vyskytnout, ale nemělo by tvořit většinu.

Využití zpravodajských služeb

Každý student je jiný. Jedním z největších problémů bylo přizpůsobit tempo kurzu tak, aby co nejlépe vyhovovalo všem studentům. Vzhledem k rozdílnému zázemí a obecné úrovni snadnosti přijímání nových myšlenek mezi studenty je to téměř nemožný úkol.

Náš časový rámec byl 9 setkání - krát 2 dny krát 8 hodin. nás 144 hodin na to, abyste se dostali z 0 na Ruby-hrdinu. Za tuto dobu bylo nejdůležitější zvládnout celý sylabus - což si samo o sobě vynutilo docela rychlé tempo. První tři setkání byla celá o Ruby - pak jedno setkání pro SQL, pak RoR a mezi tím jedno setkání pro JS.

Jako učitel jsem vždy musel vědět, kdo více či méně rozumí části látky, kterou jsem přednášel. Někdy se stačilo zeptat, zda tomu rozumí, jindy jsem dělal malé testy. Například jsem všechny své studenty požádal, aby mi poslali své vlastní definice pojmů z rubínu, jako např. třída, vlastní, metoda, proměnná atd., na Slacku. Pokud by byl nějaký problém nejasný, vrátil bych se k němu a pokusil se ho znovu vysvětlit.

Iluze a realita

Abych to shrnul, učení bylo ještě obtížnější, než jsem si myslel. Může být také velmi obohacující. Nicméně je to tvrdá práce a její účinky nezávisí jen na učiteli - ještě důležitější je při učení vlastní úsilí žáka. Tím se výuka značně liší od programování, kde si obvykle můžete všechny úspěchy i neúspěchy přivlastnit. Je důležité si tento rozdíl uvědomit.

Nutí vás také přemýšlet o věcech, o kterých obvykle nepřemýšlíte - vysvětlování vám také umožní lépe jim porozumět. Výuka z vás tak může udělat lepšího programátora.

Související články

Ilustrace zdravotnické aplikace pro chytré telefony s ikonou srdce a rostoucím zdravotním grafem, označená logem The Codest, která představuje digitální zdraví a řešení HealthTech.
Vývoj softwaru

Softwarové vybavení pro zdravotnictví: a případy použití

Nástroje, na které se dnes zdravotnické organizace spoléhají, se v ničem nepodobají papírovým kartám z doby před desítkami let. zdravotnický software dnes podporuje zdravotnické systémy, péči o pacienty a moderní poskytování zdravotní péče v klinických a...

NEJKRÁSNĚJŠÍ
Abstraktní ilustrace klesajícího sloupcového grafu se stoupající šipkou a zlatou mincí symbolizující efektivitu nákladů nebo úspory. V levém horním rohu se zobrazuje logo The Codest se sloganem "In Code We Trust" na světle šedém pozadí.
Vývoj softwaru

Jak rozšířit tým vývojářů bez ztráty kvality produktu

Zvětšujete svůj vývojový tým? Zjistěte, jak růst, aniž byste museli obětovat kvalitu produktu. Tento průvodce se zabývá příznaky, že je čas na škálování, strukturou týmu, najímáním zaměstnanců, vedením a nástroji - a také tím, jak může The Codest...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

Vytváření webových aplikací odolných vůči budoucnosti: postřehy týmu odborníků The Codest

Zjistěte, jak společnost The Codest vyniká při vytváření škálovatelných, interaktivních webových aplikací pomocí nejmodernějších technologií, které poskytují bezproblémové uživatelské prostředí na všech platformách. Zjistěte, jak naše odborné znalosti podporují digitální transformaci a obchodní...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

10 nejlepších lotyšských společností zabývajících se vývojem softwaru

V našem nejnovějším článku se dozvíte o nejlepších lotyšských společnostech zabývajících se vývojem softwaru a jejich inovativních řešeních. Zjistěte, jak mohou tito technologičtí lídři pomoci pozvednout vaše podnikání.

thecodest
Podniková a škálovací řešení

Základy vývoje softwaru v jazyce Java: A Guide to Outsourcing Successfully

Prozkoumejte tuto základní příručku o úspěšném vývoji softwaru outsourcing Java, abyste zvýšili efektivitu, získali přístup k odborným znalostem a dosáhli úspěchu projektu s The Codest.

thecodest

Přihlaste se k odběru naší znalostní databáze a získejte aktuální informace o odborných znalostech z oblasti IT.

    O nás

    The Codest - Mezinárodní společnost zabývající se vývojem softwaru s technologickými centry v Polsku.

    Spojené království - ústředí

    • Kancelář 303B, 182-184 High Street North E6 2JA
      Londýn, Anglie

    Polsko - Místní technologická centra

    • Kancelářský park Fabryczna, Aleja
      Pokoju 18, 31-564 Krakov
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polsko

      The Codest

    • Home
    • O nás
    • Služby
    • Case Studies
    • Vědět jak
    • Kariéra
    • Slovník

      Služby

    • To Advisory
    • Vývoj softwaru
    • Vývoj backendu
    • Vývoj frontendů
    • Staff Augmentation
    • Vývojáři backendu
    • Cloudoví inženýři
    • Datoví inženýři
    • Další
    • Inženýři QA

      Zdroje

    • Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru
    • Z USA do Evropy: Proč se americké startupy rozhodly přesídlit do Evropy?
    • Srovnání technických vývojových center v zahraničí: Tech Offshore Evropa (Polsko), ASEAN (Filipíny), Eurasie (Turecko)
    • Jaké jsou hlavní výzvy CTO a CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2026 by The Codest. Všechna práva vyhrazena.

    cs_CZCzech
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech