Matej študoval na FIITke a dnes zarezáva ako front-end developer. V odbore pracoval na profesionálnych klientských web stránkach (napr. pre realitné kancelárie), na interných CRM systémoch pre manažment zákazníckych vzťahov ako aj na webových aplikáciách pre správu kalendárov/udalostí/pripomienok, či kontaktov. V súkromí je veľkým fanúšikom video hier, no nepohrdne ani stolnými hrami, dobrým seriálom, či zaujímavou fatasy/sci-fi knihou.
Aké boli tvoje začiatky s programovaním, front-endom, čo bolo najťažšie?
Nuž, študoval som na FIIT (Fakulta informatiky a informačných technológií), takže základy programovania som získal tam, prípadne môžme brať do úvahy ešte predmet "Informatika" z gymnázia, kde sme programovali rôzne zaujímavé programy ako "Lenivý Jim" v dnes už takmer zabudnutom jazyku (Turbo) Pascal.
K front-endu som sa dostal na vysokej škole, počas predmetu "Databázové systémy", kde sa ako hlavný vyučovací nástroj pre databázy použival program MS Access. Keď prišiel čas vypracovať finálne zadanie z predmetu, viacerí študenti, vrátane mňa, si povedali, že nemá zmysel investovať čas a námahu do učenia sa takmer neznámeho a v podstate nepoužívaného nástroja, akým je MS Access a povedali sme si, že to radšej vypracujeme v niečom, čo sa používa v reálnom svete a čoho znalosti sa nám môžu zísť aj do budúcnosti. Tak som sa dopracoval k databáze MySQL. Výsledky z nej však bolo treba aj v niečom odprezentovať a tak som sa rozhodol, že si pre tieto účely vytvorím svoju prvú web stránku. O web developmente som však toho veľa nevedel, tak som si otvoril
www.w3schools.com a začal sa učiť. Prešiel som si HTML, CSS a aj nejaké to PHP. Zabralo to síce väčšinu môjho voľného času v tej dobe, ale výsledok a získané znalosti rozhodne stáli za to.
Prvý väčší test mojich web development znalostí potom prišiel počas práce na bakalárke, kde sme spolu s kolegom pracovali na systéme pre vypĺňanie a vyhodnocovanie online dotazníkov. Tam som už do svojho repertoáru musel zaradiť aj JavaScript. Po ukončení bakalárky som si uvedomil, že web development ma naozaj baví a tak som už pri ňom zostal.
Najťažšie na programovaní, aspoň pre mňa, bola jednoznačne teória. Nie až tak jej obsah, ten je jednoduché sa nabifliť ak treba, ale jej význam. Praktický úvod do programovania bol na škole relatívne krátky a stručný, potom sa to už všetko točilo okolo teórie. Problémom podľa mňa je, že kým človek nenazbiera dostatok skúseností s programovaním, tažko sa mu chápu najrôznejšie teoretické nuansy a nevie si predstaviť ich praktický prínos a teda ani ich význam. V mojom prípade som veľkú časť teórie ocenil až s významným oneskorením, keď som na daný problém sám narazil v praxi a spätne si spomenul na to, čo do nás tlačili v škole.
Pridaná výzva pri front-ende je potom to, že sa jedná o naozaj širokú oblasť. Ak aj obídeme to veľké množstvo technológií, ktoré sa front-endistom v poslednej dobe ponúkajú, len samotné HTML obsahuje obrovské množstvo elementov a CSS umožňuje modifikovať široké portfólio vlastností týchto elementov. Kombinácií je noazaj strašne veľa a najmä zo začiatku nie je jednoduché povedať, ktorá možnosť je v danom prípade najlepšia, nehovoriac o čase potrebnom na oboznámenie sa so všetkými možnosťami. Situácia je podobná aj pri JavaScripte, napr. veľmi obľúbená knižnica jQuery ponúka obrovské množstvo nových a zaujímavých funkcií, takže to chce opäť najmä čas a trpezlivosť.
Aké technológie sú tvoje najobľúbenejšie a prečo?
Hm, to je zložitá otázka. Profesionálne sa venujem front-endu a to jednoducho preto, lebo ma baví. Páči sa mi na tom, že vsetky tri základné technológie (HTML/CSS/JavaScript) sú relatívne nové a stále sa vývíjajú a menia. To isté platí aj pre internetové prehliadače. Navyše v posledných rokoch, keď sa globálne zvyšuje výkon počítačov, telefónov a iných našich obľúbených zariadení a zlepšuje sa aj kvalita internetového pripojenia. Ľudia si začínajú uvedomovať, že internet už nie je iba o obyčajných webstránkach, ale aj o plne funkčných robustných online aplikáciách. To má za následok prísun mnohých knižníc, pluginov, frameworkov atď. Čiže je to veľmi dynamická oblasť vývoja a človek sa rozhodne nenudí :)
Vo všeobecnosti by som ale povedal, že viac než nejakú konkrétnu technológiu mám rád učenie sa nových technológií. Zisťiť čo umožňujú a ako fungujú, porovnávať s inými existujúcimi technológiami, ktoré už poznám. To ma baví na IT ako takom najviac.
Na ktorom projekte, ktorý ťa naozaj bavil, si pracoval v poslednej dobe?
Pred nejakým časom som pracoval na open source projekte "InfCloud", čo je CalDav/CardDav client, slúžiaci na manažment kalendárov, udalostí, pripomienok a kontaktov. Jednalo sa o dosť rozsiahly projekt, ktorý mi pomohol pochopiť JavaScript tak ako žiaden iný projekt predtým.
Mojím obľúbencom je ale moj vlastný mini-projektík "GW2 Monster Hunter". Jedná sa o aplikáciu do game overlay systému "Overwolf", ktorá pomáha hráčom hry "Guild Wars 2" sledovať kedy a kde sa objavia rôzni bossovia a zaznamenávať si, ktorých už v daný deň porazili a ktorí ich ešte len čakajú.
GW2 Monster Hnuter - screenshot
Akú radu by si dal začiatočníkom, ktorí začínajú s tvorbou webstránok alebo programovaním?
Ako som už spomínal, chce to najmä čas a trpezlivosť. HTML a CSS nie su náročné (koniec koncov, nie sú to programovacie jazyky), ale napriek tomu sú dosť rozsiahle. Najdôležitejšia rada podľa mňa ale je: "Google, google, google". Či už si s nejakým problémom neviete rady alebo ste len príliš leniví vymyslieť naň riešenie, je veľká šanca, že eventuálne vygooglite niečo, čo vás nakopne správnym smerom. Obzvášť pre programátorov začiatočníkov, ktorí sa v danej oblasti ešte možno úplne dokonale neorientujú, ide o neoceniteľnú pomôcku.
Aký je tvoj obľúbený nástroj pre webdevelopment?
Povedal by som, že mám dva nástroje, bez ktorých si web development neviem predstaviť.
Pre programovanie ako také nedám dopustiť na Sublime Text (3). Dlho som si nevedel nájsť editor/IDE, s ktorým by som bol spokojný, ale odkedy som vyskúšal Sublime Text, už som ďalej nehĽadal. Jednoduchý, no silný a rozšíriteľný editor so zameraním na klávesové skratky, akému nie páru. A áno, viem že tu je aj vi/vim, ale asi nie som dostatočne hardcore na to, aby som v ňom našiel zaľúbenie :)
Pre web development jednoznačne dev tools / web inspector. To množstvo užitočných informácií, ku ktorým vám dávajú prístup, plus neoceniteľná pomoc pri debugovaní či prototypovaní sú jednoducho na nezaplatenie.
Čo si myslíš, že bude ďalšia veľká zmena vo webdevelopmente v budúcnosti?
Ťažko povedať, ja osobne to na veľké zmeny, aspoň v blízkej budúcnosti, nevidím. HTML/CSS/JavaScript tu sú už dlhé roky a stále sa vývíjajú, reagujú na aktuálnu situáciu vo svete web developmentu, takže ich náhrada nie je nutná. Pred nejakým časom sa však o to pokúsil Google, so svojim projektom Dart, ktorý mal ponúknuť alternatívu k JavaScriptu. Keďže však o ňom málokto vôbec vie, nie to ešte rozpráva, či ho reálne používa, je asi jasné, ako táto snaha dopadla.
Inovácie v oblasti front-endu sa momentálne točia najmä okolo nových knižníc, frameworkov a podobne, takže ak nejaká veľká zmena príde, očakával by som ju v prvom rade tam.
Teoreticky je možné, že niekto príde s nástrojom na tvorbu webstránok pre laikov, ktorý bude tak pokročilý a dobrý, že tradičných web developerov už nebude treba. Čítal som napríklad o jednom nástroji, ktorý generuje web stránky sám a len na základe poskytnutých informácií sa rozhodne, ako by bolo najlepšie dané dáta odprezentovať a vytvorí k tomu aj kompletnú web stránku. Nemyslím si ale, že sa treba báť, už z podstaty takýchto nástrojov vyplýva, že môžu poskytnút iba odmedzenú množinu toho, čo vie vytvoriť reálny programátor. Navyše, automaticky generovaný kód je väčšinou strašne škaredý a neefektívný, aspoň v porovnaní s tým, čo by dokázal vytvoriť skúsený programátor.
Ukážka práce Mateja
Budeš učiť kurz Web Designer, čo máš najradšej na tvorbe webstránok?
Tvorbu webstránok vnímam ako istý druh puzzle, alebo skladačku. Je to tak trochu ako skladať LEGO, akurát že nemáte k dispozicií návod :) Dostanete zadanie, teda nejaký design document od klienta, prípadne screenshot toho, ako má stránka vyzerať. K dispozícií máte rôzne druhy kociek (HTML elementy), ktoré môžete (takmer) ľubovoľne spájať dokopy. Navyše môžete používať CSS, ktoré vám umožní kocky rôzne otáčat, prefarbovať, zmenšovať/zväčšovať atď. Takže je na vás, ako k výsledku dospejete, podstatné je zreprodukovať zadanie. Vnímam to najmä ako hru.
Môžeš nám povedať niečo bližšie o obsahu kurzu? Aké kľúčové znalosti si študenti odnesú?
Kurz je rozdelený na tri časti, každá bude venovaná jednej z troch kľúčových technológií front-endu: HTML, CSS a JavaScript. HTML a CSS sa budeme venovať dosť podrobne, naučíme sa ako spolu tieto dve technológie spolupracujú, implementujeme často používané návrhové vzory, povieme si rôzne tipy a triky. Študenti by si vďaka tomu mali vedieť vytvoriť vlastnú web stránku, úplne podĽa svojich predstáv. Pozrieme sa aj na JavaScript a primárne na jednu z jeho najobľúbenejsích knižníc jQuery, zameriame sa na jej schopnosti manipulácie s DOM stromom. Študenti by vďaka tomu mali vedieť, takpovediac, vdýchnuť život svojim web stránkam, pomocou animácií a interaktívnych elemetov.
Ak máš na Mateja otázku, napíš ju do komentára.
Matejov kurz 12-týždňový kurz
Web Designer v Bratislave začína 28.03.2017, takže ak sa chceš naučiť robiť moderné responzívne weby, prihlasuj sa ešte dnes 😉