Спершу звернемо увагу на походження самих термінів. Вони непонашому написані і очевидно, що коріння росте з району східного узбережжя США, і такі статуси – це адаптація українців під західний ринок. Український ІТ ринок на 80% складається з аутсорсних компаній, які переймають західну термінологію, процеси, тощо. Як західні компанії бачать хто такі Junior, Senior, Middle і які вимоги накладають мені важко сказати – для цього треба попрацювати там і відчути ситуацію зсередини. Проте, можу сказати, що це означає для аутсорсних ІТ компаній України. За великим рахунком, це вилка зарплат, на яку може розраховувати кандидат. І навпаки, якщо у вас сеньйорська зарплата – значить ви сеньйор.Мрія кожного власника аутсорсної компанії – купити Juniora, платити йому відповідну зарплату, а продавати його послуги західним замовникам за ціною Seniorа. Декому так вдається, та це швидше виняток, ніж правило, оскільки по той бік океану сидять далеко неглупі люди. Тому, виникають певні обмеження на кваліфікацію, яку нижче детальніше розгляну.

Junior

Зазвичай від року комерційного досвіду (який ранг має спеціаліст до року досвіду – невідомо), впевнене знання технології, популярних фреймворків, процесів. Junior – це завжди інвестиція для компаній, оскільки дорожче обходиться його утримування – зарплата і час досвідчених спеціалістів, допущенні помилки, ніж користь яку він приносить компанії. Тому велика увага звертається на потенціал, готовність навчатись і схильності до швидкого опанування нового матеріалу, а такі здібності можуть вище оцінюватись ніж знання деяких фреймворків.

Тут і настав час озвучити парадокс індустрії, адже переважно компанії інвестують в Middle для своїх конкурентів, оскільки морально не готові через рік платити Junior вдвічі більше. А компанія-конкурент готова платити вже за спеціаліста рівня Middle, якого значно легше продати. Такі реалії – що подієш.

Рекомендації: період юніорства схожий з дитинством – кожна задача цікава, не тисне тягар відповідальності за здачу проекту, дотримання вимог, тощо. Тому насолоджуйтесь цим періодом наповну. Тут вектор розвитку більш-менш визначений – вирости на проекті, отримувати стільки досвіду скільки можливо.

Middde 

Він вже може працювати самостійно, не вимагає контролю з боку старших товаришів – несе відповідальність за власний код. Мусить впевнено знати базові технології, та популярні фреймворки, процеси. Досвід роботи від 2-3 років. В залежності від проекту вже може вести коммунікацію з іноземним замовником, тому рівень англійської набуває важливого значення. В більшості, Juniorу можуть пробачити коряву розмовну мову, але тут таке не прокатить. Як я вже і казав, рівень мідла передбачає вищий рівень заробітної плати (або, я прийнято казати – компенсації) і попит на таких спеціалістів вже значно більший. Ще замало досвіду в повноцінному проектуванні архітектури системи, та вже достатньо для розробки дизайну підсистем.

Рекомендації: за власним досвідом скажу, що це період юнацького максималізму. Пройшовши ланку Junior виникає ілюзія, що я все знаю і дуже крутий програміст. Ринок цю ілюзію підживлює великою кількістю пропозицій, активним хантингом. Високий рівень винагороди розслабляє. Та насправді, це не зовсім так. Пару вдалих проектів – це лише крапля в море усього різномаїття проектів та задач.

В мене ця ілюзія забрала півроку професійного розвитку, і принесла депресію, коли оточуючий світ поставив мене на місце. Тому рекомендація – в цей період краще відвідуйте тренінги, конференції, зустрічі, програмістські тусовки. Важливо визначитись з майбутнім вектором розвитку, для цього необхідно широко глянути на індустрію, спробувати себе у різних ролях, в різних проектах, перебрати технології, фреймворки. В цей період вже можна починати ділитись досвідом – пробувати виступати перед публікою на профільні теми. Наш мозок влаштований так, що коли ми слухаємо працює одна частина мозку, коли бачимо – інша, коли розповідаємо – третя. Тому для закріплення матеріалу важливо застосовувати всі 3 канали, прогрес швидше піде. Тому часу насолоджуватись власною крутістю замало!

Senior

Це вже спеціаліст який крім того, що освічений в технології, фреймворках, процесах і розуміє що воно таке, а й може втілити теорію на практиці. Тобто, дотримання виконання архітектурного рішення або практики (наприклад code review), тощо. Бере відповідальність не тільки за написаний код, а і за проект вцілому. Мусить вміти приймати технологічні рішення і аргументовувати його перед командою, менеджером, командою замовника, замовником. Відповідно, рівень англійської мусить бути upper intermediate.

Для того, щоб грамотно аргументувати прийняте рішення, мусить бути багатий практичний досвід, на практиці пройдені успішні і неуспішні кейси, щоб розуміти до чого в майбутньому може привести те чи інше рішення. Досвід – від 5 років за рідким виключенням, менше (широко відома проблема 23х сіньйорів – я її не включаю сюди). Senior є опорою лідера команди по впровадженню і реалізації технологічних рішень, процесів, інженерних практик. Говорити про те, що вимагається знання технології + фреймворки не варто, це і так очевидно!

Рекомендації: на даному етапі розвитку варто приділяти увагу деталям – в них вся суть. Senior знає, навіщо виносити в окремий модуль всі інтерфейси і класи моделі. Знає чим відрізняється дизайн і архітектура, знає що таке SOLID, та ін. Таких ньюансів велика кількість і чим більше їх знати, тим більше експертність і тим більше розуміння що таке enterprise application взагалі.

Далі ідуть наступні ранги – Architect, Tech Lead, Principal та не маю ще достатньо досвіду, щоб якісно описати ньюанси. Все це ще попереду.

Багато хто вважає, що характерним є кількість технологій і фреймворків. Це далеко не так. Можна бути спеціалістом з 5ти річним досвідом зі знання широкого стеку технологій, та знаходитись на рівні Junior. Не той рівень заглиблення. Якщо ви уважно прочитали, то мусили помітити, що для всіх рівнів розвитку характерний пункт “знання технологій, фреймворків, процесів”. Просто на кожному рівні більш глибинне розуміння.

Я ще спостерігаю з рівнем розвитку спеціаліста переорієнтацію від технологій до бізнесу. У джуна великий ентузіазм щодо технологій, хочеться впровадити супероптимальні алгоритми, застосувати нові підходи. З точки зору бізнесу – це трати допоки не доведене протилежне і Senior це чудово розуміє. Тому і мусить володіти достатнім рівнем кваліфікації, щоб “продати” замовнику необхідність рефакторингу, або зміни технології, тощо. І тому необхідний хороший рівень розмовної англійської.

Отже, підіб’ємо підсумок – хто ви, Senior, Junior чи Middle? Правильна відповідь – те як ви себе продали. Варто відповідати собі “я Програміст”, а яку личку навісять – то вже справа десята. Не женіться за технологіями, їхня кількість не робить вас кращим спеціалістом.