Programovanie bez Ing. - aj bez diplomu z informatiky
Lubo Herkoo
21.03.2017
10 minút čítania
Nemáš diplom z informatiky a chceš byť programátor(ka)? Žiadny problém! Počas môjho interview na pozíciu programátora v Learn2Code nikoho nezaujímalo, čo/kde som študoval. Dôležité boli skúsenosti, portfólio a (snáď) rozumné odpovede na otázky.
Kniha o JavaScripte, ktorú som nikdy neprečítal
Programovať webové aplikácie som sa naučil sám. Staval som na základoch zo strednej školy, kde som zistil, že web dokáže “postaviť” aj obyčajný smrteľník. Vtedy sme na hodinách informatiky programovali Pascal, neskôr vo vyššom ročníku aj VisualBasic, alebo C++. Tieto jazyky ma však veľmi nezaujali. Neriešili žiadny zásadný problém v mojom živote, preto nám v task-bare vždy svietil CounterStrike 1.6, alebo Divoké kmene - browserová online hra. V maturitnom ročníku nás však na predmete multimédiá naučili tvoriť jednoduché weby s využitím jazyka HTML a pravidiel CSS. HTML & CSS sú super v tom, že akonáhle zmeníte svoj kód, stačí refresh prehliadača a zmeny vidíte okamžite.
Žiadna kompilácia kódu, žiadne využívanie komplikovaných knižníc na zobrazovanie grafiky. Jednoduchý systém: pravidlo - výsledok. Web tiež stačilo nahrať cez FTP na niektorý z voľne dostupných free hostingových serverov a videl to celý svet. Síce vám to oblepili reklamou od vrchu až dole, ale kamošom som poslal len link a voila... Fotky z dozvukov si mohol pozrieť každý, kto mal internet.
Počas predĺžených prázdnin pred štúdiom na vysokej škole som budoval svoju home-page. Chcel som tam veľmi mať moderné vysúvacie menu. Zistil som, že také menu bez JavaScriptu nedám. Kúpil som si teda svoju prvú “programátorskú” knihu: JavaScript - programujeme internetové aplikace. V českom jazyku. Nikdy som sa nedostal za 1. kapitolu: Začíname - stiahol som hotový .js súbor s menu, ktoré vyzeralo tak, ako som chcel. Vôbec som netušil, ako to celé funguje, ale hľadal som. Vtedy ma Google poslal na neskutočný zdroj informácií, web, ktorý som ako jediný prečítal celý: jakpsatweb.cz. Boom!
Guestbook.PHP
Keďže web bez knihy návštev nebol webom, skúmal som možnosti. Potreboval som nejaké PHP a to zase potrebovalo nejaké MySQL a nejako to bolo spolu prepojené. Pochopiť princíp PHP a databáz mi pomohol český tutoriál, ktorý som už dnes žiaľ nenašiel. Podarilo sa mi dať dokopy súbor s asi 500 riadkami PHP spaghetti kódu a guestbook.php bol na svete.
Výber vysokej školy nemal nič spoločné s kariérou programátora. Študoval som učiteľstvo anglického jazyka a informatiky na Katolíckej univerzite v Ružomberku. Štúdium učiteľskej informatiky sa veľmi nelíši od stredoškolskej informatiky na technickej škole, takže som sa cez prednášky vrátil k Divokým kmeňom. Moja spolužiačka vtedy hľadala niekoho, kto pomôže jej kamarátovi propagovať webom neziskovú organizáciu, ktorá pomáha africkým deťom. Za peniaze. Keďže som zvládol guestbook.php, zvládnem aj toto. Neveril som vlastným očiam, keď som pri písaní tohoto textu našiel svoju prvú zákazku v živote: LiveAid CZ. Pamätám si, že môj honorár bol 400,- SK.
WordPress
Keďže som stále snoril okolo PHP, narazil som aj na redakčný systém Wordpress. Ten mi pomohol pracovať efektívnejšie a zvládnuť zákazky rýchlejšie. Pri práci s Wordpress som zvládol aj objektové programovanie v PHP - pomohla mi k tomu výborná kniha od O’reilly: Programming PHP, je to však skôr príručka ako nejaký tutoriál.
Ruby on Rails
Počas celej tej doby som bol v kontakte so svojím kamarátom, spolužiakom zo strednej školy. Stále sme debatovali o Apple, IT, programovaní. Jemu PHP nikdy nesedelo. Bol vždy trendy a tiež stále niečo programoval - nevedel som však v akom jazyku. Keďže sme obaja študovali na VŠ (on na FEI STUBA) a bolo pre nás ako študentov pomerne jednoduché dostať sa do USA, využili sme to. Po niekoľkých týždňoch práce sme objednali svoje prvé MacBook Pro. Podstatné na tom celom je to, že on za tie tri mesiace v USA po večeroch naprogramoval vlastnú verziu browserovej hry Babylon (žiaľ, nikdy ju nepublikoval online). Občas spomenul nejaké railsy, ale nikdy som tomu nevenoval pozornosť. Až sme začali kecať a ja som postupne vymenil PHP za Ruby on Rails.
To, že sme investovali do laptopov si všimol aj majiteľ hotela, v ktorom sme pracovali. Dali sme reč, zistili sme, že mu vieme pomôcť s webom pre jeho hotely a odvtedy sme mali teplé miesto v kancelárii, kde sme vytvorili http://angelinnhotels.com/. Webdizajn nič moc, ale nemuseli sme čistiť klimatizácie a izby po Američanoch s nevychovanými deťmi.
VIVANT
Po návrate z USA sme s Jozefom komunikovali intenzívnejšie. Vytvorili sme firmu a dostali sme sa k profi zákazke od Ministerstva školstva. Vyhrali sme súťaž na vytvorenie systému na správu neziskových organizácií v rámci SR. Rozdelili sme úlohy a pustili sa do toho. Bolo to vzrušujúce obdobie. Kupovali sme svoj vlastný server, ktorý sme umiestnili do serverovne v Bratislave. S pomocou Jozefovho brata - linuxového guru - sme ho nakonfigurovali. Na vývoj aplikácie sme samozrejme použili Ruby on Rails a databázu PostgreSQL. Bol to prvý seriózny projekt, ktorý však mal aj svoje zazmluvnené termíny. Projekt VIVANT, ako sme ho nazvali, sme dotiahli do úspešného konca. Používa sa dodnes (http://adam.iuventa.sk).
Reštart - online kurzy
Počas práce na VIVANT som dokončil vysokú školu a začal pracovať ako učiteľ na ZŠ. Neviem či to bolo správne rozhodnutie, alebo nie. Povedal som si, že programovať budem môcť aj popri práci učiteľa. Kým som učil na polovičný úväzok, tak to aj bolo možné. Neskôr som však zistil, že prácu učiteľa na plný úväzok len ťažko dokážem spojiť s ďalšou mentálne náročnou prácou po večeroch. Učiteľovanie ma však natoľko vzalo, že som postupne prestal programovať takmer úplne. Sledoval som trendy, zaujímal sa o dianie, ale nepracoval som na žiadnom projekte.
Prestávka trvala takmer 6 rokov. Predstava seba - učiteľa na dôchodku - ma neskôr natoľko vystrašila, že som sa rozhodol odísť zo školstva a skúsiť reštart svojho programátorského remesla. Problém bol v tom, že som zameškal dve verzie Ruby On Rails, vo svete PHP pribudol nový dôležitý framework Laravel a zistil som, že svet JavaScriptu je totálne niekde inde ako pred piatimi rokmi - React, Angular, EmberJS, NodeJS... Nič z toho som neovládal. Aj pozostatky know-how spred piatich rokov už boli neaktuálne. Moje vedomosti potrebovali refresh. Zvolil som cestu online kurzov. Vďaka dobrej angličtine som siahol na kurzy Udemy. Neskôr som objavil aj iné portály - Codeschool, Pluralsight, Egghead, Codecademy.
Z každého portálu som absolvoval aspoň jeden kurz. Naučil som sa čo je nové v Ruby a Ruby on Rails, ako viem testovať svoje webové aplikácie. Zlepšil som sa v Git. Pochopil som ako funguje JavaScript. Naučil som sa základy EmberJS, React a NodeJS. Zlepšil som svoje vedomosti v oblasti databáz, naučil som sa pracovať aj s NoSQL databázami.
Nemusel som nikam chodiť. Všetko som zvládol v pohodlí domova, vlastným tempom.
Job v Learn2Code
Keď sa mi ako-tak vrátilo sebavedomie a zrealizoval som zopár malých projektov, na Facebook-u zazdieľal niekto pozíciu Ruby on Rails programátora v Learn2Code. Zlátal som svoj životopis, dostavil sa na interview do veľkého mesta. Rada (CEO) som upozornil na svoju stroskotanú učiteľskú kariéru a porozprával som o svojich projektoch. Rozhodli sa to so mnou skúsiť. Ja neľutujem, Rada sa ale musíte opýtať vy :)
Do it!
Naučiť sa programovať weby nie je také náročné, ako by sa na prvý pohľad mohlo zdať. Absolvovať online kurzy bolo príjemné a vo väčšine prípadov aj zábavné, niekedy to však bola aj poriadna otrava - treba ale vydržať. Ľudia, ktorí kurzy vyrábajú tam nikdy nedajú vatu, aby natiahli čas.
Teraz mám možnosť nahliadnuť aj do Yablkových kurzov a konštatujem, že môj guestbook.php by nemal podobu 500 riadkového spaghetti kódu, keby som mohol môj český tutoriál vymeniť za jeho Webrebel.