Matej studoval na FIITce a dnes zařezává jako front-end developer. V oboru pracoval na profesionálních klientských web stránkách (např. pro realitní kanceláře), na interních CRM systémech pro management zákaznických vztahů i na webových aplikacích pro správu kalendářů/událostí/připomínek či kontaktů. V soukromí je velkým fanouškem video her, ale nepohrdne ani stolními hrami, dobrým seriálem či zajímavou fatasy/sci-fi knihou.
Jaké byly tvé začátky s programováním, front-endem, co bylo nejtěžší?
Inu, studoval jsem na FIIT (Fakulta informatiky a informačních technologií), takže základy programování jsem získal tam, případně můžeme brát v úvahu ještě předmět "Informatika" z gymnázia, kde jsme programovali různé zajímavé programy jako "Lenivý Jim" v dnes již téměř zapomenutém jazyce (Turbo) Pascal.
K front-endu jsem se dostal na vysoké škole, během předmětu „Databázové systémy“, kde se jako hlavní vyučovací nástroj pro databáze používal program MS Access. Když přišel čas vypracovat finální zadání z předmětu, mnozí studenti, včetně mě, si řekli, že nemá smysl investovat čas a námahu do učení se téměř neznámého a v podstatě nepoužívaného nástroje, jakým je MS Access a řekli jsme si, že to raději vypracujeme v něčem , co se používá v reálném světě a čeho znalosti se nám mohou sejít i do budoucnosti. Tak jsem se dopracoval k databázi MySQL. Výsledky z ní však bylo třeba iv něčem odprezentovat a tak jsem se rozhodl, že si pro tyto účely vytvořím svoji první web stránku. O web developmentu jsem však toho moc nevěděl, tak jsem si otevřel www.w3schools.coma začal se učit. Prošel jsem si HTML, CSS a také nějaké to PHP. Zabralo to sice většinu mého volného času v té době, ale výsledek a získané znalosti rozhodně stály za to.
První větší test mých web development znalostí pak přišel během práce na bakalářce, kde jsme spolu s kolegou pracovali na systému pro vyplňování a vyhodnocování online dotazníků. Tam jsem už do svého repertoáru musel zařadit i JavaScript. Po ukončení bakalářky jsem si uvědomil, že web development mě opravdu baví a tak jsem už u něj zůstal.
Nejtěžší na programování, alespoň pro mě, byla jednoznačně teorie. Ne až tak její obsah, ten je snadné se nabiflit-li třeba, ale její význam. Praktický úvod do programování byl na škole relativně krátký a stručný, potom se to už všechno točilo kolem teorie. Problémem podle mě je, že dokud člověk nenasbírá dostatek zkušeností s programováním, těžko se mu chápou nejrůznější teoretické nuance a neumí si představit jejich praktický přínos a tedy ani jejich význam. V mém případě jsem velkou část teorie ocenil až s významným zpožděním, když jsem na daný problém sám narazil v praxi a zpětně si vzpomněl na to, co do nás tlačili ve škole.
Přidaná výzva u front-endu je pak to, že se jedná o opravdu širokou oblast. Obejdeme-li to velké množství technologií, které se front-endistům v poslední době nabízejí, pouze samotné HTML obsahuje obrovské množství elementů a CSS umožňuje modifikovat široké portfolio vlastností těchto elementů. Kombinací je hodně strašně mnoho a zejména ze začátku není jednoduché říci, která možnost je v daném případě nejlepší, nemluvě o čase potřebném k seznámení se všemi možnostmi. Situace je podobná iu JavaScriptu. velmi oblíbená knihovna jQuery nabízí obrovské množství nových a zajímavých funkcí, takže to chce opět zejména čas a trpělivost.
Jaké technologie jsou tvoje nejoblíbenější a proč?
Hm, to je složitá otázka. Profesionálně se věnuji front-endu a to jednoduše proto, že mě baví. Líbí se mi na tom, že všechny tři základní technologie (HTML/CSS/JavaScript) jsou relativně nové a stále se vyvíjejí a mění. Totéž platí i pro internetové prohlížeče. Navíc v posledních letech, kdy se globálně zvyšuje výkon počítačů, telefonů a jiných našich oblíbených zařízení a zlepšuje se také kvalita internetového připojení. Lidé si začínají uvědomovat, že internet už není jen o obyčejných webstránkách, ale také o plně funkčních robustních online aplikacích. To má za následek přísun mnoha knihoven, pluginů, frameworků atp. Čili je to velmi dynamická oblast vývoje a člověk se rozhodně nenudí :)
Obecně bych ale řekl, že více než nějakou konkrétní technologii mám rád učení se nových technologií. Zjistit co umožňují a jak fungují, srovnávat s jinými existujícími technologiemi, které již znám. To mě baví na IT jako takovém nejvíc.
Na kterém projektu, který tě opravdu bavil, jsi pracoval v poslední době?
Před nějakým časem jsem pracoval na open source projektu „InfCloud“, což je CalDav/CardDav client, sloužící k managementu kalendářů, událostí, připomínek a kontaktů. Jednalo se o dost rozsáhlý projekt, který mi pomohl pochopit JavaScript tak jako žádný jiný projekt předtím.
Mým oblíbencem je ale můj vlastní mini-projektik „GW2 Monster Hunter“. Jedná se o aplikaci do game overlay systému „Overwolf“, která pomáhá hráčům hry „Guild Wars 2“ sledovat kdy a kde se objeví různí bossové a zaznamenávat si, které již v daný den porazili a kteří je teprve čekají.
GW2 Monster Hnuter - screenshot
Jakou radu bys dal začátečníkům, kteří začínají s tvorbou webstránek nebo programováním?
Jak už jsem zmiňoval, chce to zejména čas a trpělivost. HTML a CSS nejsou náročné (koneckonců, nejsou to programovací jazyky), ale přesto jsou dost rozsáhlé. Nejdůležitější rada podle mě ale je: „Google, google, google“. Ať už si s nějakým problémem nevíte rady nebo jste jen příliš líní vymyslet na něj řešení, je velká šance, že eventuálně vygooglite něco, co vás nakopne správným směrem. Obzvlášť pro programátory začátečníky, kteří se v dané oblasti ještě možná naprosto dokonale neorientují, jde o neocenitelnou pomůcku.
Jaký je tvůj oblíbený nástroj pro webdevelopment?
Řekl bych, že mám dva nástroje, bez kterých si web development neumím představit.
Pro programování jako takové nedám dopustit na Sublime Text (3). Dlouho jsem si neuměl najít editor/IDE, se kterým bych byl spokojen, ale odkdy jsem vyzkoušel Sublime Text, už jsem dál nehledal. Jednoduchý, ale silný a rozšiřitelný editor se zaměřením na klávesové zkratky, jakému ne páru. A ano, vím že tady je i vi/vim, ale asi nejsem dostatečně hardcore na to, abych v něm našel zalíbení :)
Pro web development jednoznačně dev tools/web inspector. To množství užitečných informací, ke kterým vám dávají přístup, plus neocenitelná pomoc při debugování či prototypování jsou jednoduše k nezaplacení.
Co si myslíš, že bude další velká změna ve webdevelopmentu v budoucnosti?
Těžko říct, já osobně to na velké změny, alespoň v blízké budoucnosti, nevidím. HTML/CSS/JavaScript zde jsou již dlouhá léta a stále se vyvíjejí, reagují na aktuální situaci ve světě web developmentu, takže jejich náhrada není nutná. Před nějakým časem se však o to pokusil Google se svým projektem Dart, který měl nabídnout alternativu k JavaScriptu. Jelikož však o něm málokdo vůbec ví, natož ještě vypráví, zda ho reálně používá, je asi jasné, jak tato snaha dopadla.
Inovace v oblasti front-endu se momentálně točí zejména kolem nových knihoven, frameworků a podobně, takže pokud nějaká velká změna přijde, očekával bych ji v první řadě tam.
Teoreticky je možné, že někdo přijde s nástrojem pro tvorbu webstránek pro laiky, který bude tak pokročilý a dobrý, že tradičních web developerů už nebude potřeba. Četl jsem například o jednom nástroji, který generuje web stránky sám a jen na základě poskytnutých informací se rozhodne, jak by bylo nejlépe daná data odprezentovat a vytvoří k tomu i kompletní web stránku. Nemyslím si ale, že je třeba se bát, už z podstaty takových nástrojů vyplývá, že mohou poskytnout pouze omezenou množinu toho, co umí vytvořit reálný programátor. Navíc, automaticky generovaný kód je většinou strašně ošklivý a neefektivní, alespoň ve srovnání s tím, co by dokázal vytvořit zkušený programátor.
Ukázka práce Matěje
Budeš učit kurz Web Designer, co máš nejraději na tvorbě webstránek?
Tvorbu webstránek vnímám jako jistý druh puzzle nebo skládačku. Je to tak trochu jako skládat LEGO, akorát že nemáte k dispozici návod :) Dostanete zadání, tedy nějaký design document od klienta, případně screenshot toho, jak má stránka vypadat. K dispozici máte různé druhy kostek (HTML elementy), které můžete (téměř) libovolně spojovat dohromady. Navíc můžete používat CSS, které vám umožní kostky různě otáčet, přebarvovat, zmenšovat/zvětšovat atp. Takže je na vás, jak k výsledku dospějete, podstatné je zreprodukovat zadání. Vnímám to zejména jako hru.
Můžeš nám říci něco blíže o obsahu kurzu? Jaké klíčové znalosti si studenti odnesou?
Kurz je rozdělen na tři části, každá bude věnována jedné ze tří klíčových technologií front-endu: HTML, CSS a JavaScript. HTML a CSS se budeme věnovat dost podrobně, naučíme se, jak spolu tyto dvě technologie spolupracují, implementujeme často používané návrhové vzory, řekneme si různé tipy a triky. Studenti by si díky tomu měli umět vytvořit vlastní web stránku, zcela podle svých představ. Podíváme se také na JavaScript a primárně na jednu z jeho nejoblíbenějsích knihoven jQuery, zaměříme se na její schopnosti manipulace s DOM stromem. Studenti by díky tomu měli vědět, takříkajíc, vdechnout život svým web stránkám, pomocí animací a interaktivních elemetů.
Pokud máš na Matěje otázku, napiš ji do komentáře.
Matějův kurz 12-týdenní kurz Web Designer v Bratislavě začíná 28.03.2017, takže pokud se chceš naučit dělat moderní responzivní weby, přihlašuj se ještě dnes 😉
🥇 Sme jednotka v online vzdelávaní na Slovensku. Na našom webe nájdeš viac ako 300 rôznych videokurzov z oblastí ako programovanie, tvorba hier, testovanie softwaru, grafika, UX dizajn, online marketing, MS Office a pod. Vyber si kurz, ktorý ťa posunie vpred ⏩