Скільки потрібно вчитися, щоб стати Junior в IT
Питання про строки підготовки до рівня junior ставлять найчастіше. Коротка відповідь проста: вчитися доведеться все життя. Але для ухвалення рішення потрібні конкретні орієнтири. Нижче зібрані рамки за строками та чинники, що на них впливають, у нейтральній формі і без прив’язки до конкретної особи.
Чому про навчання протягом усього життя говорять серйозно
У розробці неможливо одного разу сказати собі, що знань достатньо. Технології оновлюються, практики змінюються. Розробник постійно читає документацію, переглядає форуми, книги і керівництва. Якщо цього не робити, кваліфікація швидко падає. Це нормально для інженерної професії і не привід відкладати старт.
Міф про 10 000 годин і рівень junior
Популярна думка про 10 000 годин стосується майстерності. Junior не дорівнює майстру. Щоб почати розв’язувати типові задачі під наставництвом, не потрібен десятирічний стаж. Важливо розрізняти цілі: майстерність вимагає тисяч годин, рівень junior вимагає базової теорії, навички алгоритмізації та невеликої практики.
Що найсильніше впливає на строк
1. Бекграунд і близькість до розробки
Якщо раніше був близький досвід на кшталт тестування, адміністрування, аналітики, шлях помітно коротший. У такому разі лишається вивчити синтаксис обраної мови, домовленості та ідіоми екосистеми, зрозуміти базові практики та фреймворки. За дисципліни це місяці, а не роки.
2. Навичка алгоритмізації
Початківцям без досвіду найчастіше бракує вміння перетворювати задачу на послідовність кроків. На вироблення цієї навички йде значний час. Реалістично закладати від трьох до шести місяців на розуміння того, як ділити вимоги на підзадачі, формулювати кроки та перевіряти себе.
3. Формат занять і тривалість однієї сесії
Сесії коротші за годину майже неефективні. Значна частина часу йде на відновлення контексту. Оптимально займатися блоками по дві-три години. В ідеалі щодня. Мінімум два-три рази на тиждень. Такий ритм дає мозку час увійти в задачу, просунутися і коректно завершити роботу.
Три етапи підготовки
Етап 1. Вибір напряму
Навіть якщо здається, що вибір очевидний, корисно коротко спробувати кілька гілок. Це знижує ризик помилки. Для старту підходять три кошики: бекенд-мови на кшталт Java, C Sharp або PHP, фронтенд і JavaScript, Python. За бажання можна зазирнути в мови ближчі до системного рівня на кшталт C або C плюс плюс чи Rust. Для структурного порівняння можна вивчити навчальні плани: Frontend, JavaScript, Python, Java або комплексний шлях Fullstack. Для тестування підійде QA і QC.
Етап 2. Навчання теорії та інструментів
На цьому етапі формуються основи: синтаксис мови, робота з репозиторієм, тестування, базові фреймворки, підключення баз даних, збірка і запуск застосунку. Важливий постійний розбір помилок і регулярний зворотний зв’язок.
Етап 3. Реальні задачі
Щоб перетворитися із заготівки джуна на робочого спеціаліста, потрібна практика на реальних задачах. Це може бути стажування, фриланс, участь у проєкті з живими строками, командою, код рев’ю, пріоритизацією, тестами і релізами. Навчальні пет-проєкти корисні, але реальне середовище дає зовсім інший досвід.
Градації рівня junior
Pre Junior
Теорія є, але бойових задач не було. Розуміння процесів у команді та практик розробки відсутнє. Багато випускників курсів знаходяться саме тут.
Strong Junior без досвіду
Знає, як влаштована робота, розуміє потрібний стек, уявляє процеси, але ще не проходив це в бою. Готовий до стажування або першої ролі з наставником.
Strong Junior з досвідом
Вже брав участь у проєкті. Знайомий з постановкою задач, рев’ю, тестами і релізами. До рівня middle лишається накопичити додатковий досвід і розширити зону відповідальності.
Реалістичні строки
Якщо старт з повного нуля
Реалістично закладати від дев’яти до п’ятнадцяти місяців. Значна частина часу йде на алгоритмізацію і вироблення звичок розробки. В окремих людей прогрес іде швидше, але розраховувати на три місяці без бази не варто.
Якщо є близький досвід
Перехід із суміжної ролі на кшталт тестування, адміністрування або аналітики зазвичай займає близько шести місяців за стабільного темпу. Це включає синтаксис, один або два основні фреймворки, роботу з базою та базовий деплой.
Якщо змінюється мова в межах сімейства
Перехід між спорідненими екосистемами зазвичай займає один або два місяці. Прикладом може бути зміна C Sharp на Java або Python на JavaScript для сценаріїв скриптингу.
Якщо стек змінюється суттєво
Зміна далеких стеків займає від двох до чотирьох місяців, іноді до шести. Багато залежить від глибини вимог і кількості часу, який вдається виділяти щотижня.
Як організувати заняття
Мінімум два-три заняття на тиждень по дві-три години кожне. Перед початком коротко відновлюйте контекст за конспектом. Наприкінці фіксуйте, що зроблено і що взяти в роботу наступного разу. Так ви зменшуєте втрати часу на вхід і вихід із задачі.
Як прискорити шлях до першої пропозиції
Зберіть портфель із двох-чотирьох проєктів з реалістичними вимогами. Використовуйте код рев’ю. Автоматизуйте там, де це доречно. Доводьте навчальні проєкти до робочих збірок з інструкцією зі запуску. Беріть участь в інкубаторах і стажуваннях там, де є наставники і процеси.
Де подивитися структуровані програми
Для порівняння дорожніх карт і силлабусів під різні цілі підійдуть сторінки: Fullstack, Frontend, JavaScript, Python, QA і QC, Java.
Підсумок
Єдиного універсального строку немає. Без бази найчастіше потрібно близько року. Із суміжної ролі близько півроку. При переході між спорідненими мовами один-два місяці. Ключові прискорювачі це навичка алгоритмізації, регулярні заняття блоками по дві-три години і вихід до реальних задач у команді.