Кар’єра розробника — це не просто перехід з одного рівня на інший. Шлях від джуніора, який тільки робить свої перші кроки у світі кодування, до мідла (та вище), фахівця, який вже володіє досвідом і готовий до серйозніших завдань, пролягає через безперервне навчання, челленджі та самовдосконалення.
Зміни в світі диджитал відбуваються надзвичайно швидко. Тож той, хто хоче рухатися далі, має не тільки прокачувати свої поточні знання, але й поглиблюватися у розуміння процесів розробки, бути в курсі останніх трендів, технологій, а також удосконалювати м’які навички, які дозволяють ефективно працювати в команді та керувати проектами.
У цій статті ми розглядаємо, як складається кар’єра програміста, які є рівні IT-фахівців та які навички потрібні для переходу з одного на інший.
Junior: хто такий і як підвищити рівень
Junior розробник — це новачок, який тільки-но починає свій шлях в ІТ. Це перший із рівнів програмістів (якщо в ІТ-компанії не передбачено ще посади Traineе — стажера). Він має базові знання із програмування та працює під керівництвом більш досвідчених розробників.
Зазвичай джунами стають ті, хто тільки закінчив навчання у вишах або на курсах. Вони ще не мають досвіду роботи в проєктах (або ж він невеликий).
Які знання та навички передбачає позиція джуніора
- Розуміння основних концепцій, алгоритмів, структур даних, мов програмування.
- Вміння писати код, шукати та виправляти баги.
- Англійська — не нижче В1, здебільшого технічна.
Які завдання виконує Junior фахівець
- Вирішення стандартних завдань із незначними ризиками: написання простих модулів, реалізація нескладного функціоналу.
- Виправлення помилок.
- Інколи — тестування та документування коду.
- Інші завдання від більш досвідчених колег по команді.
Як може розвиватися Junior програміст
Наступний рівень кваліфікації програміста після позиції джуна — це мідл (в деяких компаніях йому передує посада Junior+). У середньому на позиції джуна ІТ-фахівець росте від 6 місяців до 1-1,5 (інколи 2) роки.
Поради як вирости від джуна до мідла
- Вчиться писати якісний, логічний код.
- Вчіться на помилках.
- Запитуйте, слухайте, цікавтеся досвідом колег, керівників.
- Знайдіть наставника, ментора.
- Просіть фідбек про виконану роботу.
- Будьте проактивними — просіть більш складні завдання, проєкти.
- Коли виконуєте відповідальні завдання, не забувайте про контекст: деякі задачі можна виконати самостійно, в інших краще попросити поради.
- Вносьте свої ідеї, як можна покращити продукт (наприклад, реалізація додаткового функціоналу, що покращить користувацький досвід).
- Вивчайте нову термінологію, крок за кроком опановуйте нові навички.
- Приймайте участь у тренінгах чи навчальних програмах, курсах, конференціях, мітапах, професійних спільнотах.
- Боріться не за зарплату, а за досвід та репутацію.
Middle (мідл): хто такий і як підвищити рівень
Розробник рівня Middle має більше досвіду роботи у реальних проєктах і може вирішувати складні, нестандартні завдання із високими ризиками та відповідальністю. Стандартні ж задачі він робить швидше та з меншою кількістю багів, ніж допускає позиція Junior.
Які знання та навички передбачає позиція мідла
- Впевнені знання програмування.
- Розуміння принципів ООП.
- Вміння користуватися інструментами розробників.
- Вміння працювати із АРI, пакетами, модулями.
- Рефакторинг коду.
- Деплоймент ПЗ.
- Уміння проєктувати та самостійно реалізувати складний функціонал.
- Комунікація з клієнтами (періодично).
- Впевнені знання технічної та розмовної англійської (В2 та вище)
- Досвід роботи із різними технологіями та мовами програмування.
Які завдання виконує Middle фахівець
- Більш активна участь у проєктах із більшою незалежністю та відповідальністю.
- Виконання складних завдань, що потребують глибоких знань (наприклад, розробка окремих модулів).
- Здійснення код-рев’ю.
- Навчання (менторство) нових учасників ІТ-команди.
- Участь у проєктуванні архітектури ПЗ.
- Внесення пропозицій щодо поліпшення розробки.
Як може розвиватися Middle програміст
Після 2-3 та більше років роботи Мідл може претендувати на статус Senior програміста. Цей рівень передбачає ще більше відповідальності та експертизи. Але перед тим варто все ж затриматися трохи більше на посаді Middle спеціаліста, щоб набратися додаткових знань та навичок.
Поради як перейти на вищий рівень
- Розширюйте свої знання в обраній галузі та вивчайте нові технології.
- Опановуйте суміжні системи (Kubernetes, Docker, кластеризація тощо).
- Беріть участь у більш складних проєктах.
- Пробуйте писати щось із нуля, без шаблонів.
Senior: хто такий і як підвищити рівень
Senior (сеньйор) — це експерт, який вирішує нестандартні завдання, має глибокі знання та досвід 5+ років. Сеньор припускається мінімальної кількості багів і може самостійно вирішувати складні завдання. Також Senior спеціаліст може виступати керівником проєктів.
Які знання та навички передбачає позиція Senior розробника
- Глибокі знання мов програмування, бібліотек, фреймворків, структур даних та алгоритмів.
- Широкий технічний кругозір, знання із суміжних галузей.
- Навички налагодження, оптимізації та підтримки коду.
- Досвід роботи на великих складних проєктах.
Які завдання виконує Senior програміст
- Участь у проєктуванні складних систем.
- Побудова архітектури ПЗ.
- Вибір технологій та загалом розробка великих проєктів.
- Часто — управління та координація роботи команди.
- Ухвалення ключових технічних рішень.
- Менторство над іншими розробниками.
Як може розвиватися Senior фахівець
Позиція сеньйора — це далеко не стеля. Він може стати Тех- чи Тімлідом, Архітектором або піти у проєктний менеджмент, стати Scrum майстром чи Agile коучем.
Поради як перейти на вищий рівень
- Працюйте над складними великими проєктами, що дозволяють ще більше поглибити експертність.
- Прокачуйтесь в області архітектури.
- Беріть участь у розробці стратегії розвитку ІТ-компанії.
- Розвивайте лідерські, менеджерські навички (для Senior фахівця вони важливіші за технічні, ніж у мідлів).
Team Lead та Tech Lead: хто такі та як підвищити рівень
Team Lead (тімлід) керує групою розробників. Шлях до цієї посади може зайняти від 5 до 10 років.
Які знання та навички передбачає позиція Тімліда
- Багатий досвід у програмуванні.
- Міцні лідерські якості.
- Навички комунікації, управління конфліктами.
Які завдання виконує Team Lead
- Розподіл задач між розробниками.
- Комунікація із клієнтами, збір вимог.
- Управління процесом розробки.
Як може розвиватися Team Lead
Він може стати Head of Development, Продакт Менеджером, Проджект Менеджером.
Поради як тімліду перейти на вищий рівень
- Поглиблюйте розуміння технологій.
- Оновлюйте знання про сучасні інструменти управління проєктами та розробки.
- Розвивайте комунікативні навички, навички ведення переговорів, вирішення конфліктів та прийняття рішень.
- Покращуйте вміння мотивувати та надихати команду.
Tech Lead (техлід) виконує роль технічного керівника ІТ-проєкту.
Які знання та навички передбачає позиція Tech Lead
- Глибокі технічні знання.
- Досвід у різних галузях програмування.
- Самостійність в ухваленні складних технічних рішень.
- Лідерські якості, навички ефективної комунікації, створення сприятливого мікроклімату.
Які завдання виконує Технічний лідер
- Розробка технічної стратегії.
- Ухвалення рішення щодо архітектури, дизайну системи.
- Координація роботи ІТ-команди.
- Керівництво розробкою ПЗ.
- Комунікація зі стейкхолдерами.
- Може брати участь в управлінні ризиками та якістю проєктів.
Як може розвиватися Tech Lead
Продовжувати рости на поточній посаді або розвиватися у бік управління продуктом, проєктами, ставати Senior Architect, Chief Engineer/СТО.
Поради як перейти на вищий рівень
- Постійно оновлюйте знання у сфері програмування, архітектури та інших ключових технологій.
- Розвивайте вміння ефективно керувати ІТ-командами та проєктами.
- Прокачуйте стратегічне мислення.
- Розвивайте здатність чітко та переконливо пояснювати технічні рішення нетехнічним членам команди проєкту або замовникам.
Architect: хто такий та як підвищити рівень
Архітектор — це ІТ-спеціаліст, що відповідає за створення архітектури ПЗ.
Які знання та навички передбачає позиція Архітектора
- Широкі знання та досвід програмування.
- Знання архітектурних патернів.
- Знання мов програмування, технологій та інструментарію розробки.
- Розуміння бізнес-процесів, цілей та вимог клієнта.
Які завдання виконує Architect
- Аналіз вимог проєкту.
- Визначення структури системи, компонентів та їх взаємодії.
- Проєктування інтерфейсу.
- Визначення способів організації коду.
- Управління ризиками та прийняття обґрунтованих рішень.
Як розвиватися в ІТ Архітектору
Він може стати Chief Architect, Enterprise Architect, СТО.
Поради як перейти на вищий рівень
- Безперервно поглиблюйте знання в області архітектури, безпеки, хмарних технологій тощо.
- Вивчайте передові практики та новітні технології у сфері архітектури.
- Розвивайте аналітичні навички.
- Удосконалюйте навички лідерства.
- Вчіться ефективній комунікації з різними групами зацікавлених осіб.
Причини повільного професійного зростання
Шлях як вирости від джуна до мідла здається зрозумілим: працювати, працювати та ще раз працювати, виконувати завдання добре, прокачувати знання, опановувати нові навички, і одного дня отримати довгоочікуване підвищення. А далі — переходити на ще вищі рівні.
Навряд чи хтось приходить в сферу ІТ тільки для того, щоб залишитися на посаді Junior програміст на все життя. Але все ж трапляється так, що програмісти (і не тільки джуни) застрягають на певному рівні і не можуть зрушити далі та будувати кар’єру розробника. І навіть підвищення кваліфікації на курсах не допомагає.
Чому так відбувається і що з цим робити?
1. Намагання охопити все
У чому проблема:
Багато молодших розробників не можуть сфокусуватися на тому, що дійсно важливо. Вони кидаються вивчати кожну нову технологію, опановують мову за мовою, вважаючи, що більше знань=більше затребуваності фахівця. Звісно, роботодавці більш зацікавлені у ІТ-спеціалістах, які володіють широким стеком. Тільки-от за умови, що володіють вони на високому рівні.
Як вирішити:
Оберіть мінімально необхідний сет — 1-2 мови, 1-2 фреймворки, кілька бібліотек — і прокачуйтесь у них до рівня профі.
2. Кар’єра в ІТ не має чіткої мети
У чому проблема:
Переплітається із проблемою №1. Коли ІТ-фахівець не має чіткого уявлення про те, куди йому рости, він розпорошується на все підряд.
Як вирішити:
Чітко визначте, чого ви прагнете. Так, із плином часу ваші бажання можуть змінитися. Але на даний момент вам потрібно сконцентруватися на тому, чому обрали саме цю професію. Тягне у геймдев? Чудово, вивчайте С++ та двигуни для ігор. І не звертайте зі шляху. Дивіться на мрію, і від неї відштовхуйтесь при виборі мови та стеку.
3. Нехтування якістю заради швидкості
У чому проблема:
Джуніор спеціаліст без досвіду часто прагне виконати задачу якомога швидше, не перевіривши якість коду. Згодом такий «сирий» код може створювати перепони для роботи усієї ІТ-команди.
Як вирішити:
Візьміть за правило постійно контролювати якість коду. Так, перевірка займатиме час. Але перевірка за вами неробочого коду займе ще більше часу (та нервів) ваших колег.
4. Погані скіли пошуку інформації в інтернеті
У чому проблема:
Айтішник-початківець не вміє піддавати критичному аналізу інформацію, яку нагуглив або навіть узяв у розділі з відповідями на Stack Overflow. Здається, що він знайшов корисну пораду, а по факту це виявилося інформаційне сміття. Як результат — він реалізував рішення, що тільки додало проблем, а не розв’язало їх.
Як вирішити:
Якщо ви не вмієте відділяти зерна від полови, у вас, скоріш за все, слабка теоретична база. Тому підтягніть теорію. І взагалі: починайте завжди із офіційної документації — для того ж вона і створена.
5. Проблеми зі сприйняттям критики
У чому проблема:
Деякі недосвідчені інженери ображаються, коли їм вказують на помилки, і часто приймають це на власний рахунок.
Як вирішити:
Вчиться розрізняти корисний фідбек від особистих образ. Тімлід чи ПМ хочуть, щоб проєкт рухався за планом. Ображати вас наміру вони не мають, а просто вказують на помилки.
Якщо вам зробили зауваження у некоректній формі, не слід відразу ображатися: варто поговорити із людиною. Якщо розмова не допомогла, поговоріть із менеджером. Виправляти помилки потрібно у будь-якому разі. А як інакше розвиватися?
6. Низька самооцінка
У чому проблема:
Розробник просто не вірить, що здатен на щось, і при першій-ліпшій проблемі складає руки, навіть не спробувавши пошукати рішення самостійно. Або соромиться просити кращі умови та підвищення. Знову ж таки, через низьку самооцінку.
Як вирішити:
Боротися із синдромом самозванця непросто. Але не неможливо. Запишіть свої сильні сторони. У вас вони точно є. Навіть те, що ви опанували програмування та працюєте в IT сфері — це вже ваша сильна сторона: багато хто так і не зміг влаштуватися.
Попросіть когось із оточення, колег перерахувати ваші сильні сторони. Скоріш за все, вас дуже здивують відповіді: інші люди можуть побачити у вас такі позитивні сторони, про які ви навіть і не думали.
І не забудьте записати свої слабкі сторони. Коли ви знаєте свою слабкість, вона вже стає не проблемою, а вектором розвитку розробника. Наприклад, у вас непогана технічна англійська, але слабенька розмовна. Отже, поки що зарано переходити на рівень мідла, де потрібно спілкуватися з іноземними замовниками: спочатку підтягніть мову.
Загальні поради та необхідні навички при переході на наступний рівень
Незалежно від того, на якому рівні розвитку розробника ви знаходитесь зараз, вам будуть корисні такі навички:
- Знання різних мов програмування (Java, Python, Ruby, C++).
- Англійська на рівні В1 (Intermediate) та вище. Англійською написана майже вся технічна документація. Нею ж спілкуються ІТ-фахівці по всьому світу.
- Знання баз даних (особливо SQL).
- Комунікативні скіли: вміння ефективно спілкуватися усно та письмово з членами ІТ-команди, замовниками, користувачами.
- Командна робота: вміння дотримуватися графіків, взаємодіяти, допомагати одне одному.
- Аналітичні навички: вміння працювати з інструментами аналітики для розв’язання складних технічних завдань.
- Тайм-менеджмент: ви повинні вміти правильно розподіляти час, особливо якщо працюєте над декількома проєктами одночасно.
- Самонавчання: айтішник має бути «вічним студентом», адже технології розвиваються стрімко.
На якому б етапі шляху розробника ви не були, вам стануть у пригоді поради для переходу на наступний рівень:
- Дізнайтеся вимоги ринку та своєї ІТ-компанії, а саме які навички необхідні для просування.
- Намагайтеся долучатися до проєктів, що дадуть вам досвід у нових сферах.
- Для навчання використовуйте різні (а не тільки один) ресурси: книги, онлайн чи офлайн курси, подкасти, блоги, вебінари, мітапи тощо.
- Отримуйте сертифікати, які значно підвищать ваш рейтинг в очах роботодавців.
- Шукайте менторів, які будуть вас підтримувати на кожному етапі розвитку розробника.
- Розвивайте лідерські якості, якщо хочете стати сеньйором або тімлідом.
- Будьте в курсі останніх новинок індустрії, бібліотек, фреймворків, вчіться працювати з ними.
- Не бійтеся змінювати роботу, якщо це допоможе вашому професійному зростанню в ІТ. Але зважайте на те, що часта зміна вами місця роботи може викликати у роботодавців побоювання, що з вами щось не те (не можете брати на себе відповідальність, погано працюєте у команді тощо).
Кілька слів наостанок
Більшість людей, що починають працювати в ІТ-індустрії, ставлять за мету постійно рухатися уперед — до рівня Senior чи навіть вище. Якщо ви прагнете того ж, важливо продовжувати навчатися і розвиватися. Звісно, це займе тривалий час та вимагатиме чималих зусиль. Але тільки так можна досягти нових висот у кар’єрі розробника.
Шукаєте роботу в ІТ? ІТ-компанія Eastern Peak має декілька відкритих вакансій. Надсилайте резюме та приєднуйтесь до нашої дружньої команди.
Читайте також: