První práce v IT: soutěž s životopisem, nebo hledání známostí?

Z Mazovia

Metriky měřte průběžně: doba běhu testů, podíl nestabilních testů a pokrytí kritických cest. Bez toho se sada testů rozroste do nepoužitelné podoby. Nakonec platí, že testy musí být součástí vývojového procesu, ne jednorázová akce před vydáním.

Základ je rozdělit testy podle toho, co mají ověřit. Unit testy pokrývají logiku bez závislosti na systému. Instrumentované testy běží přímo na zařízení nebo emulátoru a ověřují interakci s UI a systémovými službami. UI testy simulují skutečné gesto uživatele. Nástroje pro každou úroveň se liší a míchat je do jednoho balíku vede k pomalým a nespolehlivým testům.

Životopis držte na jedné stránce. Nahoru dejte odkazy na veřejný profil s kódem a na projekty. Neuvádějte všechny technologie, které jste kdy viděli. U každé uveďte, co jste s ní reálně postavili. U vzdělání stačí jeden řádek, pokud nemáte praxi. U brigád a školních projektů popište výsledek, ne náplň práce. Místo „účastnil jsem se vývoje" napište „navrhl jsem databázi pro evidenci a napsal jsem API, které ji obsluhuje".

Většina juniorních vývojářů posílá desítky životopisů do firem, které inzerují volnou pozici, a diví se, že odpověď nepřijde. Problém nebývá v kvalitě kódu, ale ve způsobu, jakým hledáte. Rozdíl mezi soutěží o inzerát a hledáním přes lidi, které znáte, je zásadní. Inzerát vidí stovky uchazečů, reference vidí jeden člověk, který vás doporučí. Začněte u sebe: napište si seznam všech, kdo pracuje v technologiích — bývalí spolužáci, učitelé, účastníci meetupů, správci open-source projektů, kde jste přispěli. Těm napište krátkou zprávu, ne „hledám práci", ale konkrétní dotaz na jejich zkušenost.

Před odesláním si zprávu přečtěte nahlas. Pokud z ní nejste schopni do pěti sekund pochopit, co commit dělá, přepište ji. Držte se jednoho jazyka a jednotného času – minulý čas se v některých týmech používá, ale důležitější je konzistence. A nezapomeňte, že commit zpráva není místo pro urážky ani pro interní vtipy; i ty se jednou mohou objevit v oficiálním auditu.

Další častý problém je sdílený stav mezi testy. Integrační testy, které si předávají data nebo běží paralelně nad stejnou databází, padají náhodně. Řešením je izolace na úrovni transakcí, schémat nebo tenantů. Každý test si připraví vlastní data a po sobě je uklidí. Když to nejde, testy musí běžet sériově, ale to je jen dočasné řešení.

Dobře napsaná zpráva se pozná tak, že při hledání v historii nemusíte otevírat samotný diff. Stačí projít seznam commitů a máte jasno. Zaveďte si jednoduchý zvyk: nejdřív napište, co změna dělá, pak proč, a teprve nakonec zmiňte, jak. Výsledkem je historie, která se dá číst jako deník projektu – a to je při zpětné dohledatelnosti změn ta nejcennější vlastnost.

Testování mobilních aplikací se často zvrhne v klikání na tlačítka na jednom telefonu s čistou instalací. To odhalí jen zlomek chyb. Skutečné problémy přicházejí ve chvíli, kdy se změní stav zařízení, síť nebo data. Pokud testovací prostředí nekopíruje reálné podmínky, výsledky jsou k ničemu.

Co firmy u juniora skutečně testují Pohovor na juniorní pozici nezkouší, kolik jazyků umíte nazpaměť. Zajímá je, jestli umíte přemýšlet nahlas, přiznat, že něco nevíte, a dohledat to. Typická chyba je předstírat znalost. Když neznáte odpověď, řekněte: „To jsem ještě neřešil, ale zkusil bych to takto." Uveďte postup, ne výmluvu. Připravte si dvě až tři vlastní projekty, u kterých umíte vysvětlit, proč jste zvolili danou knihovnu, co bylo nejtěžší a co byste dnes udělali jinak. Naučte se základy systémů: co se stane po odeslání HTTP požadavku, jak funguje index v databázi, k čemu je verzovací systém. To stačí na většinu juniorních pohovorů.

Emulátor nestačí, ale vyřadit ho je chyba Emulátory a simulátory zrychlují vývoj, ale mají mezery. Neodhalí chyby v ovladačích fotoaparátu, GPS, Bluetooth ani v chování baterie. Na druhou stranu ruční testování na fyzických zařízeních je drahé a těžko reprodukovatelné. Řešení je kombinace: emulátor pro rychlé regresní testy, fyzická zařízení pro scénáře závislé na hardwaru. Vyplatí se udržovat malou matici zařízení podle skutečného zastoupení u uživatelů, ne podle toho, co je zrovna po ruce.

Poslední rada se týká pořádku v souborech. Názvy tříd pište podle toho, co prvek dělá, ne jak vypadá. Barvu lze změnit, název třídy zůstane. Oddělujte obsah od vzhledu a vždy, když něco nefunguje, zkontrolujte, zda je soubor skutečně uložený a zda cesta k němu odpovídá skutečnosti. Většina problémů vzniká z těchto dvou důvodů.