Marek Ostrihoň
07.09.2021

Úvod

V první řadě nutno podotknout to známé klišé, že proces zaučování je u nás přirozeně individuální záležitost. Každý náš nový kolega má jinou startovací pozici. Pokud je někdo juniorní backendista (třeba jako Kuba), budou jeho první krůčky u nás vypadat jinak než u člověka, který se přihlásil na frontend seniora s tím, že rovnou povede náš React team. Jistěže máme nějakou základní kostru, která je pro všechny stejná. Jedná se o věci typu založení Google a GitLab účtu, vysvětlení jak organizujeme práci v YouTracku a podobně. Ovšem toto jsou obecné technikálie a o tom tento článek nebude. Článek bude o tom, jak se právě Kuba stal součástí mého projektového Python týmu.

Jak to celé začalo

Na začátek se přesuneme zhruba do půlky roku 2020. Byl jsem v situaci, kdy jsem měl na starost projekt našeho švýcarského klienta, který jsem zastřešoval tzv. od A do Z, a začínal jsem se poohlížet po tom, jakým směrem bych se mohl profilovat dál. Na svém čtvrtletním feedbacku jsem vyjádřil zájem o zaučování nových lidí a předávání zkušeností dalším kolegům. Možná, že to byla shoda náhod, nicméně brzy se ozval Kuba.

Proces učení

Proces učení s Kubou začal vysvětlením základní syntaxe Pythonu a prvních best practice přístupů. V programování se dá totiž spousta věcí napsat různými způsoby, ale některé jsou dlouhodobě udržitelnější. Kuba začal s jednoduchými konzolovými programy. Příkladem za všechny nechť je evergreen programovacích tutoriálů hra “kámen-nůžky-papír” či skriptíky na čtení a zápis do souborů.

V dalším kroku jsme si vysvětlili rozdíl mezi desktopovou aplikací, webovou aplikací a webovou stránkou. Spousta lidí si bohužel tento rozdíl neuvědomuje. Webová aplikace je plnohodnotný software, stejně jako ten, který jste si kupovali na CDčku a instalovali do počítače, jenom s tím rozdílem, že zde k němu přistupujete přes webový prohlížeč a odpadají problémy a nepohodlí s instalací, správou a přenosem dat. K tomu bylo potřeba Kubovi vysvětlit, jak funguje komunikace po internetu, přes HTTP protokol a základy REST API.

Nyní byl čas na to udělat odbočku do databází. Probrali jsme základy jazyka SQL a strukturu relačních databází, ovšem nebylo potřeba jít tolik do hloubky, jelikož díky již existujícím frameworkům a knihovnám budeme umět přistupovat do databáze pomocí Python kódu a s principy OOP.

V tomto stádiu již bylo možné začít psát reálné webové aplikace, ale s Kubou jsme neskočili přímo k používání nějakého složitého frameworku (v našem případě je nejoblíbenější Django). Začali jsme si osvojovat základy MVC architektury tím způsobem, že jsme si všechny třídy napsali od píky sami. Leckomu se to může zdát zdlouhavé, ale já prosazuji přístup, že tímto způsobem si nový programátor vytvoří opravdu pevné základy a nestává se pouze uživatelem několika tříd, u kterých nevidí, co se jim děje „ve střevech“.

Vypadalo to například tak, že jsme si nejdříve napsali dispatcher a vlastní třídu, která nabízela metody obsluhující přijaté requesty podle jejich typu (GET, POST). V dalším kroku jsme si z této třídy podědili a implementovali logiku, která byla schopna podle URI rozeznat, o jakou databázovou tabulku se jedná, a vypsat seznam jejích záznamů. Podobným způsobem jsme napsali metodu, která dokázala vytvořit nový záznam v databázi. Kdo zná Django, tak nejspíš poznal, že jsme společně znovu vynalezli třídu View, resp. ListView a CreateView, avšak takovým způsobem, že si Kuba zároveň mohl osahat způsob programátorského přemýšlení v praxi. Snad i díky tomu si bude vážit času a práce ostatních programátorů, kteří pro komunitu píší a spravují různé knihovny a frameworky, které nám všem usnadňují práci.

Takto se Kuba rychle naučil programovat takovým způsobem, že se po několika týdnech mohl naplno zapojit do reálného procesu vývoje softwaru. Věříme, že tohle je správná cesta, a že programátorem se člověk nerodí, ale stává.

Závěrem

Kuba již nějaké zkušenosti s programováním měl. Napsal si vlastní systém na evidenci inventářů a výpůjček pro divadlo. Jako základ to bylo výborné. V Eluvii totiž věříme (a nejsme jediní), že předpokladem k tomu, aby se člověk mohl stát programátorem, nejsou v první řadě znalosti programovacího jazyka či obecně programování jako takové. Spíše věříme, že je to výdrž při řešení problému, tedy nenechat se odradit prvotním neúspěchem. Dále je to píle, pečlivost a tzv. schopnost dotažení věcí do konce. Zbytek už je pouze řemeslo, které se dá poměrně rychle osvojit. Spoustu lidí také zastraší představa, že samotné psaní kódu je nějakým způsobem složité. To je ovšem miskoncepce. Pokud je člověk schopen vytvořit trochu složitější excel soubor, ve kterém bude používat vzorce a podmínky, dokáže se stejným způsobem naučit syntaxi kteréhokoliv programovacího jazyka.

Přečtěte si také

Petr Kašák
04.02.2021

Na začátku roku požádal o povolení přistát na Eluvii nový kolega - Tomáš. 

Johnny Strnad
23.12.2020

Některé diskuse u nás v Eluvii přirovnáváme k náboženským válkám. Řešíme jednotlivé programovací jazyky nebo vývojářské stroje. Největší obrat (na víru) zaznamenal Johnny, který sepsal pár postřehů k práci s MacBookem.

 

Petr Kašák
01.11.2020

V říjnu 2020 přistál na Eluvii a vzal si na sebe nelehký úkol posunout front-endový tým o světelné roky dál. Nový kolega Petr.