Ve 21 letech má Patrik vývojové studio. Jak toho dosáhl?
Patrik Smělý patří mezi ty, pro které je programování život. Je mu sice 21 let, ale má už za sebou více než 10 let zkušeností a rozjíždí svou firmu. Jak se to všechno naučil? V čem mu zpočátku podrážela nohy dysgrafie a dyslexie a dělá mu potíže při programování i dnes? Jak vnímá rekvalifikace a zaměstnal by u sebe úspěšného absolventa ITnetworku?
Přečti si také, co by doporučil začínajícím programátorům a proč si myslí, že moderní dělníkem bude programátor.
Minecraft jako inspirace
Patriku, co tě přivedlo k programování tak brzy, že máš ve 21 letech už 11leté zkušenosti?
Začal jsem programovat v 10, možná v 11 letech. A v tu dobu jsem hrál hodně počítačovou hru Minecraft. Fascinovalo mě hrát především multiplayer. Na to ale musí hráči mít svůj minecraftový server a to hra neposkytuje. Hráči si ho musí sami založit, což vyžadovalo už nějaké IT znalosti. Minimálně v té době to nebylo tak jednoduché. Věřím, že dneska už to tak není.
Tehdy jsem byl nadšený z toho, že můžu hrát v nějakém kolektivu, takže jsem si sháněl informace různě na internetu. Ale všechno bylo v angličtině, tehdy jsem na tom s ní ještě nebyl moc dobře. Už jsem tak jako tíhnul k technologiím od doby, co jsem hrál konzolové hry, což bylo od 4 let. Dostal jsem totiž k narozeninám PS2.
Nicméně s Minecraftem se můj zájem prohloubil. Chtěl jsem znát detaily a najednou se to přehouplo, že jsem udělal server a následně se zajímal i o pluginy, jak je instalovat a nakonec i jak je vytvořit.
Jak správně začít a prorazit
Co bys poradil mladým, začínajícím, nadšeným programátorům jako jsi byl ty?
Asi mít dobré kontakty. Tvořit si je už od mladého věku. Taky nebát se říct si o práci a umět mluvit o tom, co umím. Třeba když jsem chodil na střední, musel jsem si vydělávat peníze, protože to byla soukromá škola. Takže jsem třeba oslovil ředitele a naprogramoval jsem mu několik věcí, které té škole usnadnily práci a dostal za to zaplaceno. A pak za mnou chodil pokaždé, když něco potřeboval. Důležité je se umět prezentovat. Znal jsem spoustu kluků, kteří byli lepší než já, ale neuměli to prodat. Může pak přijít někdo, kdo to prodá za ně, ale přijdou tím o nějaké peníze. Nebo neprorazí vůbec, což je nejsmutnější případ.
...mít dobré kontakty. Tvořit si je už od mladého věku. Taky nebát se říct si o práci a umět mluvit o tom, co umím...Důležité je se umět prezentovat.
Kde si myslíš, že by programátoři měli začít?
Myslím, že nejdůležitější schopnost každého programátora je umět hledat. ITnetwork je nesmírně bohatou knihovnou informací. Je tam toho opravdu spousta. Ale taky nemůže obsáhnout všechno. Pak se musí hledat.
Většinou člověk zjistí, že ten samý problém, co řeší, řešili programátoři před ním. Rozhodně pak nesmí mít špatný pocit z toho, že vlastně tu práci od někoho v podstatě okopíruje. Když se člověk učí, není nic špatného na tom si něco najít a zkopírovat to. Samozřejmě by měl chápat, proč a jak to funguje.
Programátoři by měli mít sebereflexi, že prostě vždycky existují lidé, kteří vědí a umí víc a chtít se jim vyrovnat. Každý den může vzniknout nějaká nová technologie, která za pár let může úplně změnit IT svět.
Měli by se obklopovat lidmi, kteří mají stejné zájmy a bavit se o nich. Sledovat správné lidi na sociálních sítích. Mým vzorem je Jonathan Blow. Začínal programovat jako dítě, dneska je mu 49 a vytváří si vlastní jazyk. Nikdy se nepřestal posouvat dál a zajímat se o novinky. Prostě se nezaseknout na jedné technologii a neustále se učit. Obzory co mám teď, jsou menší než by mohly být zítra, pokud neustanu.
Myslím, že nejdůležitější schopnost každého programátora, je umět hledat. ITnetwork je nesmírně bohatou knihovnou informací. Je tam toho opravdu spousta.
A co je takový jeden problém, se kterým se potýkají všichni začátečníci programátoři?
Bývají hodně ze začátku frustrovaní. Dělají ty samé chyby a jsou z toho nešťastní. To naštěstí trvá jen pár měsíců. Je důležité vydržet to a pak se to začne pomalu zlepšovat. Člověka to musí především bavit a nedělat to jen pro peníze, protože pak bude chtít programovat i ve svém volném čase a bude prostě 100x lepší než ten, který to dělá jen proto, že musí. Ale samozřejmě není nic špatného na tom, když do toho někdo jde kvůli penězům. Tak je to ale se vším. Nezaspat dobu a sledovat trendy. I když to, že je něco trendy neznamená, že je to nejlepší. Třeba JavaScript. Ten jazyk není sám o sobě úžasný a má v sobě spoustu chyb.
Jak jsi se dozvěděl o ITnetworku?
Většinou mívají Minecraft servery webové stránky a já žádné neměl. Tak jsem hledal nějaké řešení. Narazil jsem na různé generátory HTML stránek, ale to nikdy nebylo ideální. Vždycky tomu něco chybělo, nebo to nešlo snadno přizpůsobit atd. Takže jsem vlastně postupně došel k tomu, že nejlepší je si ty stránky prostě napsat sám. Začal jsem hledat informace o HTML a CSS a učil se to z internetu. Po určité době jsem narazil na ITnetwork (tehdy ještě Devbook) a přečetl jsem si celou sérii článků o HTML a CSS. To byl jeden z prvních o českých zdrojů, ze kterých jsem čerpal. Já jsem byl většinou zvyklý na angličtinu. A když už jsem na nějaké české tutoriály narazil, tak byly zastaralé. Na ITnetworku jsem se učil HTML pětku, která byla tou dobou docela nová a aktuální. Pak jsem se tady taky naučil základy CSS, PHP a OOP.
Jak dlouho ti pomáhaly informace z ITnetworku?
Asi několik let. Řekl bych tak 4 roky. Až jsem se o to zajímal do takové hloubky, že jsem začal čerpat informace psané v angličtině. Ale ze začátku mi ITnetwork určitě hodně pomohl vybudovat ten solidní základ a naučil jsem se tady i věci, které se většinou vyučují až na vysoké škole. Bylo to přeci jen jednodušší díky tomu, že to bylo v češtině. V tu dobu jsem byl ještě v podstatě dítě. Bylo to srozumitelně vysvětlované i pro 11letého kluka.
Ale ze začátku mi ITnetwork určitě hodně pomohl vybudovat ten solidní základ a naučil jsem se tady i věci, které se většinou vyučují až na vysoké škole. Bylo to přeci jen jednodušší díky tomu, že to bylo v češtině.
Zasekl jsi se někdy tak, že jsi nevěděl jak dál? Pokud ano, co ti pomohlo?
Ze začátku pro mě byla překážkou angličtina. Takže tím, že byl ITnetwork v češtině, tak to bylo úplně super. Pak jako další překážka byla syntaxe. Já jsem dysgrafik a dyslektik. Mám horší vnímání textu. Z toho důvodu píšu kódy přehledněji, abych se v tom mohl dobře orientovat. S cizími kódy mám trochu problém a chvilku mi trvá, než to přečtu. Takže ačkoliv jsem logicky chápal, jak kód vytvořit, měl jsem problém to napsat. Především jak správně psát závorky. Musel jsem na to hodně myslet a dlouho trvalo vybudovat si ten zvyk. Teď s tím nemám nejmenší problém. Je to už jako taková svalová paměť, když to přeženu.
Programovat může každý...?
Jaký byl a je tvůj hnací motor?
Nadšení. Já jsem to nikdy nedělal pro peníze. Až asi po 3 nebo 4 letech mi někdo vnutil peníze a uvědomil jsem si, že si tím můžu taky něco vydělat. Předtím jsem psal různé věci pro kamarády a třeba nějaké vtípky. Žene mě obrovský zájem a taky pocit, že chci fakt něco vytvořit. Vždycky jsem se něco učil, abych to pak do něčeho mohl aplikovat. Pro Minecraft server jsem vytvořil webové stránky. Pak jsem si neustále vytvářel různé typy herních enginů. Takové jednoduché 3D napsané v Javě, C# a Go a dokonce i v JavaScriptu.
U zakázek je to trošku těžší, protože ta věc většinou není zrovna moc zajímavá. Třeba webové stránky už celkem ovládám a tak necítím, že bych se někam posouval. Proto to pak píšu v technologii, kterou moc neznám, ale zajímá mě, abych se v ní zdokonalil.
Co člověk potřebuje, aby mohl začít programovat, třebaže pracoval do té doby v úplně jiném oboru?
Myslím, že programovat se může naučit vlastně každý. Ten stereotyp, že se k programování váže matematika… Člověk musí mít dobrý rozhled a logické myšlení, aby byl schopný vymyslet algoritmy a pak je i implementovat. Logické myšlení se lze naučit i díky programování. Ve škole logické myšlení učí pomocí matematiky.
Nemyslím si tedy, že člověk musí být výtečný matematik, aby se naučil programovat. Já jsem v ní nikdy nevynikal a přiznám se, že v ní mám mezery i teď. A když pak člověk tvoří herní engine, tak je tam ta matika potřeba docela dost. Především lineární algebra, matice, vektory atd. Tohle jsem se nenaučil ve škole, ale naučil jsem se to vždycky, když jsem to potřeboval. Našel jsem si o tom potřebné materiály a z nich se to naučil. Neříkám, že by nebylo rychlejší, kdybych to uměl už ze školy.
Jak vnímáš rekvalifikace?
Mám teď ve firmě kamaráda, který chtěl být původně architektem. Takže on už to logické myšlení trošku měl. Já jsem ho ale nakonec přivedl na programování. Rekvalifikoval se a dělá teď pro mě. Baví ho to úplně nejvíc.
V dnešní době umět programovat je podobně důležité, jako mít základy matematiky. Moderní svět je o moderních technologiích, takže moderní dělník bude časem programátor. Manuální práce půjde stranou modernizací spojenou s AI. To je samozřejmě můj názor A spousta lidí, co není šťastná ve své práci, si myslím, že mají na to zkusit štěstí v programování. Není to zase tak složité, aby to nemohl dělat kdokoliv alespoň na nějaké úrovni.
Moderní svět je o moderních technologiích, takže moderní dělník bude časem programátor. Manuální práce půjde stranou modernizací spojenou s AI.
Takže si myslíš, že ti již věkem ošlehaní také mohou programovat?
Je pravda, že se určitě učí pomaleji, protože vrchol mentálních schopností je okolo 30. Ale spíš je to o té píli. Rozhodně to jde.
Doporučil bys ITnetwork dál?
Určitě ano. Myslím, že je kvalitním zdrojem a poskytuje dobré základy i pokročilé znalosti. Člověka, který absolvoval kurzy ITnetworku, bych u sebe zaměstnal. Myslím, že kvalita článků je na vysoké úrovni. Rozhodně bych ho doporučil, protože v Česku je to jeden z mála skutečně dobrých zdrojů ohledně programování.
Člověka, který absolvoval kurzy ITnetworku, bych u sebe zaměstnal. Myslím, že kvalita článků je na vysoké úrovni. Rozhodně bych ho doporučil, protože v Česku je to jeden z mála skutečně dobrých zdrojů ohledně programování.
Apparently Studio a vysoká škola
Jaké máš vzdělání v IT?
Mám střední školu multimediální v Poděbradech, ale když jsem na tu školu šel, programoval jsem asi 5 let. Tak trochu jsem věděl, že v tomhle směru mě nic nového nenaučí. Ale naučil jsem se tady jiné věci. Jak stříhat videa a upravovat fotky. Potom jsem nastoupil dálkově na FIM UHK, kde jsem teda byl jenom první semestr a potom jsem odešel. Zjistil jsem, že to není ten směr, kterým bych se chtěl ubírat. A dalším důvodem byla kvalita výuky. Samozřejmě byl koronavirus. Ale zjistil jsem, že tam není, to co chci. Tak jsem tu školu opustil. Ale do budoucna bych chtěl si chtěl vysokoškolské vzdělání dodělat. Momentálně se zaměřuji spíš na podnikání a rozjíždím vlastní firmu.
Popsal bys mi, co tvá firma dělá?
Budujeme s kolegou vývojové studio - Apparently Studio. Teď to začíná nabírat reálnou formu. Nejdříve jsme spolu freelancerovali. On je grafik a já jsem přes tu technickou část. Teď jsme nabrali spoustu našich kamarádů, kteří se učili programování od základu ode mě. My se zaměřujeme na zakázkový vývoj softwaru a stránek a tak dále. Ale chceme se zaměřit na vývoj vlastních produktů a časem hlavně na hry. Ale to je daleko.
Kolik vás je v týmu?
Zatím je nás 8. Jsou to povětšinou kamarádi, ale funguje to dobře. Hlavně se posouvají dál. Většina z nich už má 4 roky zkušeností, takže už to má taky nějakou úroveň. Teď už máme kanceláře. Předtím to byl jenom home office.
Soustředíte se na nějaké konkrétní technologie?
Hlavně tvoříme webové a mobilní aplikace. Pro každou tu sféru je tam vlastní technologie. Člověk nemůže dělat všechno v jednom. Webové aplikace děláme v Reactu, což byla populární knihovna UI od Facebooku. Potom mobilní aplikace tvoříme nativně. Takže na iOS ve Swiftu a nebo na Android vlastně v Kotlinu a chceme teď používat JetPack Compose. Pokud chceme nějaké multiplatformní řešení, tak React nebo Flutter. Na serveru používáme jazyk GO, což je programovací jazyk od Googlu. Je poměrně rychlý a přijde nám i jednodušší na sémantiku.
Na jaký projekt jsi nejvíc pyšný (vyloženě tvůj nebo tvé firmy)?
Ukázka pouze mých schopností je Studbook, což je velká databáze zvířat pro české a slovenské zoo. Je to databáze žiraf a zeber. Takže je to velká webová aplikace, kde se pracuje s tisíci zvířaty a různě se filtrují. Je zde i rodokmen těch zvířat a generuje se vlastně z plemenné knihy v PDF. Je to docela velké množství složitých částí, které byly dost časově náročné. A tím, že jsem to dělal celé sám, ten vývoj nebyl tak rychlý, jako kdyby na tom pracoval tým lidí. Já jsem napsal pouze tu technickou část.
A další projekt, na kterém jsem pracoval a dneska už je docela známý, byl start-up FaceUp. Tam jsem byl skoro rok vedoucí vývoje. To bylo vlastně jedinkrát, kdy jsem pracoval pro firmu jako zaměstnanec. Na této platformě může osoba anonymně nahlásit šikanu. Projekt začal na školách a dnes tam mohou hlásit šikanu i zaměstnanci firem. FaceUp je zahraniční verze. V Česku se to jmenuje Nenech to být. Podílel jsem se na tvorbě mobilní aplikace, webových stránek a serveru. Tehdy se mi to časově pralo se školou. Nakonec jsem si vybral školu. (směje se)
Jaký byl první jazyk, se kterým jsi se setkal?
To byl C# asi ve WinForms, kde jsem tvořil nějaké jednoduché Windows aplikace. Takové blbosti jako jak přepínat barvu. U těch Minecraft pluginů jsem to ale bral už trošku seriózně a chtěl napsat svoje. Minecraft je vytvořen v Javě a tak jsem rychle přesedlal. Napsal jsem nějaké pluginy, ale žádný se asi nedostal ven mimo ten můj server, na kterém hrálo asi 50 hráčů.
Co používáš za technologii na hry?
Zajímám se hodně o C++, C a taky Rust. A do budoucna počítáme s tím, že si uděláme vlastní engine v takovém nízkoúrovňovém jazyku, abychom zajistili vysoký výkon. C# má garbage collector, který by ho mohl zpomalovat.
Byl jsi někdy na nějakém prezenčním školení?
Vždycky jenom online. Já jsem nikdy takhle jakoby na prezenční školení v podstatě nebyl. Akorát jednou jsem byl v českém Google na workshopu.
Další zajímavé články