Často se setkávám s názorem, že webový vývojář je takový neumětel informatik, co se špatně učil a neměl na to, aby skončil v Google, Facebooku nebo IBM.

Klientům se zdá, že by jeho práci zvládli za týden sami. Java programátoři z velkých firem, kteří jsou obecně považování za jakýsi etalon dobrého programátora, se na něj dívají jako na póvl.

Jaká je pravda? Co všechno musí umět takový webový vývojář?

Patrik Šíma
Patrik Šímajednatel

Dobrý vývojář se musí stále učit

Každý problém, který je mu předložen, je obvykle nový a pokud řešení nevygoogluje, musí si na něj přijít sám. Nikdo mu nepomůže. Z toho taky plyne, že být vývojářem neznamená jen psát kód. To je totiž často zlomek práce. Větší část zabere vymyslet řešení.

Co by měl tedy webový vývojář umět? Zdůrazňuji především slovo webový. Vycházím z našich vlastních letitých zkušeností.

Samozřejmostí je ovládat dokonale algoritmizaci, programovací jazyk, v našem případě PHP a objektové programování. K tomu je důležité psát kód čistě a čitelně. Lze k tomu využít nějaký standard pro psaní kódu, například světově známý PSR. Standardy podporují i rozšířené IDE (Sublime, Atom, PHPStorm, NetBeans) , takže již není problém přizpůsobit styl psaní kódu potřebám konkrétního projektu.

Výborně znát svůj operační systém a editor. Je totiž tím samým, co pro truhláře kladívko, dlátko, pila…

Weby se neobejdou bez databází. V našem případě musí umět databázi MySQL. Nejen nainstalovat a nastavit, ale i běžnou práci. Vědět, co jsou cizí klíče, indexy, umět joiny, vědět jaký je rozdíl mezi left join, join. Dokonale znát normální formy a vědět, kdy si může dovolit toto pravidlo porušit. Musí vědět, na co použít engine MyISAM a na co zase InnoDB.

Webový server Apache nebo nginx je jeho kamarád. Ví, jak nastavit virtual hosty a kde najde hosts soubor. Umí vytvořit a zapisovat rewrite pravidla v .htaccess, zakázat roboty, IP adresy, využívat cache apod.

Úplně nejlépe, když je linuxák nebo alespoň jablíčkář. Umí používat terminál a na myš sáhne, jen když už není zbytí. Umí skriptovat, zná klávesové zkratky a celou dobu přemýšlí jen nad tím, jak zrychlit a zefektivnit svou práci.

Dalo by se s nadsázkou napsat, že správný vývojář je mazaný a líný.

Mindset aneb nastavení mysli

Dobrý vývojář vždy nejdříve měří a pak řeže. Umí svou práci promyslet, vizualizovat, přemýšlet nad složitostí, efektivitou, zátěží a škálovatelností. Zároveň není perfekcionista, chápe, že realita je o něčem jiném než o nekonečném refactoringu a honbou za zdánlivou dokonalostí.

Umí se do problému inženýrsky vložit (a je jedno, že nemá titul). Fanaticky prahne po informacích, nových technologiích a řešeních. Tráví hodiny zkoumáním kódu velikánů. Webový vývojář je takový univerzální voják. Musí, alespoň okrajově, umět všechno.

Operační systém a editor

Neznat svůj operační systém a nevyužívat možností svého editoru je to samé, jako by automechanik nevěděl, kde má nářadí, nebo neuměl rozebrat motor. Od profíka se čeká, že nepotřebuje v tomto radit a ovládá svůj demokraticky zvolený operační systém a editor dokonale. Pokud ne, nemá právo horovat, že tenhle je lepší než támhle ten.

Klávesové zkratky, rychlé přepínání projektů, nastavení tria Apache/nginx+MySQL+PHP je samozřejmostí.

Nástroje

Od moderního vývojáře se očekává, že vždy svůj kód verzuje, tzn. používá Git a má účet u služeb typu Github, Bitbucket, GitLab a umí s nimi pracovat. Nebojí se pracovat s větvemi, popřípadě rovnou sáhne ke git-flow.

Klasický (L)AMP nechává amatérům a používá Docker.

Samozřejmostí je Composer. Tuší co je Travis. Dokáže lehce dopsat task do Gulpu. Zná NodeJS.

Nebojí se HTML, CSS, SASSu, jQuery nebo čistého JavaScriptu. Nemá problém se bleskově doučit React, Angular, Vue alespoň tak, aby dokázal upravit šablonu a vyřešit problém.

Zcela zásadně se nepouští do hloupých diskuzí, zda je lepší X nebo Y, protože ví, že na problém A je nejlepší X a na problém B zase Y. Vše má své výhody a nevýhody. A skvělý vývojář umí najít takové řešení, kde se maximalizují výhody a minimalizují nevýhody.

PS: Obor se tak rychle vyvíjí, že výše uvedené nástroje a doporučení již nemusí platit.

Kvalita

Dobrý vývojář ví, že pracuje pro lidi a jeho dílo budou používat právě lidi. Nikdy si nedovolí vypustit na produkci neotestovaný kód, nedej bože formulář s anglickými chybovými hláškami nebo design, který se na mobilních telefonech nedá používat.

Nikdy neargumentuje tak, aby si usnadnil práci, zatímco uživatelům ji znepříjemnil. Dobrý vývojář ví, že skvělý uživatelský prožitek znamená hodně práce. Ale spokojený uživatel = spokojený klient.

Komunikace

Doby sklepních nerdů jsou dávno pryč. Od profíka se očekává skvělá komunikace. Že byste na hovor od šéfa neposlali alespoň SMS, že zavoláte později, protože jste zrovna s přítelkyní na obědě, o tom ani neuvažujte.

Že by tým týden nevěděl na čem děláte, je rovněž nepřijatelné. Dobrý vývojář ví, že pravidelná a rutinní komunikace je základem jeho práce.

Umí si na to najít čas, aby pracoval efektivně. Samozřejmostí je dokonalé ovládání e-mailu, například metodou Zero Inbox. Umí využít běžné IM (Facebook, Skype, Whatsapp), někdy slyšel o Slacku, Basecampu nebo Asaně. Nejlépe, když ovládá rovnou jejich API.

Dobrý vývojář ví, že nestačí si jen myslet, že víte, ale je třeba to dokázat. Často tedy své znalosti publikuje. Ví, že si tak ujasní myšlenky, ověří hypotézy, dostane zpětnou vazbu a buduje renomé.

Vzdělávání

Dobrý webový vývojář pravidelně sleduje novinky z oboru, především v angličtině na zahraničních serverech (SitePoint, Smashing Magazine, Six Revisions, z domácích zdrojů třeba blog Jakuba Vrány, Root.cz). A dokáže přemýšlet o jejich použití ve stávajících projektech.

A na závěr: Dobrý vývojář může být i holka! Bez ironie.

Napište mi pokud chcete být dobrým vývojářem

Jsme tady, abychom vám pomohli!

Prostřednictvím nápadů, zkušeností a inovací