Ze života
Zajímá vás, jak vypadá práce programátora? Co během své pracovní doby dělá, čemu se věnuje a jak vypadá jeho pracovní týden? Popíšu vám to z pozice juniora. A vysvětlím co junior znamená.
Možná se rozhodujete pro změnu kariéry. Z médií jste masírovaní, jak chybí programátoři, že mají nadprůměrné výdělky. Dojdete do stavu, že si řeknete, že chcete být programátorem. Co ale vlastně budete dělat? Co programátor dělá? A co dělá začínající programátor? Bude vás to bavit? - Whoa, to je spousta otázek.
Popíšu vám, jak vypadá pracovní den, týden, měsíc a obecně pracovní náplň programátora.
Pojďme na to.
Jako programátor se budete věnovat pestré škále věcí, která se odvíjí od vaší seniority (zkušeností). Senioritu programátora dělíme na juniora, mediora a seniora. Asi neexistuje pevně dané stanovisko, nebo kritéria, kdy po jejich splnění dostanete razítko, že jste oprávněni používat konkrétní titul seniority.
Rozum chodí s léty, někdy ale léta chodí sama, říká se. To znamená, že takový první milník je počet let, kterým se programování věnujete. Dělení vychází zhruba 1-3 roky Junior, 3-5(6) let Medior a 5(6) let a více Senior. Je logické a i očekávané, že čím déle se programování věnujete, tím více zkušeností a znalostí budete mít. Ne vždy tomu tak ale je.
Takový programátorský joke ohledně seniority je, že se seniorem nestaneš, dokud se ti nepodaří omylem smazat celou databázi.
Myslel jsem si, že toho vím dost, ale když jsem nastoupil do práce, tak jsem zjistil, že vím vlastně prd. Je toho ohromné množství co jako junior programátor nevíte. Proto od vás kolegové neočekávají žádné zázraky. Práce, která zkušenému člověku trvá den, je pro juniora minimálně týden. Protože je pro něj všechno nové. Spoustu věcí si v průběhu dostudovává a učí se.
Každopádně naskočil jsem na rozjetý projekt a začal se otrkávat v procesu vývoje. Pojďme si ho představit.
Vývoj aplikací je řízen procesem, označovaným jako agilní, nebo jako SCRUM. Do procesu vstupuje developerský tým, který ma za úkol aplikaci naprogramovat. K tomu potřebují analýzy od analytiků. Proces řídí osoba označovaná jako SCRUM Master (takový projektový manažer), do hry vstupuje Product Owner (který je zodpovědný za výsledný produkt a ladí jeho podobu, tedy vystupuje jako most mezi developery a zadavatelem projektu). Developery hlídá Tech Lead (většinou dosti zkušený kolega programátor).
Není možné celou aplikaci napsat na jeden zátah a tak je rozdělena na menší prvky a ty zase na menší až se postupně dostaneme na časově měřitelné a zvládnutelné úkoly. Tomu se říká, že se udělá rozpad. Každý rozpadnutý prvek je poté ohodnocen z hlediska časové náročnosti. To se děje v procesu zvaném Grooming, kdy se rozpadnutým úkolům přiřazují čísla (čím větší číslo, tím složitější úkol a časově náročnější). Vývoj poté probíhá v úsecích označovaných jako Sprint. Obvykle je to úsek 2-3 týdnů, záleží jak se vývojářský tým dohodne. Během sprintu se naplánují rozpadnuté úkoly a na nich se pracuje. Během sprintu se pořádají ranní Standupy, což jsou krátké hovory developerů, kde každý představí co udělal, jestli se někde zaseknul, nebo potřebuje s něčím pomoct a na co se dále chystá. Po ukončeném sprintu mají evaluační sedánek nazvaný jako Retrospektiva, kde se hodnotí uplnynulý sprint, co bylo dobře, co bylo špatně, co zlepšit.
V práci bývám brzy, okolo 7 hodiny. Je ale v podstatě jedno od kdy začnu pracovat. Někdo chodí na třeba na 10, někdo dělá pozdě do noci. Jak to komu vyhovuje. Tahle flexibilita je skvělá. Nicméně, jako první projdu emaily a zprávy od kolegů, na které zareaguji.
Poté je většinou čas na standup a po standupu konečně přichází na řadu programování. Vždycky narazím na něco, co mě limituje a tak si o tom musím zjišťovat další informace. Což je skvělé, protože se rozvíjím a posouvám dále. Každý nový problém znamená zkušenost a posun v senioritě.
Mnohem delší dobu, než napsat kód, zabere debugování. To je když napíšete nějaký kód a očekáváte, že bude fungovat podle předpokladu, ale nefunguje a tak sbíráte drobečky o tom, co kde nefunguje a proč to nefunguje a snažíte se kód rozchodit. Což můžu říct, že je vlastně většinu času. I když v podstatě programujete, protože tím svůj kód vylepšujete do podoby, kdy bude fungovat.
V průběhu dne si několikrát odpočinu, rozhýbu se, udělám srandu s kolegy. Oživí to mysl a stmelí kolektiv. A co víc, kolikrát si lámu hlavu s nějakou logikou a nemůžu na to přijít. Jen co vstanu ze židle, že si zajdu pro čaj, tak mi po cestě vyskočí řešení. Jako když běží program někde v pozadí a když dokončí proces, předá výsledek ke zpracování.
Čas neskutečně rychle běží a jeden Sprint střídá druhý. V průběhu jsem v kontaktu s každou osobou, která do procesu vstupuje, neboť ne vždy jsou zadané úkoly jasné. Proto je potřeba úkoly dovysvětlit např. s analytikem, který chystal případové studie a tyto zakreslil do grafu a slovně ohodnotil. Takovou studiu potom vezmu a je mi návodem toho, co se po mě vlastně chce naprogramovat.
Naprogramovaný kód je poté potřeba dobře zdokumentovat, aby bylo jasné co k čemu slouží a když do kódu přijde osoba a uvidí jej prvně, z dokumentace by měla mít přehled co která část dělá a jak se s ní pracuje.
Ani po práci nekončím. Protože je mi práce zábavou, neustále přemýšlím jak posouvat svoje osobní projekty, kterým se věnuji ve volném čase. Baví mě to a vím, že se tím učím a rozvíjím dále.
A pokud vás programování taky baví a chcete začít, doporučuji kurz Frontend Developera, který pořádám.