Aké bolo mentorovať 2 projekty naraz v Czechitas
Teraz je asi v móde písať blogy, všetci okolo mňa niečo píšu a zdieľajú a dneska mám aj ja náladu na písanie a už dávno som sem normálnejším článkom neprispela, keď si predstavím, že jeden z mojich posledných článkov bol o tom ako sme trepali cez pol Blavy múku a nakoniec nepiekli chlieb.
Chcela by som sa podeliť o moju poslednú skúsenosť, kedy som si odhodlane povedala, že zvládnem v pohode mentorovať dva webové projekty za mesiac, popritom plánovať výuku Python hodín, ktorú som dopredu vôbec nemala ani pripravenú a pravidelne každý utorok chodiť aby to nebolo málo k zubárovi.
Ako som na to šla?
Hneď po dni meet your mentor som si dohodla po víkende prvé stretnutia s Andreou a Terezou. Tu nastal hneď môj prvý organizačný problém, lebo som to chcela mať hotové za jeden deň a nedošlo mi, že ak sa s jednou z nich stretnem po práci na pár hodín, s druhou sa stretnem až o ďalšie 3 hodiny neskôr. Preto moje prvé stretnutie s Terezou bolo pomerne zábavné, najprv sme šli do Alzy, odkiaľ nás behom 15 minút vyhodili a tak sme v búrke v noci blúdili po Holešoviciach, až sa nás ujali v jednej kaviarni, v ktorej personál počkal o 30 minút po záverečnej dlhšie, len kým si tam nakonfigurujeme Python a Django do virtuálneho prostredia.
Moje časové plány
Po prvom stretnutí, keď som si vypočula o čom, majú byť detailnejšie obe projekty som pripravila pomerne veľmi optimistický časový plán rozdelený do 4 fáz podľa týždňov.

Samozrejme to bol naozaj optimistický plán a nenápadne som každým týždňom tasky pridávala a dúfala, že si nikto nevšimne ako tam pribúdajú. Som rada, že som tento plán pripravila aj preto, lebo sa nám nestalo, že do konca danej fázy by sme nemali hotovú základnú funkcionalitu a čo nebolo potrebné a možné realizovať som presunula do fázy po digitálnej akadémii. Počas mojich plánov ma pomerne pobavila veta od Andrei, ktorá mi vraví, že dizajn mi pošle nakoniec a ja pozerám do mojej osnovy, že mám v prvom týždni napísané dizajn/wireframe stránky/dashboardu.
- Fáza dokumentácia
Od začiatku sme písali dokumentáciu, ktorá mala presnú podobu a štruktúru zodpovedajúcu bežnej analýze popisujúcej vývoj webovej aplikácie, okrem toho sme si ukázali ako vyzerajú funkčné a nefunkčné požiadavky, use casy a ako zo zadania pomocou podstatných mien a slovies spraviť dátový model.
2. Dátový model
Druhé stretnutie už bolo omnoho lepšie, stretli sme sa všetky tri v Starbucske , kde sa vôbec nesedelo nakoniec pohodlne a nešiel nám tam ani internet, ale všetci sa tvárili, že im to nevadí a spokojne. Ukázali sme si ako sa robí dátový model, väzby a ako dátový model naprogramovať v Djangu a prepojiť s PostgreSQL databázou. Táto fáza šla pomerne jednoducho. Okrem iného sme to spravili pomerne objektovo, zohľadňujúc princípy dedičnosti, polymorfizmu a všetkého, čo k dátovému modelovaniu v Djangu patrí.

3. Ako s nimi zdieľať kód?
Potom prišla na rad ťažšia otázka. Chcela som im priebežne robiť code review, upravovať chyby, radiť a podobne. Vravím si , zdieľať word sme zvládli na Google drive, s kódom to bude ťažšie. Ale povedala som si , že to skúsim a počas kurzu som ich naučila naplno pracovať s Gitom a vytvorili si účet na Githube. Vôbec nešlo o obyčajné git pull a git push ale komplexnú správu kódu, verzionovanie, mergovanie zmien , správa branchov a ja sama som raz musela dať git reset, aj keď nie priamo dobrovoľne, no vravím si, vždy som si chcela skúsiť aj tento príkaz a konečne som mala tú šancu ho aplikovať v praxi.
4. Fáza frontend
Uvedomovala som si ďalšiu skutočnosť. Žiadna webová aplikácia nemôže fungovať bez frontendu a tu nastal ďalší môj problém. My sa na kurze učíme Python, dátovú analýzu, no žiadne HTML, CSS a JavaScript. Preto som Andreii a Tereze poslala odkaz na môj webový kurz aby sa obe naučili buď vytvoriť šablónu samé, alebo vedieť aspoň pochopiť a upraviť môj kód. Myslím to obe zvládli dobre, lebo keď sa pozriem na dizajn oboch projektov, vyzerajú lepšie ako mnoho komerčných platených aplikácií, ktoré bežne používam.
5. Fáza dátová
Tretia fáza bola zábavnejšia. Tu sa už nešlo stretávať spolu, lebo oba projekty boli príliš odlišné. V jednom bolo treba naplno pracovať v Pandase, prečistiť dáta, transformovať ich, úpravy dátových typov a prevodom dátumov v Pythone. A čo bolo ešte ťažšie, ešte v treťom týždni som nemala presne vymyslené, ako chcem spárovať CSV súbory, ktoré patria neregistrovanému užívateľovi, aby sa vybrali správne, ak do systému zádavajú údaje aj viacerí užívatelia naraz, aby sa súbory uložili, aby v pamäti ostali aspoň počas spracovania.
Tereze som zase dala na starosti spraviť všetky view a šablóny a naprogramovať si vhodné modelové metódy. Taktiež som mala v oboch projektoch za úlohu stručne vysvetliť ako funguje Objektovo orientované programovanie, čo je to MVC, čo je to ORM a ako to celé efektívne prepojiť, aby im to dávalo zmysel.
6. Tuningovanie
Neviem, ako sa nám to podarilo, ale posledný týždeň sme to mali poväčšine hotové a funkčné, aj pekné, priebežne som to s nimi testovala a ako vždy, keď sa nudím, začnem pridávať featury do projektu. Preto vravím Tereze, že by sme mali spraviť ešte dashboard so súhrnným prehľadom a zjednodušiť prácu Czechitas. Cez webscraping vždy stiahneme kurzy Czechitas, ktoré boli vytvorené na webe a z nich vytvoríme nové vlákno ak neexistuje. Zároveň v prehľade je zoznam kurzov dostupný. Taktiež sme chceli aspoň trochu dočasne apku oživiť, tak sme sa napojili na Instagram odkiaľ sťahujeme obrázky Czechitas feedu a zobrazujeme najviac hodnotené a likované.
Na strane aplikácie Andreii sme si povedali, že namiesto matplotlibu spravíme vizualizácie v interaktívnejšom JavaScripte, čo bol tiež oriešok, lebo prepojiť dáta z Pythonu do javascriptu, konkrétne z pandasu, nebolo tak jednoduché , nehovoriac o tom, že to mal zvládnuť začiatočník, ktorý nikdy pred tým neprogramoval.
Výstup
Výstupy oboch projektov, však vyzerajú viac než dobre. Sama som hrdá, keď to vidím.
Czechitas wikipédia



Uniporn Reports

Ešte to samozrejme nekončí
V piatok po super prezentovaní oboch projektov, kde som už pociťovala mierny spánkový deficit bola ukázaná základná MVP verzia. Verím, že keď im napíšem s mojím novým časovým plánom obsahujúcim publikáciu projektu do cloudu, čím som ich trochu už strašila, že nie je také jednoduché a že za deploymentom sa skrýva viac práce ako tušia, plánujeme pridať pár ďalších základných funkcií, vďaka ktorým budú oba projekty možné využívať aj verejne užívateľmi a budú prínosné.
Autor článku: Svetlana Margetová
