V rýchlom a neustále meniacom sa svete softvérového vývoja sa kvalifikácia a skúsenosti stávajú rozhodujúcimi faktormi. Vývojári v tomto odvetví sú podľa matici kompetencií programátora zaradení do troch kategórií: junior, medior a senior. Tieto pracovné tituly nám pomáhajú lepšie pochopiť schopnosti, zodpovednosti a prispôsobenie sa náročným projektom. V tomto článku sa dozvieš konkrétne rozdiely medzi vývojármi v týchto kategóriách.
Junior – vie, že je potrebné niečo urobiť
Medior – vie, ako sa to dá urobiť
Senior – vie, ako to treba urobiť
Trainee: nový absolvent
Trainee, resp. praktikant, je čerstvý absolvent školy alebo relevantného kurzu, ktorý má skúsenosti s programovaním aspoň v jednom programovacom jazyku, ako napríklad C++, C, #C, Java, JavaScript, Python, alebo PHP, ale nemá žiadne praktické skúsenosti s komerčným vývojom softvéru.
Táto úroveň vyžaduje tréning a prax. Samozrejme, že ešte nemá skúsenosť s nasadením aplikácie.
Má základnú predstavu o tom, ako veci fungujú a hodnotná spätná väzba ho posúva ďalej.
Pozná vývojové prostredie, definíciu frontendu a backendu a GIT. Nerieši clean code, stačí, že mu kód funguje.
Junior Developer: učí sa pokusmi a omylmi
Junior je začiatočník v oblasti softvérového vývoja, ktorý získava skúsenosti prostredníctvom realizácie reálnych projektov. Na tejto úrovni sú kľúčovými prvkami skúmanie a učenie sa prostredníctvom chýb.
Juniorský vývojár má prax zvyčajne do 2 rokov, ktorý ovláda programovací jazyk podľa vlastného výberu a dokáže vykonávať úlohy samostatne. Celkovo môže junior dokončiť jednoduchú technickú úlohu od začiatku do konca.
Ako junior si viac menej stále v móde učenia. Komunikuješ viac s mentorom alebo nadriadeným, ako s ostatnými členmi tímu.
Aké znalosti má Junior?
Jeho zdrojový kód je vždy trochu neporiadny, avšak snaží sa dodržiavať style guide.
Píše dlhé funkcie, do ktorých zvykne dávať viac vstupných parametrov a v kóde necháva prázdne riadky a medzery.
Má základné technické zručnosti a vie pracovať samostatne pokiaľ má predom určenú architektúru alebo postup.
Dokáže napísať základné príkazy na výber údajov z databázy. Pozná query parametre na prácu s backendom.
Parsovanie zo servera mu nerobí problém, poradí si s najbežnejšími API. Vie, čo je to REST API, model client-server, body, header a podobne.
Medior Developer: hlavná pracovná sila
Medior už má skúsenosti s klientskymi projektami a je schopný pracovať na väčšine zadaniach. Je to vývojár s 2 až 4 ročnými skúsenosťami, ktorý dokáže pracovať samostatne, má dobré tempo a tvorí vhodný kód.
Ako medior budeš aktívne spolupracovať s členmi projektového tímu vrátane dizajnérov, obchodných analytikov a architektov.
Tento developer rozumie technickým požiadavkám a dokáže ich transformovať na koncové riešenia. Prechod z juniora je definovaný kvalitou kódu a schopnosťou rozmýšľať dopredu.
Aké znalosti má Medior?
Mediorom sa staneš vtedy, keď tvojmu kódu budú ostatní vývojári rozumieť.
Taktiež budeš mať dobrú orientáciu v probléme, mal by si vedieť správne kontrolovať a komentovať kód a mať schopnosť mentorovať juniorov alebo stážistov (mentorovaniu sa skôr venuje senior).
Taký medior dokáže navrhnúť normalizované štruktúry databáz, parsovať dáta v XML alebo CSV, ovláda a dotvára clean code a má naštudované frameworky viac ako junior.
Dunning-Krugerov efekt
Mnoho vývojárov na strednej úrovni spadá pod Dunning-Krugerov efekt, ktorý brzdí ich ďalší kariérny rast.
Tento psychologický fenomén popisuje, aká nebezpečná môže byť nevedomosť pri odbornej práci.
Developeri, ktorí sú prehnane sebaistí, môžu mať tendenciu preceňovať svoje schopnosti.
To bráni ich pokroku a môže mať zlý vplyv na tím alebo projekty.
Zatiaľ čo táto kognitívna zaujatosť sa môže vyskytnúť u pracovníkov na všetkých seniorských úrovniach, mediori su na to náchylnejší.
V skutočnosti si mnohí nevedia predstaviť lepšie metódy a postupy ako tie, ktoré v súčasnosti implementujú.
Programátori, ktorí majú za sebou sériu neúspešných projektov, môžu podľahnúť presvedčeniu, že je bežné, že projekt je nočnou morou.
V opačnom prípade si softvéroví inžinieri môžu v určitom bode uvedomiť, ako málo vedia a koľko sa toho môžu naučiť. Vtedy programátori začnú prechádzať na vyššiu úroveň seniority.
Senior Developer: riešiteľ problémov
Senior je pochopiteľne odborník s hlbokými znalosťami programovania a technológií. Je schopný riešiť aj najťažšie technické problémy a vyvíjať komplexné softvérové riešenia.
Takýto zamestnanec často figuruje ako mentor menej skúseným kolegom a technická opora riešených projektov.
Ak seniorná pozícia je tvojím cieľom, musíš počítať s tým, že technické „hard skills“ nie sú jediné zručnosti, ktoré treba ovládať.
V prvom rade musíš dať tím na prvé miesto a vždy pomôcť tam, kde treba. Okrem tímu by si taktiež riešil požiadavky klienta a komplexne brainstormoval správny postup.
Senior vývojár sa snaží predvídať problém a vyriešiť ho skôr, ako sa stane. Taktiež musí vopred myslieť na slabé stránky systému, resp. kolegov, a dobre komunikovať.
Doba strávená v odbore je špecifická, avšak zvyčajne predstavuje minimálne 5 ročné skúsenosti.
Seniori by sa mali zamerať na získanie praktických vedomostí, ktoré im umožnia adaptovať sa v akomkoľvek programovacom jazyku. Tieto znalosti tiež pomáhajú prispôsobiť sa neustálym technickým zmenám.
Aké znalosti má Senior?
Takýto odborník vie identifikovať zlé vypracovanie, pričom vie odhadnúť, ako dlho bude trvať refaktorovanie.
Logicky uvažuje nad problémami a konkrétnymi postupmi. Prináša dlhodobé riešenia, pričom do problému vidí hlbšie.
Ovláda pozadie technológií a vďaka tomu dokáže priniesť najväčšiu hodnotu.
Vždy hľadá jednoduchšie riešenia, ktoré nie sú zbytočne komplikované, ak nemusia. Jeho kód je ukážkovo čistý.
S API vie pracovať naozaj špičkovo. V rámci backendu priamo rieši, ktoré dáta sú potrebné a ktoré nie.
Bez problémov vie nakódiť real-time aplikáciu.
Pri samotných pracovných stretnutiach vzdeláva zvyšok tímu a je inšpiráciou pre ostatných.
Čo nasleduje potom?
Senior developer je dobrým odrazovým mostíkom pre vyššiu pozíciu. Všetko však závisí na okolnostiach a konkrétnych skúsenostiach jednotlivca.
Niektorí seniori chcú prejsť do technickejších rolí, v ktorých pôjdu čo najviac do hĺbky, iní uprednostňujú manažérske roly, kde prichádzajú s ľuďmi viac do styku.
Lead Developer
Pracovná náplň vedúceho vývojára je už viac o ľuďoch ako o samotných technologických poznatkoch.
Takýto vedúci musí vedieť inšpirovať, motivovať, viesť a vytvárať stratégie. Prijíma rozhodnutia na vysokej úrovni, ktoré určujú smerovanie spoločnosti.
Taktiež dbá na to, aby sa všetci zamestnanci riadili týmito rozhodnutiami a boli s víziou firmy stotožnení.
Product Manager
Produktový manažér so skúsenosťami vývojára sa bude cítiť pohodlnejšie pri odovzdávaní konečných digitálnych produktov.
Keďže podrobne pozná proces vývoja a životný cyklus, takýto zamestnanec má dobré predpoklady na celkové riadenie produktu.
Architect
Ide o najvyššiu pozíciu v rámci technického zamerania.
Úlohou architekta je navrhovať komplexné systémy, ktoré budú implementovať tímy vývojárov.