Přejít k navigační liště

Zdroják » Různé » Jak jsem se (ne)stal front-end vývojářem

Jak jsem se (ne)stal front-end vývojářem

Články Různé

Pojednání o tom, jak (ne)obtížné je začít pracovat jako vývojář a jakou cestu očekávat. Není v něm ani jedna ukázka kódu, ale je v něm pár odborných pojmů. Pro lidi, kteří zvažují se naučit kódit/vyvíjet/programovat a pro ty, které jen zajímá, jak taková cesta vypadá.

Text vyšel původně na autorově Facebooku.

TL;DR:

  • I neajťák bez VŠ se může stát vývojářem, pravděpodobně ne špičkovým.
  • Je to super práce.
  • Nevěřte lidem, co říkají “Berou každýho, kdo má ruce a nohy.”

Jak to začalo

V květnu předminulého roku jsem se rozhodl cestovat po USA. S tím se pojilo i ukončení smlouvy se zaměstnavatelem, což byl (finální) podnět naučit se něco nového.

Stanovil jsem si tři cíle:

  1. Zkusím se naučit webový front-end.
  2. Rok budu nezaměstnaný a učit se.
  3. Za rok zkusím jít na pohovor a uvidíme, co se stane.

I přesto, že jsem (byl) ajťák a umím rozlišit mezi tou modrou a bílou šňůrou do monitoru, o webovém front-endu jsem věděl přibližně stejně jako o skatingu. Taky jsem ve čtrnácti sjel U-rampu, ale už je to dávno a dneska už na rampách stejně nikdo nejezdí.

Tento text pojednává o tom, jak jsem se dostal k tomu, co dělám, a jaká cesta to byla. Nejsem tak daleko, abych dával jasná doporučení o tom, jak to dělat lépe, ale minimálně umím popsat, co potkalo mne, jak to šlo, a co jsem si z celé té srandy odnesl.

Základní popostrčení

Největším impulzem pro front-end byl pro mě UX test, který dělal kolega. Sledoval jsem, jak se 50letý zámečník již desátou minutou snaží na tiskárně navolit tisk na šířku. Proč to tomu pánovi nešlo? Kdo to rozhraní vymyslel? Proč se s tím pán trápí? Proč nad tiskárnou visí manuál, jak z ní dostat vytisknutý papír? A jak by to šlo vymyslet lépe? A proč to nevymyslím já?

Stále častěji jsem si kladl tyto otázky, moc jsem chtěl nešťastnému pánovi pomoci a udělat takový produkt, aby se mu snadno a přirozeně používal. Řešení bylo nasnadě: Naučím se front-end.

Otázku proč jsem tedy vyřešil, nyní ze zlatého kruhu zbývají ještě další dvě: co a jak.

Co?

Na vývoji webového produktu a jeho použitelnosti se dnes v rozumnějších (větších) firmách podílí více rolí. Jednotlivé role mohou být spojené v jedné osobě či naopak ještě více rozdrobené. Pro toto povídání si je rozdělme následovně:

  • Product Manager: Člověk, který je v kontaktu se zákazníkem a získává od něj představu o požadavcích.
  • UX designér: Člověk, který tyto požadavky přijme a nadesignuje produkt tak, aby se zákazníkovi snadno a přirozeně používal.
  • Product Owner: Člověk, který požadavky rozseká na jednotlivé úkoly, vymyslí jednoznačná řešení a prioritizuje úkoly.
  • Front-end vývojář: Člověk, který píše reálný kód – fyzicky vytváří viditelnou část aplikace. Může se dělit ještě na pozice front-end kodér (člověk, který píše jednodušší vizuální kód) a front-end programátor (člověk, který píše část logiky aplikace).
  • Back-end vývojář: Pro naše povídání není zajímavý, nicméně pro úplnost tvoří kód neviditelné části aplikace v pozadí.

Od začátku až do dnes mě bavilo zastávat čtyři z oněch šestí rolí (PM, UX, PO, FE), což výrazně komplikovalo otázku “Za jakým cílem tedy jdu?” Příklon k front-end vývojáři spíš tak přirozeně vyplynul z toho, čemu jsem se věnoval nejvíce, než že bych si racionálně stanovil jasný cíl. Stanovení jasného cíle by výrazně pomohlo mé psychické pohodě.

V průběhu učení jsem poměrně úzce spolupracoval s kamarádem Dulim, který se shodou okolností začal učit programovat ve stejnou dobu. Naše cesty byly odlišné. Zatímco já se díky Gameconu (viz dále) musel naučit kousek od každé role, Duli říkal spíše věty jako: “Jak jste k tomu zadání došli mě nezajímá, hlavně mi řekni, co a jak mám nakódit”. Jeho učení bylo tak výrazně rychlejší a netrvalo dlouho, než začal učit on mě. Jeho záběr byl užší (front-end programátor) a o příbuzných rolích, které jsou dnes pro softwarový vývoj nepostradatelné, nevěděl tolik.

Dodnes nedokážu jednoznačně říct, která z cest je lepší. Duli nabral znalosti poměrně rychle, byl o tři měsíce rychleji zaměstnaný a netrpěl tolik na výběrových řízeních. Moje znalost “přes více rolí” se mi však posléze začala vracet, jakmile jsem nastoupil do firmy. V dalším textu už pak budu (většinově) popisovat cestu front-end programátora.

Zmínil jsem ještě pozici front-end kodéra, tato pozice má však několik “ale”:

  • je jich čím dál méně a čím dál více je nahrazují WISYWYG editory,
  • jsou méně placení,
  • rychle narazí na znalostní strop a není se kam posouvat.

Jak?

Na začátek je nutné si představit, jaké znalosti se od současného front-end vývojáře očekávají. Základ je:

  1. HTML
  2. CSS
  3. Javascript
  4. knihovny (jQuery, React, Angular…)

Jste-li laik, tedy nepovažujete se za kodéra/programátora, odkázal bych na dvě zlata internetu:

  1. The 2018 Web Developer Roadmap. Obsahuje nejen boží roadmapu odkud a jak začít, ale odkazuje na spoustu super kurzů a dalších článků, kam se odrazit.
  2. Front-end Developer Handbook 2019 jsem objevil až nedávno, nicméně vypadá božsky. Vysvětluje vše od úplných základů až po plně profesionální přístupy.

Jste-li kodér amatér, tedy už jste nějaký kód napsali, doporučil bych tyto dvě věci:

  1. Článek, který jsem si zamiloval: How it feels to learn Javascript in 2016.
    Výstižně, ale zároveň lehce a vtipně popisuje, co vás tak čeká za cestu, a že se první rok budete cítit trochu jako Alenka v říši divů.
  2. Javascript weekly. Shrnutí novinek ze světa Javascriptu (a front-endu obecně) každý týden ve vašem mailu. Sám to nestíhám číst, ale je to zlatý důl na kvalitní články.

Možností, jak se “naučit front-end” je více: Studovat vysokou školu, číst knihy a blogy, zapsat se do online kurzů, zapsat se na stáž, sehnat si mentora, pracovat na neziskovém projektu. Dále pak výběrová řízení a zaměstnání (rozvedu v dalších částech). Stanovil jsem si tedy nějakou kombinaci a zkusím je vzít postupně:

Neziskový projekt

Neziskový projekt se přímo nabízel. V týmu GameConu jsem byl šestým rokem a nutno říci, že Gamecon naplňoval ideální simulační firemní podmínky. Neziskový projekt má své citelné výhody – pracujete na něčem, co se reálně někdy může použít/používá, celý projekt můžete sami řídit, máte k ruce větší tým zkušených kolegů.

Má ale i citelné nevýhody: Pokud chcete jen kódit, potřebujete všechny role, které vám v týmu chybí (UX, PO, PM, …). Pokud je v týmu nemáte, musíte je udělat vy. A pokud je děláte vy, kód se učíte výrazně pomaleji. Kolegové (kamarádi) z festivalu chodili normálně do práce, takže rozumná spolupráce byla možná jen večer. To zpomaluje postup celého projektu a váš dobrý pocit z dobře udělané práce. A v neposlední řadě nemáte vedle sebe nikoho seniornějšího, který by vám poskytl zpětnou vazbu, jestli celou tu srandu děláte vůbec dobře. Neděláte. Ale nic jiného než se učit chybami vám stejně nezbývá – fail fast.

Celé pojednání o projektu “redesign webu Gameconu” by vydalo na vlastní případovku. Pokud vás zajímá detailněji, sepsal jsem celé dobrodružství do tohoto dokumentu.

Co jsem si odnesl:

  • Neziskový projekt před vás položí reálné vývojářské výzvy. Pokud nemáte kompletní a zkušený tým, musíte zastávat více rolí (a chcete je zastávat dobře) a učíte se spíše do šířky než do hloubky.
  • Budete dělat chyby. Hodně chyb. Od toho neziskové projekty jsou. Neztrácíte žádné peníze, max. tak účastníky festivalu, a ti vás mají stejně rádi. A hlavně … učíte se.

Knihy

Přečetl jsem Web ostrý jako břitva (Řezáč), Vzhůru do CSS3 (Michálek) a You don’t know JS (Simpson). Jen v krátkosti:

  • Web ostrý jako břitva je slušná (a notně drahá) kniha a slouží jako úvod do UX a tvorby zadání. Jako kodér se bez ní pohodlně obejdete. Pokud chcete fušovat do UX nebo PM role, poskytne vám solidní základ.
  • Vzhůru do CSS3 bych směle přeskočil. Michálek je ve front-end komunitě uznávaný odborník, ale mně ta kniha nepomohla. Vše o stylování si pohodlně najdete na CSS tricks, naopak složitější věci jako Gulp nebo Grunt nevysvětluje pro začátečníky příliš názorně.
  • You don’t know JS je vaše Mekka. Dokud ji celou nepřečtete a nevyzkoušíte si nějaké testovací projekty, vůbec nechoďte na pohovor do rozumné firmy. Já přečetl polovinu a u pohovoru měl velké štěstí, ale nikomu dalšímu bych tuto hru s ohněm nedoporučil.

Co jsem si odnesl:

  • Přečtěte si You don’t know JS. Celé.
  • České knihy většinou nestojí za moc. Naučte se anglicky.

Online kurzy

Prošel jsem edX kurzem Introduction to React. Po výstupu z kurzu jsem si myslel, že mé znalosti o Reactu jsou už dostatečné na to, abych prošel výběrkem. Omyl. Musel jsem sníst ještě hodně polívky, abych React ovládl alespoň na základní úrovni.

Samotný Introduction to React od Microsoftu bych spíš nedoporučil a odkázal bych spíš na rozcestník literatury výše.

Co jsem si odnesl:

  • Kurz je dobrý a pravděpodobně nutný start, ale větší školou jsou reálné kodérské projekty.

Ostatní

Nejefektivnější způsob učení je dle mého stáž či mentorování. Je tak trochu paradoxem či spíše chybou, že jsem (pravděpodobně zahleděný do redesignu GameConu) jim věnoval nejméně času k prozkoumání. Nabízených stáží bylo (pro mně překvapivě) výrazně málo a oslovovat těch pár známých, co jsme spolu taky jednou pili pivo, aby mě mentorovali, mi přišlo hloupé. Zároveň jsem za takovou službu neuměl nabídnout nějaké zajímavější peníze.

Aby to ale celé nebylo smutné, dovolím si pár nákopů, které nemám osobně ozkoušené, ale myslím, že jsou dobrou cestou:

  1. Napsat na Facebook nebo Linked.in, že se chcete naučit Front-end a zda-li je vás ochoten někdo mentorovat. Nikoho nenutíte, ale zároveň je spousta lidí, kteří jsou ochotní předávat znalosti ostatním.
  2. Super začátek je freecodecamp.org. Provede vás prvními krůčky, všechno děláte v prohlížeči a úlohy se postupně ztěžují. Až se dostanete k zadání projektů, které vás naučí nejvíc. Code campem prošel můj kamarád Duli.
  3. Náš tým nabízí pozice Internů (stáží). Není to nějak zářně placené, ale pivo si z toho koupíte a hlavně: Je to (imho) výrazně efektivní cesta, jak se naučit front-end vývoj. Pod křídla si vás vezmou senioři (pravděpodobně mladší jak vy), kteří vám vše vysvětlí a začnete od menších věcí. A pokud budete pokračovat v cestě, za půl roku z vás může být juniorní vývojář (a tam už se platově dostáváte výrazně nad průměr).
    Na interny nebereme každého, je dobré umět v JavaScriptu napsat anonymní funkci a učit se i sami. Nicméně tuto cestu bych výrazně doporučil. Nejen, že se naučíte reálný vývoj, ale naučíte se i spoustu dalších věcí nutných pro přežití v moderní IT firmě. A také si díky mému/vašemu referalu koupíme novou sedačku.
  4. Bootcamp mi doporučil Balda. Bootcamp je super, protože je intenzivní a dlouhodobý, takže se toho naučíte spoustu (pokud to mentálně ustojíte), ale dáte za něj slušnější balík peněz. Zmínil bych ještě kurzy Javascriptu, ale dle mého názoru jsou to spíše jednorázové střely a ucelenější balík znalostí si z nich neodnesete. Oponujte mi, pokud se mýlím.

Co jsem si odnesl:

  • Naučte se základy s pomocí Freecodecamp.
  • Napište na Facebook, aby vás někdo mentoroval. Nejlépe běžte rovnou na stáž.

Výběrová řízení

V březnu jsem tedy pomalu ukončoval práce na Gameconu (více viz případová studie) a řekl jsem si “Už bych mohl vědět dost, abych se nechal zaměstnat.” Vyhlédl jsem si vysněnou firmu (Kentico), co měla všechny ty fancy věci, které moderní firmy mají: Kávovar s hromadou tlačítek, barevné sedačky, usměvavé lidi a byla 5 min na kole od domu. S úsměvem a novým blejzrem jsem vyšel vstříc prvnímu pohovoru. Přišel první náraz:

“Je Javascript synchronní nebo asynchronní jazyk?” Fuck, jak to mám vědět? Asynchronní? “Vyjmenujte životní cykly v Reactu.” Pfrr, tohle dělal na GC Duli, já to styloval. ComponentDidMount a ty další si nejsem jistý. “Takže co je Dependency Injection se vás asi nemá cenu ptát, že?” No, slyšel jsem to, někdy, nějak.

Pak to šlo už jen z kopce. Nekonečné kolečko mladých kočen z fildy, které sice neví, co je Javascript, ale zato ví, že za obsazení juniorní pozice dostanou 70 ticků na dřevo, takže zkouší své štěstí v přeplněném rybníce nekonečných head-hunterů:

Ona: “Od jedné do tří, jak byste ohodnotil své znalosti JavaScriptu?”
Já: “A co si mám představit řekněme za dvojkou?”
Ona: “No to já nevím, to musíte vědět vy.”
Ona: “Kdybyste se chtěl cokoliv zeptat, vůbec se nebojte.”
Já: “Jak tady pracujete? Používáte SCRUM?”
Ona: “No, abych se přiznala, já tady dělám HR externě a to je vlastně víc na ty vývojáře.”

Po pěti výběrových řízení šlo sebevědomí slušně dolů, ale vždycky je dobré mít kolem nějakou psycholožku, třeba moje přítelkyně mi řekla: “Hele, však sis řekl, že to vyzkoušíš. Vždycky se můžeš vrátit do YSoftu, kolikrát jsi říkal, jak super firma to je a jak jsi vlastně nechtěl odejít.”

Přichází další výběrové řízení: Testovací úkol na tři hodinky, splněno 7 bodů z 9, nakóděné pomocí jQuery. Aplikace běží jak víno, dokonce to i na šipky mění obrázky. Back-end vývojář Godric komentuje: “Jo, vypadá to dobře, ale hodně záleží, co chtějí.” Zpětná vazba přichází: “No, tak to bylo opravdu výrazně juniorní, oni potřebují přece jenom někoho zkušenějšího.”

Sebevědomí jde do háje. Doškrábu se na výběrové řízení do firmy, které jsem kódově začal říkat prasečák. Umístění v brněnských Horních Počernicích, zamřížovaná okna, vstup přes nakládací rampu. Na výběrko zapomněli rezervovat zasedačku, projdu skladem palet a pohovor probíhá v miniaturním kanclu plném nábytku z univerzalu. Business model je jednoduchý: Firma vyrábí džemy, ale dostala evropskou dotaci pro inovace, takže se majitel rozhodl nabrat bandu vývojářů, dát jim minikancl a nechat je vyvinout aplikaci na nabídku a poptávku služeb. Stopadesátou na trhu. Že to není konkurenceschopné, není podstatné, EU to zatáhne. Banda týpků: “Nikdy bych se nechtěl svazovat korporátem, tam ti furt říkají, co a jak máš dělat.” Neptali se na nic technického, vyjma toho, jestli jsem viděl někdy Angular (neviděl), ale to se prý rychle naučím. Jediná otázka byla, kdy nastoupím. Můj osud byl spřízněn už jen s prasečákem – firmě, která neví, co dělá a pro koho, ale nenechá se svazovat.

Prošel jsem celkově osmi výběrovými řízeními, než se to aspoň trochu zlomilo. A, tak jako všude na světě, pomohli k tomu kamarádi (moderně nazýváni jako “kontakty”). U Martina ve Webnode se uvolnila pozice front-end kodéra, přišel tedy první referal.

Měli nádherně vypracované zadání, které bylo

  • akurátní výzvou pro mé schopnosti
  • dost přesné a návodné
  • naučilo mě spoustu nových věcí.

Nádherné kanceláře v centru, silný příběh české firmy, která se vypracovala od nuly a dělá moji srdcovku – “Naklikej si sám” webovou stránku. Prošel jsem technickým kolem, kolem s ředitelem. Firmu jsem si zamiloval a přišla nabídka: Nástupní plat výrazně pod úrovní YSoftu a pod republikovým průměrem, ale co už, jsem junior a asi je to stále lepší jak prasečák za těmi okny s mřížemi.

Pak přišel člen třetí rodiny Vikki: “Zkus to k nám do Solaru, fakt, dneska berou každýho, co umí napsat npm install.” V depresivním stavu a ze setrvačnosti jsem se dokodrcal na výběrové řízení. Z předchozích výběrek jsem už trochu věděl, co čekat, takže jsem se naučil aspoň tu synchronicitu v Javascriptu, přečetl další kus You don’t know JS o přetypování a naučil se životní cykly Reactu. Měl jsem štěstí: Ptali se na synchronicitu, přetypování a životní cykly Reactu (a nějaké další znalosti, které jsem vyškrábal z vejšky a YSoftu). Něco jsem věděl, něco ne, neočekával jsem nic. Přišla nabídka s nadprůměrným platem. Dlouho jsem váhal, protože Webnode byla srdcovka a Solarwinds je nadnárodní korporace, kde jsem vůbec necítil, že bych jim měl co dát. Opět přispěchala na pomoc přítelkyně: “Hele, kdyby tě nechtěli, tak tě asi neberou, ne?” a Vikki “Chceš jít do lepší firmy. Teď ty znalosti třeba nemáš, ale rychle je získáš, rychle se posuneš a budeš za to vděčný. Uvidíš. Plus ti nabídli skoro o dvacet víc.” Nakonec jsem tedy zvolil Solarwinds.

Co jsem si odnesl:

  • Pokud vás odmítnou, říkejte si proaktivně o zpětnou vazbu. Rychle zjistíte, kde máte mezery a co se doučit.
  • Depresivní období je normální a bude to trvat. A ano, nemusí to vyjít. Připravte se na to, že úspěch není automatický a dopad může být tvrdý.
  • Neposlouchejte optimistické rady, že dnes berou v podstatě každýho, kdo má ruce a nohy a někdy viděl HTML. Není to tak. Berou dobrý lidi a ty špatný neberou.
  • Pokud volíte mezi více firmami, vždycky berte tu s lepším technologickým zázemím. Chcete se posouvat nahoru, a to rychle.

Ve firmě

Stejně jako každá jiná rozumná firma i naše má poměrně striktní politiku ohledně toho, co můžeme a co nemůžeme zveřejňovat, proto nemůžu napsat příliš konkrétních příkladů (ale můžete to zkusit na pivu) a budu psát spíš obecně.

První týdny a měsíce ve firmě byly jak přestoupit ze škodovky do stíhačky. Ostatním front-end vývojářům jsem nesahal ani po kotníky, ale ta rychlost, jakou mne byli schopni vyvést znalostně nahoru, byla jako nasadit si raketové boty.

Začátky kluka vod tiskáren jsou dycky těžký: Hodně jsem se učil, ptal, zkoušel, četl hromadu článků a seděl před Stack overflow. Nikdo mi za tu hromadu věcí, co jsem nevěděl, hlavu neusekl.

Začala se vracet investice do Gameconu. Díky tomu, že Gamecon nebyla parta kamarádů, ale spíše parta nesehraných a úplně rozdílných lidí, firma rychle rozpoznala, že umím komunikovat s ostatními lidmi a posouvat věci rychle dopředu: Víc než kódit jsem začal odstraňovat překážky a ladit procesy. Posun do role Scrum Mastera byl nabíledni. Senior si mě vzal pod křídla a rychle mě posouval nahoru ve znalosti kódu, kam jsem se posouval i platově.

Není to tak dávno, kdy korporáty byly terčem (i mého) hejtu. Standardní představa byla, že korporát znamená zatuchlá a zastaralá firma, která vám diktuje procesy a z celé té svázanosti jste smutní a nešťastní. Tak jen na vysvětlenou, ve většině IT firem (které jsem měl možnost poznat) tomu tak není a být ani nemůže. Firmy velice rychle rozpoznaly, že jejich cíl je vydělávat peníze a už otcové jako Uncle Bob nebo Martin Fowler (viz agilní manifest) rozpoznali, jak takovou věc dělat co nejefektivněji: Dát týmům volnou rukou.

Americké korporáty tlačí platy českých vývojářů (ale i IT lidí obecně) vzhůru. To má za důsledek dvě věci: Dělá to české firmy smutnými, protože nemají takové zisky, a korporáty šťastnými, protože mají ty nejlepší lidi na trhu. Senioři drží prst na tepu technologického vývoje a táhnou nahoru juniory, kteří se rychle chytnou a utvoří funkční, rychlý a moderní tým. Korporáty neustále tlačí na vzdělávání – stačí půl roku zaspat a už se na vás na konferencích budou dívat skrz prsty “Cože? Vy ještě neznáte React Hooks? Jste někde zaspali? Však to vyšlo už v únoru.”

Nejzajímavější benefit práce v IT korporátu (tedy min. v tom našem) je však nekonečná možnost rozvoje. Vždy je někdo nad vámi, kdo vás posouvá. Z juniora se stanete mediorem, z mediora seniorem. Ze seniora můžete být tech lead. Z tech leada se můžete stát architektem. A nebo ukročíte vedle a půjdete dělat Product Ownera. Nebo UX designéra. Nebo manažera. A když už narazíte na strop ve firmě, vždycky můžete jít do Google. Vždy je v čem se vzdělávat, kam se posouvat. Každý den. Nikdy nenarazíte na strop. Před dvěma lety, když jsem dostal po škole první rozumný plat, jsem myslel, že to je můj (jak platový, tak znalostní) strop a nahoru už to půjde jen velmi pomalu. So wrong!

Pohled zpět

Když se dívám zpětně na tu dva roky dlouhou cestu od opraváře tiskáren ke Scrum Masterovi/Front-end vývojáři, neřekl bych, že byla vyloženě snadná. Od “jsem Alenka v říši divů, nemluvte na mě prosím španělsky”, přes “jsem v depresi, nikdy mě programování nešlo a toto období je můj životní fail” až k “cítím, že dělám smysluplné věci v technologicky špičkové firmě”. A především: Je to zábava. Každý den se těším, co zase posuneme a cesta tam vůbec nekončí.

Co jsem si odnesl:

  • Korporáty nejsou zasmrádlé a rigidní firmy, právě naopak.
  • Možnosti rozvoje jsou nekonečné. Je to hrozně dobrý a získávat neustále nové znalosti je super pocit.

Chtěli jste být taky vývojářem?

Co mě celá ta sranda stála? Psychickou bolest.

  1. První přišla, když jsem se začal orientovat v moderním front-end vývoji a říkal si, že vůbec netuším, která bije, a neexistuje cesta, jak se to v rozumném čase naučit.
  2. Druhá přišla s výběrovými řízení, která mne vrátila zpátky na zem a nebylo vůbec snadné to zkoušet dál (a dál).
  3. Třetí přišla po nástupu do firmy, kdy jsem si uvědomil, co všechno nevím a je potřeba se doučit.

Stálo to nějaké peníze, které jsem musel ušetřit pro rok bez práce. Stálo to nějaký pot a krev, kdy se člověk učí hromadu nových věcí a nemá se koho zeptat na radu. A stálo to tvrdé rozhodnutí, že to zkusím proriskovat, vydržet a uvidíme, co se stane.

Proriskoval jsem to a vyšlo to. Každému to vyjít nemusí a může z toho být nějaký smutek. Na planetě máme jen jeden čas a byla by škoda ho nevyužít, protože se člověk obává, že

  • na to nemá buňky,
  • to nevyjde,
  • se to nejde naučit,
  • to není pro něj,
  • najdi jiný náhodný důvod.

Pokud to myslíte vážně, připravte se na nejhorší a začněte se učit. Jo a Gamecon je dobrej testovací projekt a ajťák by se jim teď víc než hodil. A nám se hodí ti internisti. A taky nová sedačka do obýváku.

Komentáře

Subscribe
Upozornit na
guest
11 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Petr

Dobře čtivý a hodně inspirativní článek! :-)

Zdenek

Zajimalo by mne, proc takova zmena je tak narocna na cas a hlavne schopnosti?

Citis porad nevýhodu, ze nemas vystudovany IT?
Myslis si, ze lidi, kteri maji IT background, jsou na tom lepe?

Jarda

Cca před 3mi lety jsem udělla podobnou změnu… Teď si říkám – proč jen jsem to neudělal dříve…
Dostal jsem se k zajímavým projektům a někteří lidé vůbec netuší, že nemám vystudované IT… Co se týče znalostí? Člověk se musí pořád něco učit, ale nepřipadá mi, že bych odváděl horší práci, než lidi, kteří mají IT vystudované…

Venda

V naší nejmenované firmě jsou těmi top lidmi na kterých celé IT stojí obyčejní středoškoláci bez titulu, jež střední studovali v době, kdy v Čechách ještě o IT nikdo skoro nic nevěděl. Stačilo aby je jen bavily výzvy a měli trochu inteligence, logické myšlení se širokým záběrem, často selský rozum a to své nadšení do nových věcí. Je to jen o chuti, trošku o objevování, o kolezích, částečně o štěstí, ale především o praxi. Školy do IT moc nepřinášejí, pokud tedy nepočítám doktorské programy na těch lepších VŠ, kde to je o grantech a vysoké koncentraci inteligence a zapáleného týmu.

Michal

Díky za postřehy ze života začínajícího programátora! Napsáno čtivě, dostatečně obsáhle a hlavně jde o reálné zážitky. To se dnes ve světě povrchních a odněkud opsaných plků moc nevidí.

Kata

Skvělej článek, jdu do toho taky!

Vlasta

Ahoj, díky za skvělý článek! Musím říct, že pro mě je to neskutečně bolestivé a frustrující, celý ten začátek. Už půl roku se plácám v základních konstrukcích (studuji k tomu vysokou školu úplně jiného zaměření) a bojím se, že jsem beznadějný případ. Jakmile mám vymyslet nějaký komplexní program, jsem úplně ztracená.
Přítel měl podobnou cestu jako ty – zkrátka si jednoho dne sedl a rok nebo dva poté (také mezi tím pracoval na půl úvazku) ho zaměstnali jako vývojáře. Měl své momenty dole i nahoře, ale nakonec se dokázal někam posunout – a třeba moje problémy s chápáním OOP dnes nedokáže úplně pochopit, protože to jsou pro něj už naprosté základy. Celou dobu tohoto jeho procesu učení a úspěchu jsem prožívala s ním, a ačkoliv by mi to mohlo být dobrou inspirací, že i já bych to mohla zvládnout, bojím se a cítím se strašně nejistě. Ale rozhodně to nechci vzdávat. :-)

anonym

Já si tento článek poprvé přečetl v lednu roku 2020 a pak ještě 4x v průběhu nějaké doby. Článek nádherně popisuje všechno to, čím si teď procházím. Pokud bude mít tedy někdo tu chuť si přečíst trochu delší záznam a možná si i zkazit náladu, tak je vám k dispozici. Já jen doufám, že těm vám, co jsou na tom teď podobně, tak to i něco dá a bude spíše k úžitku než zármutku.

Rok 2020. Tenkrát jsem pracoval jako backend vývojář v malé firmě, kde jsme si několikrát sáhli i na frontend. Už je to nějakých pár let, od doby co jsem si javascript oblíbil. Postupem času jsem se v něm zdokonaloval, psal spoustu malých užitečných scriptů, učil se nové vychytávky co přináší ecmascript a technologie, koukal na videa, četl si kód jinejch vývojářů, atd… S javascriptem problém nebyl, ale jelikož jsem převážně pracoval jako backend vývojář, tak jsem neměl žádné znalosti ohledně html+css a ani js jako takového do hloubky. Ani jsem to tenkrát nepotřeboval, nedělal jsem práci frontend vývojáře. Nicméně přišla změna, backend mě přestal bavit, přestala mě bavit i práce, kterou jsem jinak dělal už 4. roky. Jediné co mě povzbuzovalo bylo, když v práci potřebovali udělat něco malého přes js. Tenkrát jsem si tenhle článek přečetl podruhé, bylo ještě hodně co dohánět, na změnu ale nebylo ani pomyšlení. Jednoho dne ale přišlo zadání, kdy jsem měl převážnou část udělat pouze v js, což mi znovu vrátilo chuť do života. Byla to větší prezentační aplikace, která potřebovala oživit trochou dynamiky. Grafika již byla hotová, šlo pouze jen o js, nicméně byla velká a já neměl tolik potřebných znalostí co dnes. Pustil jsem se tedy do práce, ale jelikož jsem na ni dělal sám, trvalo mi to týdny. S animacemi problém nebyl, ale se stavem aplikace už ano. Tenkrát jsem ani nevěděl, že takový termín vůbec existuje, jelikož jsem se s tím v práci nikdy nesetkal, psal jsem totiž opravdu jednoduché scripty a spíše upravoval malou funkčnost, než psal celé aplikace od začátku, navíc jsme na tom ve firmě byli všichni víceméně stejně. Tenkrát to byl můj první náraz. Strávil jsem nad tím týdny, ale docházel mi čas, nemohl jsem si s tím hrát do nekonečna, protože to klient potřeboval mít co nejdříve hotové. Musel jsem to tedy v rychlosti nějak udělat, což mě ale štvalo, protože všechno až na ten stav bylo dokonalé. Po krátké době jsem zjistil o co šlo, bohužel upravit tu aplikaci jsem již nemohl, jelikož mě čekalo spoustu práce v úplně jiném odvětví, které mě už jinak vůbec nebavilo. Řekl jsem si tedy, že se do frontendu ponořím ještě víc, naučím se konečně html+css a zjistím si něco víc i o tom, jak funguje js u větších aplikací, a nakonec pak změním i práci. Tenkrát jsem si tenhle článek přečetl již potřetí, ale ve srovnání s prvním a druhým obdobím, jsem na tom byl vědomostně i pocitově o něco lépe. Uběhlo pár měsíců a já se tedy rozhodl, že to zkusím ve frontendu. Podal jsem tedy výpověď a začal hledat práci jinde. Dlouho jsem hledat nemusel, přišel totiž známý s tím, že jeho známý právě shání frontend vývojáře. Dohodli jsme se tedy se známým známého, že se víc poznáme a kdybychom si padli do oka, tak budeme spolupracovat i dál. Bohužel ale šlo o tým ze 3 lidí, kde se všichni až na mě, věnovali úplně něčemu jinému. Jako junior jsem tedy neměl nikoho, od koho bych se mohl učit a dělat svou práci správně. Řekl jsem si tedy, že to zkusím nejdříve u větších firem. Zkoušet jsem začal od začátku ledna tohoto roku. První týden jsem napsal 3. firmám, dvě z nich se mi ozvaly hned a poslaly testové zadání. Testová zadání byla pro mě jednoduchá, zvládl jsem obojí. Bohužel ale byla trochu větší a pracnější, potřeboval jsem na ně tedy nějaký čas, limit ale byl jen jeden týden. Řekl jsem si tedy, že se vrhnu nejdřív na to jednodušší, aby případně, kdybych nestihl obojí, tak měl alespoň nějakou šanci u té jedné z nich. To jednodušší jsem tedy stihl a odeslal, to složitější jsem dodělal o dva dny později, ale nabídka již nebyla k dispozici. Přišel tedy můj první pohovor, jelikož to byl ale můj první pohovor po čtyřech letech – a já nejsem v komunikaci s lidmi, které vidím poprvé – moc silný, tak jsem začal trochu „nervačit“. Na začátku ale k mému velkému překvapení mi bylo řečeno, že se jim to vypracované zadání líbilo. Byla k tomu sice i nějaká malá připomínka, nicméně mě to stejně trochu uklidnilo. Pak to ale bylo horší, začalo se zjišťovat co všechno umím a neumím a bohužel toho co neumím bylo mnohem více. Konkrétně jsem nevěděl skoro nic o problematice SEO, bezpečnosti aplikací, GITu, preprocesoru, testování a CI/CD. Sem tam jsem občas kdysi něco zaslechl, ale v životě jsem neměl potřebu něco z tohodle použít. Navíc jsem čekal, že nejvíce otázek bude ohledně js a pak i html+css, k mému velkému neštěstí se na tohle ale nikdo neptal. Neměl jsem z pohovoru dobrý pocit a na nic nečekal. Projel jsem si všechno co jsem nevěděl a za dva týdny začal psát dalším firmám. Napsal jsem třem firmám a čekal, že se mi někdo ozve stejně tak rychle a ve stejný týden, jako první dvě, což byl ale omyl. Nechtěl jsem psát více firmám, protože z předchozích zkušeností jsem si myslel, že by se mohlo stát, že mi znovu pošlou testová zadání s limitem na jeden týden a já stihnu udělat pouze jedno, pak bych u zbytku firem, které se mi líbily neměl poté šanci, kdyby to skončilo znovu neúspěchem. Nicméně po týdnu čekání nepřišla odpověď ani od jedné z firem. Dostal jsem tedy další zkušenost a řekl si, že budu psát alespoň pěti firmám týdně. Uběhly dva týdny, napsal jsem již 10 firmám a žádná odpověď. Řekl jsem si tedy, že budu psát alespoň 10 firmám týdně. Na začátku týdne jsem tedy začal rozesílat svůj životopis a po chvilce mi přišla odpověď z firmy, které jsem napsal před dvěma týdny. Chtěla, abych ocenil dobu, po kterou bych jim stihl nakódovat a nasadit webovou stránku na wordpress, a také ukázku mé práce, aby o mně měli nějakou představu. Napsal jsem jim tedy časový odhad a poslal svůj github, odpověď ale žádná. Po dalším týdnu rozesílání (což dávalo dohromady něco přes 25 rozeslaných životopisů) se už konečně začaly ozívat další, bohužel ale né s pozitivními zprávami. Někdo psal už rovnou, že hledá někoho zkušenějšího. Někdo volal, zjišťoval si o mně informace a to co mě motivuje, s tím, že mi na konci týdne tedy pošle testové zadání, místo kterého mi jinak byl poslán e-mail, že hledá někoho zkušenějšího. Někdo si se mnou domlouval pohovor, ale po týdnu, když měly přijít výsledky, tak mi bylo buď řečeno, že ve mně nebyl vidět zájem o danou pozici a proto ji dali někomu, v kom ten zájem vidět byl, nebo, že před pár dny k sobě přijali někoho zkušenějšího a že nevědí co teď se mnou, jelikož ani o mě nechtějí přijít, ale momentálně nemají volné místo k dispozici. Dělo se nakonec i to, kdy už to vypadalo opravdu nadějně. Do jedné firmy jsem musel přijít osobně i přes covidovou situaci, kde jsem následně dostal zadání na 30 minut, které jsem z 85% zvládl. Neměl jsem ani problém s nervozitou, jako tomu bylo na začátku, dokonce to působilo i tak, že jsem se jim líbil i jako člověk. Výsledky jsem se tedy měl dozvědět za týden, za týden jsem se ale dozvěděl, že hledají někoho seniornějšího, ale že si kontakt na mě rádi ponechají a po nějaké době znovu ozvou. U další firmy také nebyl problém s testovým zadáním. Trochu menší problém byl spíše pro mě ten, že jsem si u ni prošel 4. kolem výběrového řízení, seznámil se všemi členy týmu, i tím jak to u nich funguje, což trvalo 3. týdny, ale nakonec se dozvěděl, že stejně hledají někoho zkušenějšího. Stávalo se, že jsem našel firmu, která měla v nabídce uvedeno vše potřebné, co jsem měl uvedené já ve svém cv, ale odpověď od nich mi přišla rovnou s tím, že nesplňuji jejich požadavky.

Můj komentář bude pravděpodobně delší než článek, i když podle autorova článku mu tato cesta trvala déle než mně. Já si tímto momentálně procházím už 3. měsíc, napsal jsem již víc než 35 firmám, ale pořád bez úspěchu. Psát pořád a znovu dokola novým firmám, pořád se jim představovat, odpovídat na stejné otázky, zažívat víceméně stejné chování, investovat do toho týdny a nakonec dostávat odmítnutí, je neskutečně vyčerpávající a demotivující proces. Proto si tento článek pročítám už po 4. Odsud čerpám alespoň trochu inspirace a síly, a díky tomu se to snažím nevzdávat. Díky tomuto článku totiž vím, že nejsem jediný kdo tohle někdy zažil, a že ten problém nespočívá až tak moc ve mně. Častokrát podle chování některých firem začínám pochybovat o tom, zda-li hledají vůbec posilu do týmu a začínám tak mít pocit, že jim je jedno, že člověk umí úplně všechno co potřebují, ale spíš je za tím ještě něco, co buď do požadavků nabídky nepíšou a nebo, že sami ve skutečnosti nevědí co chtějí.

Přeji jinak mnoho úspěchů všem, co si něčím podobným právě prochází, nebo se o to terpve budou pokoušet.
Ještě bych chtěl dát jednu radu na konec: Pokud teprve začínáte, hledejte si jen ty pracovní nabídky, kde je alespoň jednou napsané slovo „junior“ (nebo se jich na to aspoň zeptejte), ušetříte si tím spoustu času. Spousta firem totiž nenapíše koho hledá, nevyjasní to ani svými požadavky, a ani testovými zadání, které můžete úplně jednoduše udělat a myslet si, že nejspíš nebudou hledat žádného profíka.

David B.

Diky za supr i vtipny clanek. U me osobne resim co konkretne (FE vs. BE) by me bavilo. Navic jsem ukoncil posledni praci a musim co nejdriv nastopit do jine a uz bych rad do IT. Ukoncuju dlouhodoby kurz na uplne zaklady Python, PostgreSQL, Django, FE letecky.. Jak se rika cim vic o IT oboru vim tim min toho vim. I diky tomuhle clanku zvazuju ze se do IT dostanu nejdriv spis oklikou, pres organizacni / vedouci pozice okolo a pak se uvidi. Mam zkusenosti jako projektovy manager z jineho oboru a jsem vic obecny typ nez resit konkretni tema dlouhodobe do hloubky. Takze mozna to berte jako tip jak se dostat do IT. Ruznych pozic v IT sektoru jsou nyni kvanta, ne na vsechny je potreba umet dobre kodit dokonce i jako PM nekde nemusi byt zkusenosti z IT. Pak uz je to jako vsude o kontaktech, trpelivosti a neustalem uceni se. IT zdar :).

Tomas

Ahoj Michale, v první řadě bych rád poděkoval za článek byl fajn, ani dlouhý ani krátký, pěkně výstižný.
Chtěl bych k tomuhle nekonečnému tématu taky něco přidat, při startu když jsi žádal o novou pozici jsi měl již několik výhod, aspon z toho článku jsem nabyl takového dojmu:
1. máš VŠ (něco v IT?)
2. umíš pravděpodobně anglicky
Tyhle dvě věci mají neskutečný vliv a plus na budoucího zaměstnavatele.
Co nechápu jak VŠ pracoval jako opravář tiskáren ?
A co je poslední věc: tak jsi vlastně dostal práci diky kamarádům, kontaktům. To se taky málokdy stává, přece jen člověk těžko proniká do IT a komunity obecně, i když se dost mluví že je to opak ja to tak nevnímám.
Je plno schopných lidí co se do IT nedostali, nebo nedostanou, je to hodně o náhodně, o štěstí.
Btw ano jsem dost naštvaný a zklamaný proto to asi takhle píšu.
Když jsem poslal CV nikdo mě nikdy na osobní pohovor ani do prvního kola nepozval. Takže tak.
Jinak hodně štěstí, mej se Tom

Karolko

Nemusite byt rozhorceny. Nieste sam. Pretlak juniorov je skutocny. Zhrniem v jednej osobe Karolka viacero asi 5 osob.

Karolko ma nejaku technicku vysoku skolu nieje to debil v supliku stola ma diplom z okresnej matematickej olympiady, odkedy ma pocitac nieje mu cudzie programovanie. Zaklady php/html/css/js okusili uz davno ked robili znamemu firemny web. Lenze vtedy to robili iba tak pre zabavu ako vykendovy projekt. Ako student sa zamestnal v miestnej firme kde projektovali v nejakom CADe relativne dobre platili a do hry prisla rodina, deti tak tam uz zostal.

V 38 sa rozhodol ze zmeni remeslo na frontend webarinu ved vsade to vytrubuju ake je to dobre platene a ziadane a dolezite a beru vsetko a, a, a… …ved nakoniec uz robil kedisi web s JS. Tak v tom pokracovat predsa nemoze byt problem!

Jeho kamarat Jano robi webarinu na volnej nohe uz vyse dekadu. Nadava ze nic nestiha, ale pri otazke ci nehlada Juniora sa dobreze nepokusa skryt pod klavesnicu. Jano mu iba da rady co sa treba naucit a nech skusi na portaloch ze mu isto odpisu ked bude mat nieco na Githube. Karolko teda zacne skusat, casom zisti ze ten Angular je casovo ovela narocnejsi nez si myslel takze da vypoved v praci a vrhne sa do samostudia. Zabije samoucenim pol rok. Github ma uz zaplneny prvotinamy ale praca este stale ziadna! Sice tu a tam niekdo ozve, ale zmluva z toho zatial nieje ziadna. Chcu trochu vacsie skusenosti nejaky backend atd… kazdy nieco trochu ine.

Skusil nerad ale predsa korporat. Prvy korporat mu dal online vstupny test z JS plny chytakov ktory nestihol vyplnit v casovom ramci. V dalsom korporate sa znova stretol s online testom a ihned cez vzdialenu plochu to nechal podvodne vyplnit Janom a ten to cuduj sa svete nedal tiez. (btw toto je naozaj skutocny pribeh). Skusil este jeden korporat a vstupny test nechal vyplnit chalanovy co zaraba mesacne 4k eur a ten to nedal ani na 50% aj to malo iba vdaka poslednej programovacej ulohe na konci (tiez skutocny pribeh) ku ktorej by sa Karolko anilen nedostal ak by sa snaizl vyplnit tentest. Bola mu ponuknuta praca testera a nahadzovaca html sablon ktoru odmietol. Bez poriadneho portfolia to proste nejde!

Manzekla uz straca nervy, nema chut tahat domacnost sama, on toho ma tiez plne zuby sediet furt doma zadarmo za pocitacom. Skusil Webtrh nepomohol. Jediny potencialny klient sa nevedel poriadne vyjadrit co chce. Taktiez Jano mu nedokazal dohodit projekt. Tohtorocny pobyt v chorvatsku uz padol. Niesu peniaze.

A tak sa Karolko vrati po 1,5 roku do povodneho zamestnania. Sef sa neuspesne pokusal tajit radost z jeho navratu lebo vo firme robil ovela ovela viac nez projektanta. Aby nebol tak smutny sef mu da prvu pracu. Prerobit stary firemny web…. :)

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.