Пошук уроків, статей та іншого контенту
Різниця — не в роках досвіду, а в автономності, масштабі рішень і відповідальності.
Формальні межі рівнів («Junior — до 2 років, Middle — 2-5») зустрічаються часто, але слабко відображають реальність: хтось два роки виконує однакові тикети під постійним наглядом, а хтось за рік проходить шлях до самостійного проєктування функціоналу. Компанії, що серйозно підходять до оцінки рівня, дивляться на конкретні маркери поведінки й відповідальності, а не на календар.
Junior отримує чітко окреслену задачу («додай валідацію цього поля за такими правилами») і потребує допомоги, коли стикається з незапланованим випадком. Middle отримує розпливчастішу задачу («користувачі скаржаться, що форма іноді губить дані») і самостійно локалізує причину, оцінює варіанти рішення та обирає один, консультуючись лише за потреби.
Junior: як назвати змінну, як структурувати функцію в межах уже заданого файлу.
Middle: яку структуру дати новому модулю, чи додавати залежність, як розбити задачу на етапи.
(Senior, для контрасту, за межами цієї статті: архітектурні рішення, що впливають на кілька команд і систем одночасно.)
Junior здебільшого фокусується на тому, щоб конкретна задача запрацювала. Middle уже враховує ширший контекст: як зміна вплине на продуктивність, чи не зламає вона існуючі інтеграції, як її протестувати, чи потрібно повідомити іншу команду про зміну публічного API.
Хороший практичний тест: чи можете ви не просто написати робочий код, а пояснити чому саме такий підхід кращий за дві-три альтернативи, які ви розглядали й відкинули? Middle-рівень зазвичай передбачає, що така розмова — природна частина роботи, а не щось, до чого треба готуватись окремо.
Junior здебільшого отримує зауваження в код-рев'ю. Перехід до Middle часто супроводжується тим, що людина сама починає давати змістовні зауваження іншим — не лише стилістичні («тут пропущена крапка з комою»), а змістовні («ця функція технічно працює, але для 10 000 записів вона буде повільною через N+1 запитів»).
Перехід від Junior до Middle — це не стільки «знати більше синтаксису», скільки зростання автономності: здатність самостійно досліджувати неоднозначну задачу, приймати обґрунтовані рішення в межах свого модуля/фічі та розуміти наслідки коду за межами рядків, які ви написали особисто. Найкращий спосіб прискорити цей перехід — свідомо брати трохи менш окреслені задачі й проговорювати хід міркувань із досвідченішими колегами, а не чекати, поки роки самі «нарахують» потрібний рівень.