The art of technology

Blog

Back

Junior nebo senior?

Technology
Junior nebo senior?

V IT světě se pohybuji již více než 20 let. Za tu dobu jsem vystřídal několik firem, kde jsem se postupně vypracoval z juniora, který ani nevěděl, jak v PHP správně procházet polem, do role team leadera, mentora a nakonec i školitele. Následně jsem založil firmu ApiTree, která má dnes více než 30 kolegů.

Během své profesní kariéry jsem se potkal s geniálními lidmi a stejně tak i s patlaly, kteří zůstali věčnými juniory, ač jejich profesní kariéra trvala již mnoho let. Současně s tím mám za sebou desítky a možná i stovky pohovorů. Velkou součástí mého nynějšího profesního života je hodnocení lidí a určování, kdo jaký má “skill”. Jak je to tedy s těmi seniory vs juniory, či chcete-li, mediory?

Říká se, že rozdíl mezi juniorem a seniorem jsou asi tři roky :) To je samozřejmě jedna velká lež. Je docela běžnou praxí, že se člověk setká s kandidátem, který má sice vyšperkované CV, ale jeho reálná znalost je ořezána na nutné minimum, které potřeboval ve svém posledním zaměstnání. Stejně tak lze najít lidi, kteří někde na své cestě životem ztratili sebereflexi. Student po škole skutečně nebude mít znalosti jako člověk, který se již profesně setkal s reálným projektem, úspěchy i neúspěchy.

Každá firma, každý pohovorující má samozřejmě jiný pohled na to, kdo je senior a kdo junior. Nicméně často naleznete společné prvky, a tím je všeobecný přehled. Je sice hezké, že umíte ten či onen framework či knihovnu, ale pokud nerozumíte kontextu, tak prostě zůstáváte juniorem. Proto, když pohovoruji lidi na React, tak se na React téměř vůbec neptám. Důvodem je, že je to jen knihovna, jedna z mnoha. Navíc tak stupidně jednoduchá, že pokud znáte kontext, tak React je už pouze nástrojem. Věřím tomu, že zkušený Angularista bude během pár dní schopen psát v Reactu a zase naopak.

Jeden příklad z praxe:

Občas se webových vývojářů ptám na to, jaké znají HTTP metody. Odpovědí je často svatá čtveřice: GET, POST, PUT, DELETE. To je sice hezké, ale jaký je mezi nimi rozdíl? Například mezi GET a POST? A teď nemyslím z pohledu RESTu, ale obecně. A co metoda OPTIONS? Slyšeli jste o ní někdy? To je právě onen kontext. Základní znalost HTTP protokolu - však s ním jako vývojáři pracujeme dnes a denně. A někdy se nám ona znalost sakra hodí. Může nám ušetřit hodiny trápení nad problémem, který má jednoduché řešení, ale my ho nevidíme. Kromě kontextu jsou zde ovšem i další znaky, které dělají z juniorů seniory. Tím dalším aspektem je setkání se s neúspěchem.

Senior se pozná ve chvíli, kdy něco nefunguje, něco nejde tak, jak by mělo. Projekt je ve skluzu, komunikace s ostatními vázne apod. To jsou všechno stavy, se kterými senior počítá a umí je řešit. Jedině překonaný neúspěch nás může naučit pokoře a zároveň nadhledu. Nikdo z nás není neomylný, a proto je dobré si uvědomit, že touha po dokonalém kódu nás může přivést do pasti, ze které se nelze dostat. Senior vnímá technologii jako prostředek, junior jako cíl.

Poslední věcí, kterou vnímám jako důležitou součást, je umění dohledat si správné informace. Možná by se zdálo, že googlovat umí každý, ale divili byste se, kolik je vývojářů, kteří se raději hodiny a dny trápí něčím, co lze na internetu nalézt během pár vteřin. Prozradím vám malé tajemství o vývojářích. Většinou si moc věcí nepamatujeme, protože těch informací potřebujeme tolik, že nelze vše znát do detailu. V této chvíli nastupuje samotné umění dohledávat si potřebné informace na internetu.

Na toto téma existuje jeden programátorský vtip: Jak mohlo vzniknout stackoverflow, když neexistovalo stackoverflow?

Zase uvedu jeden příklad z praxe, tentokrát z Javy. Málokterý javista si přesně pamatuje, jak načíst soubor, něco do něj zapsat a soubor zase uložit. Je to operace, která vůbec není složitá, ale děláme ji tak okrajově, že vám můžu garantovat, že 90 % javistů si samotný postup bude googlovat :) Na pohovoru se občas ptám, jaké zná kandidát metody nad polem v JavaScriptu. Nejde mi o celkový výčet, sám si je rozhodně všechny nepamatuji, ale o to, že ví, že tam je přibližně to či ono a má alespoň hrubou představu, která metoda asi co dělá. Na zbytek má google :)

Jak jsem zmiňoval na začátku, samotné určení, kdo je junior a kdo senior je sice subjektivní, ale stále zůstane několik společných prvků, které budou mít všichni stejné.

Závěrem

Pro ty, kteří čtou tento text a cítí se, že nejsou dostatečně zkušení na to, aby se mohli považovat za seniory, mám jeden poznatek. Jste na dobré cestě se seniorním vývojářem stát, protože pouze pokora a snaha se porovnávat s těmi nejlepšími vás může posouvat dopředu, a to je to, co odděluje zrno od plev:) Na konec jsem si nechal ještě jednu vlastnost, která vám může pomoci k tomu, aby vás pohovorující označil za seniornějšího vývojáře, se kterým bude radost pracovat. Tou vlastností je dobrá sociální interakce. Zejména umění mluvit s lidmi a vědět, kdy a jak co říct. Na toto pro vás bohužel žádný návod nemám. Tady existuje pouze jediná varianta, a tou je snažit se nebýt příliš asociální. Nikdo do týmu nechce seniora, pokud je dotyčný lidsky nepříjemný.

PS: Pokud článek někdo dočetl až sem, tak vám dám ještě jednu radu. Kdybychom se náhodou někdy setkali při pohovoru ohledně JavaScriptu, bude dobré vědět, jak funguje metoda reduce :)

Programování zdar!