Kodéřina to je dřina – co by měl umět dobrý kodér?

Na webtrhu se rozpoutala diskuze o tom, co by měl umět kodér. Do této diskuze jsem se zapojil a očividně se má reakce nesetkala s pochopením. Buď neumím dobře vysvětlit své zkušenosti nebo to diskutující nechtějí raději slyšet. Kodéřina totiž není jednoduchá a výrazně se mění v čase. Rozhodl jsem se, že o tom napíši článek, kde využiji své zkušenosti za posledních 8 let. Plaváček by mě možná ještě doplnil, protože jeho zkušenosti jsou 2× delší.

Kodér jako úzce profilovaný odborník

Pro začátek je dobré ujasnit si pár věcí, je rok 2012 a podíl prohlížeče IE6 je zanedbatelný a beztabulkový layout je samozřejmost. Čili umět převést PSD do podoby HTML stránky je nepoměrně jednodušší než před lety. Obzvlášť pokud využijeme nějaký framework a CSS preprocesor (LESS, SASS). Samozřejmě nám to může zkomplikovat/ulehčit HTML5 a CSS3. Nicméně stále málo lidi využívá tyto nové možnosti na maximum včetně mě (což je samozřejmě chyba, ale často je to požadavek klienta, protože pak s kódem pracují i programátoři, kteří pochopitelně tyto novinky neznají). Také již můžeme konečně používat vlastní písma bez Cufonů a podobných zvěrstev. Možnosti se tedy neustále rozšiřují a práce je příjemnější.

Pro část kodérů v této fázi práce končí. Perfektně převedou dodanou grafiku na statickou stránku. Výsledek pošlou mejlem, protože GIT či SVN to je přece záležitost čistě programátorská! Nic dalšího je nezajímá a sází jeden web za druhým jak Baťa cvičky. Pokud je to baví, tak na tom není nic špatného. Poptávka po takových lidech asi ještě pár let bude. Nicméně statických webů zůstává minimum, většina je dnes dynamických, a proto se posunujeme dále.

Kodér jako všestranný odborník

Kodér pracovně nazvaný „druhé úrovně“ (senior, atd.), pro kterého práce nekončí odevzdáním statické verze. Zajímá ho výsledek a tak jeho práce končí předáním díla zákazníkovi (a u některých projektů nikdy, protože se neustále stránky vyvíjí na základě A/B testů či připomínek zákazníků).

U některých firem je to tak, že se první převod outsourcuje (aby se ušetřil čas odborníka). Nyní tedy nastupuje kodér druhé úrovně, který rozdělané dílo dokončí. Ke své práci již potřebuje mnohem více znalostí, protože se již prakticky vždy dostanete do styku s CMS, webovým serverem a verzovacími systémy. CMS je většinou vlastní proprietární s omezenou dokumentací, občas OS CMS (kde bývá dokumentace lepší). Úkolem je toto vše poskládat dohromady v jeden funkční celek. Málokdy vám někdo přesně řekně jak na to, většinou se to musíte postupně naučit sami a udělat si v tom systém.

Znalosti kodéra druhé úrovně by měly zahrnovat průřez všemi oblastmi od jednodušších úprav grafiky (Photoshop), znalost programování (většina šablon je v PHP nebo je využito šablon typu Smarty či Nette, každopádne jejich filozofie vždy vychází z programátorského základu) až po znalost vlastní pracovní stanice (vědět jak vyřešit běžné problémy). Nikdo po vás nechce, abyste byl špičkový grafik, programátor a serverový guru v jedné osobě. Důležité je obecné povědomí o všech aspektech vývoje, aby kodér věděl, kde je problém a mohl ho vyřešit sám, pokud se jedná o banalitu (například s pomocí Google). Ujišťuji vás, že každý kolega vás bude nenávidět, pokud ho budete otravovat neustále s drobnostmi.

Záměrně nebudu uvádět soupis konkrétních znalostí, protože je to napříč firmami rozdílné (a není to až tak podstatné). Jediná otázka je, zda chcete být kodér první nebo druhé kategorie?

Pokud máte jiný názor, budu rád, pokud mi napíšete vaše zkušenosti.



Komentáře

  1. Pavel 31.01.13 09:21

    Comment Arrow

    Soupis konkrétních znalostí (s detailním popisem) je přesně ta „drobnost“, díky které by se tento článek dostal z „první“ kategorie do „druhé“.

    Jinými slovy. Téma je dobré, ale chybí tomu ten seznam znalostí, který každého zajímá.


  2. Pari 31.01.13 14:22

    Comment Arrow

    Pavel: Děkuji za komentář, zřejmě jste článek pochopil jinak, než jsem zamýšlel :-) Konkrétní znalosti rychle zastarávají a důležité je mít především obecný přehled o možnostech té které technologie a neustále se vzdělávat.

    Když to uvedu na příkladu, pokud se půjdete hlásit do firmy na místo kodéra, tak určitě nebude podstatné, zda znáte všechny možnosti CSS3 napříč různými prohlížeči. Důležité je vědět že existují a kde si to najít.


  3. Pavel 31.01.13 17:04

    Comment Arrow

    Článek jsem pochopil. Jen myslím, že pro čtenáře místo nicneříkající věty „Kodér by měl mít všeobecný přehled“ by byla mnohem užitečnější věta typu „Kodér by měl znát tyto věci: HTML5, CSS3, GIT,… (následuje seznam znalostí/technologií)“.

    Pro přehlednost by bylo dobré, kdyby článek byl rozdělen do sekcí „must have“, „should have“, „nice to have“.

    Téma je velmi dobře zvolené, avšak konkrétní příklady by byly mnohem užitečnější než všeobecné fráze.

    Těším se na pokračování :-)


  4. Pari 31.01.13 19:05

    Comment Arrow

    Dobře, ale pořád jsou to jen obecné pojmy, když napíšete HTML5 co to přesně zahrnuje? Zatím to není standard, takže konečná definice neexistuje. CSS3 to stejné… a GIT? Máme ještě starší SVN, případně jiný verzovací systém Mercurial, atd. Který by tak měl umět? Každá firma používá jiný… zkrátka chcete exaktní odpověď, ale ta neexistuje. Pokud si myslíte, že na ni znáte odpověď, můžete ji sepsat a rád na vás uvedu odkaz.




O autorovi

Pari

Vítejte na mém blogu, rád bych se v krátkosti představil. Je mi 26 let. Momentálně nejvíce času věnuji projektu Lepime.cz - obchod se samolepkami na zeď a tvorbě webů postavených na redakčním systému Drupal pod značkou MEPA.CZ.