Що означає strong JuniorЩо означає strong Junior

0 Comment

Чи справді Junior DevOps Engineer — новачок?

Я Павло Завада — співзасновник компанії NETFORCE Ukraine, що надає послуги системного адміністрування та DevOps, а також IT Education Center, де навчаю технологій цієї сфери.

DevOps не такий відомий напрям в ІТ, як тестування чи розробка. Стандартний жарт «спробуй пояснити бабусі, ким ти працюєш» у цьому випадку виходить на новий рівень. Іноді складно пояснити навіть друзям.

Хочу допомогти тим, хто розглядає DevOps як можливий напрям для себе, незалежно від технічного бекграунду. Розберемося, що це за спеціальність, які знання та навички потрібні джуну та чи можна його назвати початківцем.

Що таке DevOps

DevOps — це методологія, що допомагає покращити взаємодію команд Dev та Ops. Головна мета — випускати продукти швидше, але з вищою якістю.

Цього можна досягти за допомогою покращення процесів збирання коду, тестування та розгортання, створення міжфункціональних команд, розвитку культури DevOps тощо.

На проєктах ми автоматизуємо рутинні процеси, налаштовуємо CI/CD пайплайни, надаємо інфраструктуру як код, щоб полегшити управління нею, та моніторимо системи, щоб вчасно помічати проблеми й усувати їх. І все ж це лише частинка задач.

Посада DevOps-інженера вимагає сильних hard skills. Потрібно вміти працювати з багатьма різними інструментами та технологіями. Kubernetes, Docker, Ansible, Terraform, Jenkins, Prometheus, Grafana — список можна продовжувати довго.

Тож яким має бути Junior DevOps у цьому потоці задач та технологій?

Junior DevOps Engineer — чи така роль існує?

Мені ставили й таке питання — і не дарма. Якщо заради цікавості подивитися вакансії, можна натрапити на:

  • Senior System Administrator / Junior DevOps Engineer — не ясно, чи можна зайняти таку посаду, якщо не пройти до цього шлях сисадміна. Тож це збиває зі шляху тих, хто хоче потрапити у сферу, але не має відповідного досвіду.
  • Просто DevOps Engineer — рівень навіть не вказують, що примножує непорозуміння. Ви можете бути middle, але продати себе як junior, тому що в різних компаніях відрізняються вимоги до фахівців одного рівня. Я бачив вакансії junior з вимогою років досвіду та strong junior із 1,5 роками. Тож будьте уважні.

У самій сфері є складнощі із визначенням такого фахівця, але роль Junior DevOps Engineer існує.

Потрібні навички

Джун DevOps — це спеціаліст, який уже вміє щось робити руками. Він має досвід з розробкою ПЗ, ІТ-операціями та управлінням інфраструктури. Якщо ви лише маєте уявлення, як усе працює, то варто почати з позиції Trainee.

Від Junior DevOps Engineer очікують досвід:

  • адміністрування ОС Linux. Із цього все починається, тому на позицію й розглядають системних адміністраторів. Вони мають досвід віртуалізації, налаштування інфраструктури, її захисту та troubleshooting;
  • автоматизації. Наприклад, за допомогою Ansible, Puppet чи Chef;
  • зі скриптовими мовами: Bash, Python тощо. Вибір мови не так важливий — ці знання потрібні, щоб автоматизувати рутинні завдання;
  • інфраструктурою як кодом (IaC). Необхідно розуміти концепції та принципи й вміти керувати інфраструктурою за допомогою коду, а також прописувати базову інфраструктуру з Terraform або CloudFormation;
  • контейнеризації та оркестрації (Docker та Kubernetes). Йдеться про вміння створювати образи контейнерів, розгортати їх та оркеструвати;
  • із системами моніторингу. Потрібно налаштовувати інструменти моніторингу та логування, такі як Prometheus, Zabbix або стек ELK;
  • із хмарними провайдерами: Google Cloud, AWS, Azure. Це про розгортання програми на хмарних платформах, керування базовою cloud-інфраструктурою та автоматизацію процесів;
  • безперервної інтеграції та доставки (CI/CD). Необхідно вміти налаштовувати конвеєри CI/CD за допомогою Jenkins, Travis CI або CircleCI.

Окрім того, Junior DevOps має добре розуміти життєвий цикл розробки ПЗ, необхідні інструменти та технології, а ще мати практичний досвід роботи з ними. Це важливо, тому що ви працюватимете з іншими командами саме над покращенням SDLC.

Також потрібно знати системи контролю версій — наприклад, Git. Треба вміти створювати та керувати репозиторіями коду, а ще розуміти методи розгалуження, злиття та управління версіями.

Зверніть увагу й на знання англійської. Це стандартна вимога у сфері ІТ загалом, яка відчиняє вам двері до міжнародних проєктів. Ми в NETFORCE Ukraine теж оцінюємо англійську в наших кандидатів.

Задачі Junior DevOps-інженера

Припустимо, усі ці навички у вас є. Тож чим доведеться займатися?

Завдання Junior-фахівця виглядають приблизно ( пишу «приблизно», бо всі компанії та їхні задачі різні, тож цей список може варіюватися) так:

  • адміністрування серверів та їхнє обслуговування;
  • управління конфігураціями — встановлення та налаштування інфраструктури;
  • упровадження та управління CI/CD;
  • налаштування моніторингу;
  • розв’язання проблем за допомогою нескладних скриптів;
  • створення та супровід середовищ на хмарних платформах;
  • автоматизація процесів;
  • забезпечення та дотримання процедур безпеки, конфіденційності та захисту даних клієнтів.

Чим це відрізняється від інших джунів

Від початківців у тестуванні чи розробці не очікують попередній досвід на іншій позиції, як в історії з DevOps та системним адмініструванням. До речі, досвід тестування або розробки теж корисний для майбутнього DevOps-інженера.

Чому так: для QA важливе розуміння SDLC, знання основ тестування, frameworks та інструментів, баз даних і ще багато іншого. Але всі ці моменти пов’язані безпосередньо з тестуванням. Те саме і з розробниками.

Особливість DevOps у тому, що він залучений на всіх етапах життєвого циклу розробки ПЗ. Тому обсяг знань, навичок та інструментів, якими необхідно володіти, збільшується. DevOps-інженер об’єднує і розробників, і команду експлуатації, покращує процеси та взаємодію між командами. Він свого роду і швець, і жнець, і в дуду грець. І тому будь-який досвід у розробці стане в пригоді.

Зони відповідальності QA, розробника та DevOps-інженера — нескінченний цикл

Для прикладу візьмемо стандартну задачу DevOps — автоматизацію процесу розгортання. Щоб її виконати, потрібно розуміти вимоги до розгортання, залежності та обмеження.

Треба звернути увагу на середовище розгортання, бо від цього залежать конфігурації. Потім визначити специфікації заліза, інфраструктури та врахувати очікуваний трафік і навантаження на програму, щоб вона витримувала реальний потік реквестів. Важливо не забути жодну залежність — бібліотеки, БД, сторонні служби або API та інфраструктурні залежності. І вишенька на торті — бюджетні, часові та ресурсні обмеження, а ще відповідність нормам (наприклад, GDPR, HIPAA).

На позиції Junior ви точно не займатиметеся всім самостійно, тож не лякайтесь. Але якщо все ж доведеться, то раджу змінити проєкт, адже так ви не навчатиметеся, а тільки засвоюватимете власні помилки.

Крім технічних навичок, від Junior DevOps Engineer чекають сильних комунікативних умінь. Вам слід уміти спілкуватися однією мовою з командами розробників, тестувальників, експлуатації, а ще — з внутрішнім чи зовнішнім замовником. Знадобиться й вправність у розв’язуванні конфліктів.

Тому назвати Junior DevOps Engineer початківцем складно. Це фахівець, що має серйозний технічний бекграунд. Тут не так важливо, чи він отримав його на інших посадах, чи навчився з нуля, але має практичні приклади. Він має розуміти процеси, щоб їх оптимізувати.

Висновок

У статті ми з усіх сторін розглянули посаду Junior DevOps Engineer. Почали з того, що це за сфера та чи існує в ній роль джуна. Часто такими фахівцями називають досвідчених системних адміністраторів, хоча мати такий досвід — необов’язково.

Іноді виникають запитання, проте така справді роль існує. Це фахівець, який уже має практичний досвід з основними технологіями та інструментами.

Ми розглянули вимоги компаній до спеціалістів цього рівня та чим вони займаються. Це допоможе визначити, коли ви готові претендувати на цю посаду.

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

Junior DevOps Engineer — не новачок; він має широкий обсяг знань та навичок. Проте це не означає, що не варто пробувати подаватися на вакансії, якщо якогось досвіду вам не вистачатиме.

Вмістити в одну статтю всі поради початківцям у DevOps доволі складно. Тож якщо вам цікаво дізнатися більше про цей напрям, скоро я розповідатиму про нього на безплатному інтенсиві «Професія DevOps-інженер: твій неочевидний шлях в ІТ».

Також буду радий обговорити ваші питання в коментарях.

До обраного В обраному 6

Технології та софт-скіли, володіння якими IT-компанії очікують від джунів. Великий гайд

Які hard і soft skills хочуть бачити роботодавці у кандидатів-джунів? Що обов’язково має бути в резюме фахівців початкового рівня? Та що говорити на співбесіді, якщо ви не знаєте відповідей на запитання? Ми поговорили з найбільшими ІТ-компаніями в Україні, аби скласти ґрунтовний гайд для Junior-розробників, тестувальників та DevOps.

Вхідний поріг в ІТ зріс

Вимоги компаній до джуніорів за 2022 рік загалом не змінилися, як і раніше важливими є сильні hard і soft skills, що різняться залежно від спеціальності. Втім конкуренція на ринку джунів значно зросла: кандидатів побільшало, тоді як кількість вакансій скоротилась. Деякі компанії зазначають, що на одне робоче місце наразі претендують на 40–50% більше кандидатів-джунів, ніж до війни, де-не-де ці цифри можуть бути вищими. При цьому “приплив свіжої крові” в ІТ все частіше відбувається коштом світчерів – людей, які змінили свою спеціальність. Через високу конкуренцію вхідний поріг для початку роботи у більшості ІТ-компаній зріс — обирати намагаються “найкращих з найкращих”. Переважно це кандидати з комерційним досвідом щонайменше від шести місяців, частіше — від 1 до 1,5 року. Кандидатів без комерційного досвіду дедалі частіше взагалі не готові розглядати як джунів — лише як Trainee/Intern з відповідними фінансовими очікуваннями. Ось що показує свіжа аналітика Djinni:

Кандидатів без комерційного досвіду розглядають, втім — у меншості випадків. При цьому багато компаній зазначають: з одними лише ІТ-курсами за плечима та без досвіду шансів знайти хороше місце на проєкті як Junior Developer мало. Винятком є курси при конкретній IT-компанії. Враховуючи кількість доступного матеріалу для самостійного навчання, мати додаткові сертифікації та підтвердження практичного досвіду (якщо некомерційного, то у вигляді портфоліо чи репозиторію з власними проєктами) – майже обов’язкова умова. Ось, якими є вимоги роботодавців до фахівців тієї чи іншої спеціальності.

Hard skills

Junior Java Developer

  • знання Java 8;
  • Spring Framework;
  • базове знання Git;
  • знання багатопотоковості;
  • ознайомлення із сучасними хмарними сервісами;
  • ознайомлення з різними типами баз даних.

Кілька компаній також згадують про:

  • знання теорії ООП;
  • базове розуміння Front-end розробки, зокрема Angular;
  • базове знання тестування коду.

Більш детальні вимоги кожної з компаній наведені нижче.

  • EPAM
  • SoftServe
  • Sigma Software
  • Luxoft
  • Intellias
  • DataArt

EPAM

Junior Java Developer, окрім глибоких знань з Java, а саме об’єктноорієнтованого програмування (ООП), колекцій, обробки виняткових ситуацій, багатопотоковості, має вміти писати вебзастосунки як за сервлетною, так і спринговою технологіями із застосуванням різних реалізацій JPA для взаємодії з базами даних, а саме Hybernate, iBatis.

Junior Java Developer має вміти застосовувати принципи об’єктноорієнтованого програмування й патерни проєктування, оброблювати різні формати даних, а саме JSON й XML, покривати код модульними й інтеграційними тестами, використовувати Maven/Git, розуміти CI/CD. Цінується та заохочується ознайомленість із сучасними хмарними сервісами та Front-end розробкою, наприклад, JavaScript й Angular.

SoftServe

Junior Java Developer мусить розбиратися у серверних технологіях Java-стеку (Spring/Hibernate), а також мати хоча б базові знання з Front-end (Angular), вміти працювати зі Scrum та Git.

Sigma Software

Junior Java/Scala Engineer має знати мову програмування Java, Spring Framework та Database.

Luxoft

До Junior Java Developer немає вузьких вимог з доменної сфери, проте загальні вимоги такі: знання Java 8, Spring Framework та SQL, досвід комерційної роботи в індустрії розробки ПЗ від 1,5 року, досвід на вебпроєктах чи десктопі залежно від специфіки проєкту. Іноді вимагають знати багатопотоковість і якусь із сучасних “хмар” (AWS, Azure, рідше GCP).

Intellias

Junior Java Developer має знати синтаксис Java 8, орієнтуватись в об’єктноорієнтованому та функціональному програмуванні, розуміти List, Map, Set, Queue, Array тощо. Також знати синтаксис і запити на базовому рівні SQL, базово розуміти Git та тестування коду.

Варто володіти основами багатопотоковості в Java, мати базові знання зі Stream API, Java Networking.

Знання Linux: базові команди, shell scripting, розуміння дозволів. Базове орієнтування в тасктрекінг-системах та документ-системах (Jira, Confluence, Zephyr тощо).

DataArt

Для початку роботи на позиції Junior Java Developer кандидат повинен добре знати теорію ООП, основні патерни проєктування та вміти застосовувати ці знання на практиці. А ще добре орієнтуватися в можливостях Java Core (типи даних, Collections API, Streams API, Lambdas тощо), цікавитися оновленнями у версіях мови програмування, знати принцип роботи JMM (Java Memory Management).

Гарним плюсом буде розуміння роботи багатопотокових програм і те, як теоретично уникати проблем у них. Кандидат повинен уміти написати просту програму (наприклад, REST API для підтримки CRUD-операцій) із застосуванням сучасних фреймворків: Spring Framework, Hibernate, Maven/Gradle.

Щодо баз даних, то основними критеріями є початкові знання у нормалізації БД, індексації для прискорення пошуку, написанні нескладних запитів.

Junior-спеціаліст має знати, як писати читабельний код, а ще розуміти базові принципи програмування, поняття рефакторингу та чому потрібно писати чистий код. Мати уявлення про алгоритми й те, коли їх використовують.

Необхідні знання для Back-end розробників: SQL та NoSQL бази даних (на рівні самостійного налаштування бази для своїх потреб і виконання декількох запитів зі зв’язаними таблицями); розуміння, як БД працює з вашим застосунком; знання базових принципів оптимізації запитів.

Для Full Stack розробників: додати до попереднього переліку знання JavaScript з фреймворком ReactJs чи AngularJs.

Додатково Junior-спеціалісту потрібно розуміти, що таке HTTP-протокол, мати базові знання Git та принципів роботи з бранчами, вміти використовувати IDE для написання коду та дебагу. У тестуванні фахівцю варто знати, які типи тестів існують та що таке юніт-тести.

Гарним плюсом буде профайл кандидата на HackerRank, Codewars, LeetCode чи хоча б GitHub-репозиторій з власними проєктами. Головне, щоб проєкти були цікаві та можна було оцінити рівень їх виконання.

Залежно від проєкту важливо, щоб кандидат цікавився контейнеризацією та віртуалізацією. Знання основних Docker-команд буде очевидним плюсом. Добра ознака, якщо людина орієнтується в останніх трендах програмування.

Junior .NET Developer

До спільних вимог більшості компаній належать:

  • володіння основами С#;
  • знання платформи .NET;
  • розуміння принципів ООП;
  • базові знання Front-end (Angular/React/JavaScript).

Кілька компаній також згадують про:

  • знання ASP.NET Web API;
  • ознайомленість з різними типами баз даних;
  • використання Git.

Більш детальні вимоги кожної з компаній наведені нижче.

  • EPAM
  • SoftServe
  • Sigma Software
  • GlobalLogic

EPAM

Junior .NET Developer повинен мати глибокі знання мови C# та платформи .NET, гарно розуміти та вміти застосовувати принципи ООП й SOLID, патерни проєктування, колекції, LINQ, багатопотоковість, обробку виняткових ситуацій.

Вміти писати та застосовувати юніт-тести, розробляти ASP.NET Web API та MVC вебзастосунки, взаємодіяти з базами даних як із ADO.NET, так і Entity Framework.

Junior .NET Developer повинен використовувати Git, мати базові знання HTML, CSS та JavaScript. Цінується та заохочується ознайомлення із сучасними хмарними сервісами та Front-end розробкою, наприклад, Angular чи React.

SoftServe

Junior .NET Developer, крім знань принципів ООП та Database (MS SQL Server), повинен розуміти Scrum та Git, а також Front-end розробку (Angular, React).

Sigma Software

Junior .NET Developer має знати мову програмування C# та платформу .NET (.NET Framework 4.x, .NET Core). Частково знати Front-end (зокрема, Angular) та розуміти принципи ООП та databases.

GlobalLogic

Junior .NET Developer має володіти основами С#, баз даних та JavaScript, ASP.NET Core, вміти працювати з даними та знати англійську на рівні Intermediate та вище.

Junior C++ Developer

До спільних вимог більшості компаній належать:

Кілька компаній також згадують про:

  • знання середовища модульного тестування (GTest);
  • розуміння системи збірки коду, зокрема CMake.

Більш детальні вимоги кожної з компаній наведені нижче.

Luxoft

Основні проєкти для C++/Embedded фахівців належать до automotive-домену. Цим і обумовлений перелік основних вимог: знання C++ 11/14, попередній досвід роботи з Python, практичні навички та знання версії системного контролю (наприклад, Git), розуміння щонайменше одного середовища тестування (GTest, GMock тощо), досвід роботи з автомобільними комунікаційними протоколами (CAN, LIN, Flexray, Ethernet, SOME/IP).

Безумовним плюсом будуть знання з Autosar Classic, досвід використання CMake, VSCode, Visual Studio, MISRA, E-sys, Carmen тощо.

Якщо розглядати перелік загальних вимог, то це освіта у галузі комп’ютерних наук, електротехніки або телекомунікаційної інженерії, розуміння розробки програмного забезпечення, переважно в автомобільній сфері, мінімальний досвід розробки програмного забезпечення в міжнародних великомасштабних проєктах, здебільшого в автомобільній сфері; відмінне володіння англійською мовою як в усній, так і в письмовій формі.

Intellias

Для посади Junior C++ Developer у нашій компанії кандидат має:

  • розуміти концепції об’єктноорієнтованого програмування;
  • мати базове розуміння CI/CD системи, GitLab, Jenkins;
  • розуміти Agile-методології та SDLC;
  • мати базовий досвід розробки програмного забезпечення для комерційних проєктів;
  • знати кросплатформову C++ (бажано C++ 11), boost;
  • знати Unit-тестування;
  • мати базові знання в тасктрекінг-системах і документ-системах (Jira, Confluence, Zephyr тощо).

GlobalLogic

Junior C++ Developer має розуміти основи програмування, С++ та використовувати мову для розвʼязання актуальних бізнес-задач. Знати Linux Console та мати досвід роботи з Linux-оточенням. Володіти англійською на рівні, достатньому для роботи з технічною документацією.

Знати системи збірки коду (Make, CMake), керування версіями (Git), програми оптимізації пам’яті (Valgrind), засоби налагодження (GDB), середовища модульного тестування (GTest) та системи контейнеризації Docker.

Мати практику розробки через тестування. Розуміти поняття багатопотоковості та взаємодію між процесами (Inter Process Communication, IPC) під Linux. Знати керування пам’яттю та особливості С++ 11/14/17/20.

Junior JavaScript / Front-end / WEB Developer

До спільних вимог більшості компаній належать:

  • HTML + CSS;
  • JavaScript;
  • фреймворків, зокрема React та Angular.

Кілька компаній також згадують про:

Більш детальні вимоги кожної з компаній наведені нижче.

  • EPAM
  • SoftServe
  • Intellias
  • DataArt
  • Universe (Genesis)

EPAM

Junior JavaScript Developer повинен розуміти принципи роботи вебзастосунків, знати та вміти використовувати HTML-теги, зображати текстову інформацію, таблиці, списки, працювати з формами. Необхідними навичками є застосування CSS для форматування контенту, створення макетів сторінки, зокрема з адаптацією до екранів різного розміру.

Junior JavaScript Developer має знати синтаксис JavaScript, базові концепції ООП, алгоритми й структури даних, основні шаблони проєктування. Володіння Node.js, React чи Angular буде перевагою.

SoftServe

Для Junior JavaScript Developer треба знати HTML, CSS та JavaScript або Node.js, Framework (Angular or React), розуміти Scrum та Git.

При цьому стек для JavaScript та Node.js дещо різниться. У першому випадку необхідні знання JavaScript, TypeScript, React/Vue/Angular та HTML + CSS. У другому — знання JavaScript, HTML + CSS, Database та Nest.js.

Intellias

Для посади Junior WEB Developer маємо такі вимоги до хард-скілів кандидата:

  • Понад рік досвіду роботи з HTML/CSS із використанням HTML/HTML5, CSS/SASS, плюсом буде досвід з Bootstrap;
  • розуміння та досвід роботи зі Sketch, Zeplin, InVision або схожими програмами;
  • знання розробки кросбраузерної та адаптивної верстки;
  • досвід роботи з JavaScript;
  • базові знання в тасктрекінг-системах та документ-системах (Jira, Confluence, Zephyr тощо.).

DataArt

Junior Javascript Developer повинен мати базові поняття типів та конструкцій мови програмування, розуміти ООП, володіти одним фреймворком (Angular, React), базово розуміти HTTP та мати навички роботи з HTML/CSS.

Universe (Genesis)

На посаду Junior Front-end Developer ми розглядаємо спеціалістів, які закінчили курси. Перевага, якщо у кандидатів була додаткова технічна освіта та знання математики. Серед теоретичних знань виділяємо TypeScript, React.js, Git та розуміння браузерних технологій — HTTP, cookie, local storage, cors тощо.

Інші мови програмування

У цьому розділі ми зібрали мови програмування, інформацію про які надала лише одна або дві компанії.

  • Junior Ruby Developer
  • Junior PHP Engineer
  • Junior C Developer
  • Junior Machine Learning Developer
  • Junior Linux Kernel
  • Junior Python Developer
  • Junior Golang Developer

Junior Ruby Developer

Інформацію надають компанії SoftServe та DataArt.

Для Ruby-кандидата важливо мати практичний досвід з HTML, CSS та JavaScript і практичні навички з Ruby on Rails та RSpec, розуміння Scrum та Git.

Також Junior Ruby Developer має базово знати типи й конструкції мови програмування та ООП, реляційні бази даних і SQL. Важливо розуміти HTTP і concurrency/parallelism.

Junior PHP Engineer

Інформацію надає компанія Sigma Software.

Для Junior PHP Engineer варто знати Laravel Framework, частково Front-end – JavaScript (jQuery, Vue.js), а також ООП та шаблони проєктування. Важливими є розуміння CI/CD та Database і досвід роботи з Git та GitFlow.

Для Junior PHP Engineer/ WordPress Developer треба знати ООП та Laravel, розуміти CI/CD та Database і мати досвід роботи з Git та GitFlow. До цього стеку додаються знання WordPress CMS (розробка тем/плагінів/налаштування), WP React, Database, Apache, Nginx. А також Yarn/npm, SCSS, jQuery/JS; Laravel components & providers, Blade, Roots/Sage Acorn; Docker та Linux.

Junior C Developer

Інформацію надає компанія GlobalLogic.

Для Junior C/Embedded Developer потрібно володіти англійською на рівні, достатньому для роботи з технічною документацією (Intermediate або вище), базово знати С/С++ та будь-яку мову програмування.

Важливими є досвід роботи з Linux-оточенням, вміння працювати з системами контролю версій (Git, SVN, Mercurial тощо), базові знання електроніки, аналогової та цифрової схемотехніки.

А також середовище розробки C refresher, основи MCU та STM32 (аналогові інтерфейси, розширені теми та програми виробничого рівня).

Junior Machine Learning Developer

Інформацію надає компанія GlobalLogic.

Для Junior Machine Learning Developer треба знати Python, мати достатній рівень володіння фундаментальними математичними дисциплінами: лінійною алгеброю, математичним аналізом, дискретною математикою, теорією ймовірностей. Базово розуміти ML, структурування проєктів машинного навчання, а також знати:

  • Tree-based models;
  • Deep learning;
  • Unsupervised learning;
  • Reinforcement learning.

Англійська мова має бути на рівні Intermediate і вище.

Junior Linux Kernel

Інформацію надає компанія GlobalLogic.

Для Junior Linux Kernel треба знати мову С, а також Linux, Bash, Git, Makefile, GCC, CLANG.

Вміти працювати з ядром Linux, віртуальною файловою системою та інтерфейсом програмування, працювати з ресурсами, модулями, залежностями, завантаженням/вивантаженням, діагностикою, дебагінгом і драйвером символьного пристрою.

Також варто знати Device Tree, ACPI, керування часом, керування пам’яттю, обробку переривань, паралелізм і синхронізацію.

Junior Python Developer

Інформацію надає компанія DataArt.

Щоб працювати Python-розробником, варто ознайомитись із найбільш поширеними фреймворками: Django та Flask. Відносно недавно став набирати популярності FastAPI, але асинхронність в Python буває непростою і вимагає глибшого розуміння, коли та для чого її використовувати.

Для ознайомлення з Django можете використати офіційний посібник “Написання вашої першої програми Django”. Для ознайомлення з Flask – посібник Мігель Грінберг.

Junior Python Developer варто звернути увагу на роботу з базами. Важливо розібратися, як працюють реляційні бази, чим вони відрізняються, оскільки різні задачі потребують використання різних інструментів. Найпопулярнішим нині є PostgreSQL, також часто можна помітити MySQL, SQLite.

Варто звернути увагу на документоорієнтування баз даних. Наприклад, MongoDB та Redis останнім часом часто використовують як кеш.

Базове розуміння принципів роботи з Docker буде відчутним плюсом для кандидата. Це допоможе краще зрозуміти, як далі використовуватиметься продукт, і одночасно підвищуватиме ефективність команди.

Також варто згадати про Front-end. Зараз практично неможливо уявити роботу з вебсайтом без базових знань HTML та JavaScript. І якщо ви не плануєте розібратися з React, Vue або AngularJS, то вміння читати та розуміти код JS та базове знання HTTP і REST – невід’ємна частина веброзробки.

Junior Golang Developer

Інформацію надає компанія DataArt.

У компанії немає чітко визначених запитань для Junior/Middle/Senior спеціалістів цього стеку, натомість є загальні запитання. Якщо кандидат відповідає на всі, то може розраховувати на рівень Senior, 7/10 — Middle, 5/10 — Junior. Зазвичай послідовність запитань є такою:

  • Що таке інтерфейс та як його імплементувати.
  • Робота з масивами в Go.
  • Тестування коду.
  • Приклад коду з variable shadowing для тесту на уважність.
  • Конкурентність, defer, select, ділянки видимості змінних, робота з пам’яттю.
  • “Під капотом”: горутини, слайси, scheduler, stack/heap. Профілювання.

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

Junior QA / АТ

До спільних вимог більшості компаній належать:

  • знання основ тестування програмного забезпечення (дизайн та розробка тест-кейсів, використання QA-інструментів та технік, системи відстеження помилок);
  • базове розуміння мережевих HTTP-протоколів;
  • англійська мова на рівні Intermediate та вище.

Кілька компаній також згадують про:

  • досвід роботи з API тестуванням;
  • знання базових запитів мовою SQL;
  • розуміння методології та фреймворків розробки ПЗ.

Для Junior Test Automation Engineer обов’язково знати одну з популярних мов програмування: Java, C#, JS тощо.

Більш детальні вимоги кожної з компаній наведені нижче.

Junior Manual QA

  • SoftServe
  • Intellias
  • GlobalLogic
  • Eleks
  • Universe (Genesis)

SoftServe

Junior QA Engineer повинен володіти усною та письмовою англійською мовою на рівні Upper-Intermediate і вище, розуміти основні процеси тестування, вміти працювати з базами даних та знати SQL, а також методології та інструменти тестування.

Intellias

Junior QA Engineer має знати основи тестування програмного забезпечення (дизайн та розробка тест-кейсів, використання QA-інструментів і технік, системи відстеження багів), мати фундаментальне розуміння тестування у SDLC та досвід роботи з API-тестуванням. Також знати методології, інструменти та процеси програмного забезпечення Agile та QA, базово розуміти Linux, командний рядок і мережеві HTTP-протоколи, володіти тасктрекінг-системами та документ-системами (Jira, Confluence, Zephyr тощо).

GlobalLogic

Необхідні знання для Junior Manual QA:

  • англійська мова на рівні Intermediate та вище;
  • теорія тестування;
  • вступ до вбудованого тестування (чим вбудоване тестування відрізняється від тестування іншого продукту): апаратні залежності та дефекти, відтворюваність тощо;
  • тестування на основі моделі (HIL, PIL, SIL, MIL);
  • вбудований набір інструментів тестування;
  • вебтехнології (HTML, CSS, основи JavaScript);
  • HTTP (запити, відповіді, коди відповідей, інструменти розробників);
  • клієнт-серверна архітектура та основи вебпрограм (інтерфейс, серверна база даних, база даних). Підходи до тестування інтерфейсу, серверної бази та бази даних. Підходи та інструменти тестування API (Postman);
  • кросбраузер або тестування для браузера.

Для Junior Embedded QA компанія вказує наступні пункти:

  • володіння англійською на рівні, достатньому для роботи з технічною документацією (Intermediate або вище);
  • базові знання Linux Console;
  • базові знання Networking;
  • теорія тестування.

Eleks

Junior Manual QA Engineer має вміти писати тест-кейси, хоча б на базовому рівні володіти тест-техніками. А також:

  • розбиратися в типах тестування, розуміти основні відмінності між функціональними та нефункціональними тестами;
  • описувати баги (складати дефект-репорти);
  • вміти створювати чеклісти та обирати між тим, де їх краще застосовувати;
  • вміти пріоритезувати баг-репорти та тест-кейси (бажано);
  • розуміти вимоги замовника. Буде перевагою, якщо кандидат може оцінити часозатратність завдання;
  • розуміти методології та фреймворки розробки ПЗ (Scrum чи Kanban) та їхній вплив на тестування;
  • розуміти сам тест-процес і принципи тестування на базовому рівні;
  • володіти англійською на рівні Upper-Intermediate.

Universe (Genesis)

Для посади Junior QA Engineer кандидат повинен мати шість місяців комерційного досвіду, знати принципи та методології тестування, розуміти основи роботи веб і мобільних застосунків, вміти створювати та підтримувати тестову документацію.

Junior QA Automation Engineer

EPAM

Junior Test Automation Engineer має розуміти код, який тестуватиме. Для цього треба знати одну з мов програмування: Java, C# чи JS, залежно від обраної технології автоматизованого тестування. Крім цього, людина має розуміти Git, CI/CD, UI and API Testing.

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

GlobalLogic

Для Junior Automation QA необхідні базові знання будь-якої мови програмування та принципів ООП, розуміння сучасних комп’ютерних технологій та практичні навички роботи з ними (ОС, засоби розробки) а також англійська на рівні, достатньому для читання технічної документації та спілкування (Intermediate та вище).

  • Git;
  • Linux;
  • Selenium;
  • HTTP;
  • REST;
  • SQL;
  • Frameworks;
  • API tests;
  • Jenkins;
  • Loggers;
  • Cross-browser testing.

Eleks

Для Junior Automation QA Engineer необхідно:

  • розуміти, який функціонал вартує автоматизувати, а який краще/швидше перевірити вручну;
  • знати типи й рівні тестування;
  • знати щонайменше одну мову програмування з найпопулярніших (C#, Java, JavaScript, TypeScript, Python);
  • писати нескладні тести для вебаплікацій із застосуванням патерну page object;
  • писати нескладний фреймворк, який базується на Page Object Model та XUnit (NUnit, TestNG чи similar);
  • розуміти, що таке Back-end і як його можна тестувати;
  • вміти тестувати прості HTTP-запити;
  • запускати тести з використанням Continuous Integration сервера;
  • аналізувати результати запуску тестів і виправляти знайдені помилки;
  • працювати з Test Management та Bug Tracking Systems;
  • комунікувати з QA-інженерами, лідом, узгоджувати плани покриття автотестами;
  • знати базові запити мови SQL: Select, Joins, операції CRUD;
  • знати принципи об’єктноорієнтованого програмування, вміти їх використовувати;
  • знати техніки тест-дизайну і вміти їх застосовувати;
  • володіти англійською на рівні Upper-Intermediate.

Junior DevOps

До спільних вимог більшості компаній належать:

  • розуміти основні елементи операційних систем, їхні функції;
  • знати концепції CI/CD;
  • розуміти ключові принципи “хмар” і працювати з однією із платформ – AWS, Azure чи GCP;
  • навички роботи з ОС Linux та Windows.

Компанії також згадують про:

  • навички роботи із системами управління баз даних;
  • базові знання контейнеризації;
  • навички Monitoring та Configuration Management;
  • володіння Bash/Python тощо.

Більш детальні вимоги кожної з компаній наведені нижче.

  • EPAM
  • SoftServe
  • Sigma Software
  • Luxoft
  • Eleks
  • Universe (Genesis)

EPAM

Для позиції Junior Systems Engineer кандидат має вміти автоматизувати повний цикл SDLC, мати практичні навички роботи з мережами, Linux/Windows, Containers (Docker, K8s), Public Cloud (AWS, Azure або GCP), писати скрипти на Bash, Python чи PowerShell, розуміти концепції CI/CD, IaC, Configuration Management, Monitoring та вміти працювати з відповідними інструментами, наприклад Jenkins, Terraform, Ansible тощо.

SoftServe

Для посади Junior DevOps у нашій компанії кандидат має знати принципи ООП, розуміти мережеві технології (IP-адресація, маски, маршрути, TCP та OSI рівні, основи багаторівневих мережевих протоколів, NAT, PAT, фаєрволи). Розуміти типи Cloud-моделей та ключові принципи Cloud. Важливо мати досвід у програмуванні в Linux чи Windows, а також із системами управління базами даних, базово знати контейнеризацію.

Sigma Software

Junior DevOps має знати AWS/Azure/GCP, Linux, інструменти CI/CD. А також DB (MySQL, PostgreSQL), NoSQL DB (Redis, MongoDB, DynamoDB, Cassandra) – і знати трохи більше, ніж просто як їх встановити.

Ще важливо володіти Bash/Python/Perl.

Luxoft

Для Junior Devops вимагають DevOps, CI/CD, Jenkins, Git, базово знати сучасні “хмарні” системи. Також мати досвід роботи на комерційних проєктах за спеціальністю від півтора року та добре володіти усно та письмово англійською мовою.

Eleks

Для Junior Devops Engineer необхідно:

  • розуміти основні елементи операційних систем, їхні функції;
  • базово знати концепцію Cloud, мати практичний досвід з однією із cloud platforms (зазвичай це AWS, Azure чи GCP), вміти побудувати просту інфраструктуру;
  • розуміти прості адміністративні мережеві інструменти;
  • Configuration management: мати досвід роботи з одним з інструментів (найчастіше опановують Ansible). Перевіряємо, чи людина може прочитати playbook; пояснити, що він робить, за потреби – мінімально модифікувати;
  • розуміти, що таке віртуалізація й контейнеризація, чим ці поняття відрізняються, чим контейнери відрізняються від віртуальних машин;
  • мати досвід з Web/App Servers і DB Administration буде плюсом;
  • Scripting/Automation: розуміти синтаксис, вміти написати просту автоматизацію або розповісти, які задачі перед вами стояли;
  • розуміти CI/CD-концепти, чим CI відрізняється від CD, значення і призначення, вміти налагодити CI-сервер;
  • скіли Monitoring + Logging.

Universe (Genesis)

Для посади Junior DevOps спеціаліст повинен мати рік комерційного досвіду, знати Docker, Kubernetes, AWS Console, а також мати досвід з Git та Bash Scripting.

Soft skills

Пріоритетні soft skills в опитаних компаніях здебільшого збігаються. В основний перелік входять:

  • вміння шукати та аналізувати інформацію;
  • мотивація та відповідальність;
  • готовність і бажання вчитися;
  • вміння працювати як самостійно, так і в команді;
  • англійська мова на рівні не нижче за Intermediate;
  • привітність і добре розвинені комунікативні навички — для ефективного спілкування з командою та замовником;
  • вміння конструктивно сприймати критику та працювати над помилками;
  • здатність чітко висловлювати думку;
  • критичне мислення;
  • навички тайм-менеджменту та самоорганізації;
  • вміння пріоритезувати задачі.

У EPAM наголошують, що нині один з основних soft skills – адаптивність, тобто здатність реагувати на зміни.

Кандидат у джуніори може певним чином уявляти собі роботу на конкретному проєкті, втім у реальності це може передбачати залученість до різних проєктів з різними командами та в умовах зміни поставлених раніше завдань. Це не повинно вибивати з робочого ритму

кажуть у компанії

А у SoftServe нагадують: оскільки джуніори часто не мають досвіду роботи, soft skills можуть відіграти визначальну роль під час відбору кандидатів.

Резюме: критерії відбору кандидатів

Основні вимоги компаній до резюме кандидатів — структурованість, релевантність (відповідність технічних навичок вимогам вакансії), правдивість і грамотність.

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

Те, що обов’язково прагнуть побачити у CV Junior-кандидата:

  • опис hard і soft skills;
  • інформація про комерційний досвід (якщо такий є). При цьому варто коротко описати сам проєкт, вашу роль у його реалізації та технології, які використовували у роботі;
  • посилання на портфоліо — ним можуть бути, наприклад, пет-проєкти на GitHub;
  • освіта. Це можуть бути навіть курси та тренінги;
  • рівень володіння англійською та іншими мовами;
  • контактні дані, включно з посиланням на LinkedIn або іншу зручну для спілкування соцмережу;
  • коротке summary про себе.

Більш детально про критерії відбору кожної з компаній — далі у матеріалі.

  • EPAM
  • SoftServe
  • Sigma Software
  • Luxoft
  • Intellias
  • GlobalLogic
  • Eleks
  • DataArt
  • Universe (Genesis)

EPAM

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

У компанії рідко беруть джунів з ринку — більшість спеціалістів цього рівня приєднуються до компанії після навчання в EPAM University, втім мотивація теж відіграє важливу роль при відборі кандидатів на навчання.

SoftServe

У компанії нагадують: важливо вказувати лише правдиву інформацію у резюме про досвід, знання та технології, оскільки на співбесіді експерт може ставити питання, відштовхуючись від резюме кандидата.

Неграмотність, відсутність структури — це те, що може зіпсувати враження про кандидата і навіть відсіяти його на етапі перегляду резюме

кажуть у компанії

Sigma Software

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

Luxoft

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

Немає сенсу писати туди те, про що кандидат не має уявлення, не вивчав самостійно чи не використовує на практиці

кажуть у компанії

Intellias

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

У компанії є програма Juniors Hiring Program, яка дає змогу кандидатам з мінімальним досвідом або взагалі без досвіду, але з великим потенціалом, отримати необхідні знання та практичні навички, працюючи з ментором на проєкті. На вакансії, створені під цю програму, часто розглядають кандидатів без комерційного досвіду, достатньо спеціалізованих курсів.

GlobalLogic

У компанії рекрутери зазвичай звертають увагу на те, чи є технічна освіта, додаткові курси (якщо йдеться про Trainee-позицію), далі йде рівень володіння англійською мовою. Фото не є обов’язковим. Якщо світлина у дуже неформальному стилі (фото зі спортзалу, до прикладу) або поганої якості — її краще не додавати.

Виграшно для компанії виглядають резюме, які мають таку структуру: назва компанії-роботодавця з датами співпраці, нижче назва проєкту, короткий опис продукту, перелік обов’язків/досягнень і технологій, з якими працював фахівець.

Eleks

У компанії зазначають, що резюме має відповідати вимогам позиції й містити релевантний досвід. Якщо людина подається на кілька напрямків, вона має робити окремі резюме на кожен з них (наприклад, окремо на дизайнера/-ку, окремо на тестувальника/-цю).

Крім перелічених вище критеріїв, для компанії плюсом буде супровідний текст про те, чому людина подається на вакансію, чому обрала саме її. Тут же кандидат може описати свої сильні сторони.

DataArt

У DataArt ще наголошують: якщо спеціаліст схитрував та приписав собі в резюме більше навичок, ніж є насправді, це одразу видно під час інтерв’ю.

Крім цього, “дизайнерські” резюме з великою кількістю візуалу (картинки, фото тощо) лише відволікають від суті. Краще надавати класичні резюме зі структурованою інформацією на 1-2 сторінки.

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

Вказані у резюме навички на кшталт “впевненого користувача ПК” (Windows, Chrome, Firefox, Word, Excel, Paint, PowerPoint тощо) виглядають несерйозно.

Universe (Genesis)

У компанії вважають, що за структурою необхідно ділити резюме на блоки, деталізувати досвід роботи (компанія, позиція, період роботи, обов’язки та досягнення).

Для джуніорів тут рекомендують надсилати супровідний лист. Варто прочитати опис вакансії і обов’язки та розписати, чому ви можете бути найкращим кандидатом на цю роль і хочете працювати саме в цій компанії.

Заголовок у резюме має збігатися з роллю, на яку ви подаєтесь. Наприклад, якщо шукаєте роботу Manual QA Engineer, то не пишіть у заголовку щось інше.

Співбесіда: критерії відбору

Передусім усі компанії згадують про класичну підготовку до співбесіди — для розмови варто знайти тихе місце зі стабільним інтернетом або ж, якщо є змога, подбати про альтернативне джерело інтернету на випадок вимкнення світла, перевірити справність камери та увімкнути її, подбати про зовнішній вигляд, щоб було не “по-домашньому”.

Під час спілкування для компаній важливі вмотивованість і проактивність кандидата.

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

Можуть перевірити вашу обізнаність щодо історії самої компанії — згадати про цінності та проєкти, інформація про які є у відкритому доступі.

Важливо, аби ви також ставили влучні запитання інтерв’юеру про компанію та потенційну посаду — більшість компаній згадують про це як про позитивний фактор.

Одна з ключових характеристик кандидата — комунікабельність, може бути досить суб’єктивною при відборі кандидата рекрутером. Але важливо не відповідати “сухо”, аби з вас доводилося тягнути кожне слово.

Крім того, більшість компаній зазначають: якщо ви чогось не знаєте, краще чесно це визнати, аніж намагатися щось вигадати. Головне — показати бажання навчатися.

Більш детально про критерії відбору кожної з компаній — далі у матеріалі.

  • EPAM
  • SoftServe
  • Sigma Software
  • Luxoft
  • Intellias
  • GlobalLogic
  • Eleks
  • DataArt
  • Universe (Genesis)

EPAM

Оскільки зараз переважає формат самонавчання та роботи онлайн, важливо розуміти мотивацію кандидата, чому він обрав вказаний напрям, наскільки усвідомлене це рішення, скільки зусиль доклав чи планує докладати в майбутньому, щоб розвиватись як фахівець.

Цікаво почути про попередній досвід: де і як були застосовані знання, можливо, є частковий досвід на поточній роботі чи у волонтерському проєкті, залученість у суміжні сфери, які навчальні ресурси використовував кандидат.

SoftServe

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

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

Sigma Software

Звісно, багато залежить від конкретної позиції та вимог до кандидата. Ми звертаємо увагу на те, чи людина проактивна, самостійна, готова брати відповідальність, вміє виходити з кризових ситуацій і розв’язувати проблеми, а не просто перекладати їх на свого керівника. Залежно від того, як відповідає кандидат, можна зробити певні висновки.

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

Оцінюємо навички комунікації, наскільки легко людина веде діалог, чи не боїться ставити запитання тощо.

Важливим є певний “метч” між кандидатом і технічним спеціалістом, що проводить співбесіду, адже зазвичай ці люди разом працюватимуть на одному проєкті, тому краще, щоб вони мали схожий набір цінностей та поглядів.

Як правило, на співбесіді кандидата спитають про професійний розвиток і чи докладає він зусиль для зростання самостійно – відвідує курси, проходить сертифікації, дивиться подкасти, читає книжки.

Luxoft

Критерії відбору стали наближеними до загальносвітового розуміння. Варто пам’ятати — кандидат, який не має практичного реального досвіду роботи, не може вважатися Junior, таких ми відносимо до рівня Intern з відповідними фінансовими очікуваннями.

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

Intellias

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

Щоб дізнатись більше інформації, ставимо уточнювальні запитання, як-от:

  • Чому кандидат зараз у пошуку роботи?
  • Що подобалось, а що ні в попередній компанії (якщо працював)?
  • Що саме зацікавило в нашій вакансії?
  • Якою є для вас ідеальна робота?
  • Які задачі подобаються, з якими технологіями цікаво було б працювати?
  • Чи був досвід роботи в команді?
  • Більше подобається працювати самому чи в команді?
  • Як бачите себе в компанії за 2-3 роки?
  • Чи відвідуєте конференції, мітапи, тренінги?
  • Чим займаєтесь у вільний від роботи час?
  • Як ви дотримуєтесь work-life balance?

GlobalLogic

Перше, на що звертає увагу інтерв’юер, це доречний зовнішній вигляд кандидата. Оскільки більшість співбесід тепер відбуваються онлайн, важливо дбати ще про бекграунд і відсутність зайвого шуму під час співбесіди.

Наприклад, влітку бували випадки, коли хлопці виходили на відеоконференцію без футболок. Чи коли кандидати виходили на зв’язок з кафе або в машині з телефона. Окрім поганої якості звуку, в таких умовах важко або взагалі неможливо виконати тестове завдання.

Про мотивацію найкраще свідчить кількість влучних запитань, які ставить кандидат під час співбесіди — це означає, що він попередньо дізнався про компанію та проєкт. Якщо спеціаліст не зміг відповісти на якесь складне питання, то буде плюсом, якщо наприкінці співбесіди він поцікавиться в інтерв’юера, якою була правильна відповідь, або запропонує повернутись пізніше з правильним розв’язком тестової задачі.

Коли фахівець пасивний, тобто дуже стисло і сухо відповідає на питання, і з нього доводиться витягувати кожне слово — це поганий знак. Перевагу віддаємо більш залученим спеціалістам, що проявляють активну життєву позицію.

Eleks

Рекрутери звертають увагу на те, як людина комунікує, однак розуміють, що інтерв’ю (особливо перші) можуть бути стресом для кандидата/-ки, тому хвилювання і голос, що тремтить, не впливають на рекомендацію.

Додаткові запитання від кандидата дають рекрутеру змогу більше дізнатися про потенційного колегу, зіставити його/її цінності з цінностями компанії. Збіг у цінностях – це важливо для обох сторін.

Якщо співбесіда відбувається на конкретний проєкт, то рекрутерам бажано дізнатися і про хобі, уподобання людини. Це допоможе зрозуміти, наскільки їй буде комфортно в команді.

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

Запізнення на співбесіду – це поганий маркер. У цьому випадку варто попередити про затримку чи перенести зустріч.

DataArt

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

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

Як варто поводитись, якщо ви не знаєте відповіді на запитання.

Добре, коли кандидат не боїться взяти хвилину на роздуми, щоб краще відповісти, але важливо не затягувати, оскільки це псує загальне враження. Особливо якщо таких пауз буде багато. Коли кандидат говорить, що чогось не знає, це нормально, особливо якщо він або вона зацікавлені у вивченні цієї технології, підходу тощо.

Важливими є прагнення до навчання та допитливість, бажання розв’язувати складніші задачі.

Інтерв’юеру ж варто заспокоїти кандидата, оскільки кожна співбесіда, особливо для молодших фахівців, зазвичай є стресом. Буде прикро втратити талановитого колегу через звичайну нервовість, тому не варто бути занадто формальним та суворим. До того ж часто людина виявляється продуктивнішою під час роботи, ніж на інтерв’ю.

Про формулювання відповідей.

Інколи кандидат розказує багато не на тему і доводиться його перебивати. Іноді, навпаки, людина відповідає кількома словами й доводиться ставити багато додаткових запитань, щоб почути бажану відповідь. Чудово, коли кандидат тримається золотої середини: формулює відповідь стисло в плані слів, але розлого в плані сенсу.

При цьому “прикрашати” свої досягнення не варто. Досвідчений інтерв’юер легко це побачить.

Радимо брати участь в open source проєктах, оскільки таким чином можна набути потрібні навички без комерційного досвіду. Єдине: читання статей та дослідження інформації на відкритих ресурсах може дати тільки теоретичні знання.

Важливо розуміти, чим цікавиться кандидат поза роботою, оскільки людина має зберігати work-life balance, дотримуватися графіків і таким чином не доводити себе до професійного вигоряння.

Universe (Genesis)

Спеціалісти без досвіду часто подаються на першу-ліпшу роботу. І багато хто взагалі не готується до співбесід з менеджером, не читає нічого про компанію і не готує запитання про задачі, команду або продукт. Для багатьох HR-менеджерів важлива небайдужість, щоб кандидат проявляв зацікавленість у вакансії.

Якщо спеціаліст чогось не знає з теорії, то краще відверто про це сказати, не намагатися прикрашати, бо менеджер завжди зможе оцінити реальні навички кандидата. Ми в команді дотримуємося думки, що якщо спеціаліст чогось не знає, але дуже хоче — то його можна навчити та підтягнути. Якщо ж він не поділяє наші цінності, то ми навряд чи зможемо спрацюватися

Що має знати junior, middle, senior розробник: відмінності рівнів та як зростати

Ким ти бачиш себе через 5 років? Рекрутери та HR-менеджери не втомлюються ставити це питання, а кандидати продовжують стримано відповідати: middle, senior, team lead.

Але який шлях до цих професійних рівнів? Що потрібно зробити, щоб вирватись із позиції junior та з гордістю написати в LinkedIn middle? І як виглядає подальший карʼєрний розвиток? Чим middle принципово відрізняється від senior? Відповідаємо на ці запитання в статті та розбираємо ключові скіли розробника на кожному етапі.

Як стати junior розробником?

Для початку розберемось у термінах. У загальному розумінні junior — це новачок із мінімально необхідним багажем знань для самостійного виконання завдань. Для кращого розуміння поділимо junior-спеціалістів на 4 категорії:

  1. Стажер (trainee) – Це людина, яка знаходиться за крок до того, щоб стати junior-розробником. Trainee вже знають основи мови програмування, однак застосовувати її для розв’язання реальних задач ще не вміють. Кожна задача має бути розписана покроково від А до Я. Здебільшого, це стажування. Тобто trainee працює на досвід, але про фіксовану зарплату поки не йдеться.
  2. Junior-новачок. Це стадія, на якій junior отримує перший офер на фултайм, а разом із тим свої перші реальні задачі. Такий розробник має достатньо знань, щоб виконувати прості задачі без детального опису. Новачок вміє працювати з документацією та знаходити в ній потрібну інформацію. Головні задачі на цьому етапі — «набивати власні шишки», вчитися в досвідчених колег і ставити багато запитань.
  3. Middle junior developer. На цьому етапі вже можна купувати футболки з айтішними приколами. Випробувальний термін за плечима, а всі процеси командної розробки вже зрозумілі. Тепер цьому спеціалісту можна давати задачу та не контролювати її виконання протягом дня. Самостійно декомпозувати задачі такий junior ще не вміє, але вже ставить більш глибокі та конкретні запитання.
  4. Strong junior. Це категорія, на якій спеціаліст за технічними скілами вже middle або дуже близький до нього. Останнє, чого не вистачає, — це суттєвий досвід у вирішенні бізнес-задач.

Як стати middle developer?

Middle — це програміст, який, на відміну від junior-спеціаліста, уже вміє розв’язувати свої проблеми самостійно. Але старші колеги можуть допомогти, якщо виникли труднощі, з якими middle не може до кінця розібратися без допомоги.

Вимоги до володіння технологіями в кожній компанії можуть різнитися, тому ми в загальних рисах окреслимо те, що зазвичай очікують від middle-спеціалістів.

Hard skills

  • Розуміння технологій, які використовуються в роботі. Middle має глибоко розбиратись у програмі, яку пише. Важливо розуміти, як працюють певні конструкції мови, і вміти пояснювати це іншій людині простими словами.
  • Проведення code-review. Вміння розібратись у чужому коді — чудовий спосіб поділитися власним досвідом. Крім того, це дозволяє зрозуміти загальну структуру програми та побачити місця, які можна покращити.
  • Вміння декомпозувати задачі. Зазвичай middle програміст пише код довше, ніж junior. Це повʼязано з тим, що досвідчений спеціаліст спочатку має розбити свою задачу на декілька послідовних етапів і відповісти собі на запитання, чому план виглядає саме так. Надалі це допоможе аргументувати свої рішення. Також це тренує вміння розбиратись у чужому коді.
  • Надивленість. Для того, щоб приймати правильні рішення, необхідно побачити безліч поганих і хороших рішень інших розробників. Middle (власне, як і спеціаліст будь-якого рівня) має бути в контексті всього, що відбувається в індустрії: технології, практики, успіхи та провали.
  • Розуміння алгоритмів і того, де їх можна застосовувати. Світ програмування змінюється дуже швидко, але стабільними залишаються алгоритми. Важливо розуміти причинно-наслідкові звʼязки роботи певних речей, а також застосовувати алгоритми на практиці, замість того, щоб мучити себе сухим зазубренням.
  • Вміння писати зрозумілий код. Досвідчений розробник завжди пише простий код, який буде зрозумілий колегам.

Soft skills

  • Самостійність
  • Вміння бачити вимоги бізнесу
  • Розуміння кінцевої мети проєкту
  • Класні комунікативні навички
  • Рівень англійської Upper-Intermediate та вище
  • Вміння ясно доносити свої думки
  • Прагнення до подальшого карʼєрного розвитку

Як стати senior розробником?

Senior developer — це сильний фахівець, який володіє знаннями не тільки з програмування, а й із суміжних галузей. Починаючи з цього рівня, програміст може не лише самостійно працювати, а й вести проєкти.

Основне завдання senior-спеціаліста — приймати правильні технологічні рішення в проєкті — тобто такі, які приносять максимальну користь бізнесу та мінімізують витрати.

Шлях до цієї позиції довгий та складний. Досвід — це не те, що завжди можна виміряти в роках, але в середньому до рівня senior можна дійти за 5-7 років інтенсивної роботи.

То що ж потрібно мати/знати/вміти перед тим, як подаватись на performance review на цей професійний рівень?

  • Досвід. Головний показник досвідченості — успішно запущені IT-продукти, які працюють та розв’язують певну задачу бізнесу.
  • Технічні скіли. Senior створює та продумує архітектуру проєкту, пише інструменти для вирішення завдань у розробці та фреймворки, якими користуються джуніори та middle-спеціалісти. Від senior-розробника вимагають не лише знайти рішення, а й переконати в його правильності замовника та команду.
  • Розуміння всієї картини проєкту. Для однієї задачі існує безліч рішень, але саме senior-розробник здатний визначити, яке є оптимальним у конкретному випадку.
  • Комунікативні навички. Senior програміст часто веде проєкти самостійно, тому дуже важливо вміти опрацьовувати ТЗ (технічне завдання) замовника, ставити правильні запитання, встановлювати терміни виконання та вибудовувати план робіт. Крім того, робота в команді все ще залишається надважливою складовою. Senior вміє організувати робочий процес та не лякається таких термінів, як Agile, Scrum та Kanban.
  • Навички ментора та інтервʼюера. Підбір персоналу та навчання новачків часто лягає на плечі senior-розробника. Досвід дозволяє визначити, які запитання ставити, щоб виділити сильні та слабкі сторони кандидата, а також як організувати робочий процес для тих, хто вже пройшов співбесіду.

А що далі? Куди зростати senior?

Senior — це dream етап для кожного програміста. Саме зараз за нього змагаються рекрутери та роблять найспокусливіші офери. На цьому рівні можна не перейматись, що тебе звільнять через найменшу помилку, бо таких спеціалістів на ринку мало.

Однак це не привід розслаблятися та більше не ставити собі цілей. Senior програмісти як ніхто знають, наскільки важливо постійно розвиватися, освоюючи нові й нові горизонти. Вони ніколи не обмежуються одним набором інструментів, адже в прагненні оптимізації робочого процесу так чи інакше доводиться звертатися до чогось нового.

Куди може розвиватись senior-розробник?

Техлід (Tech Lead)

Також CTO (Chief Technical/Technology Officer) або CIO (Chief Information Officer). Це спеціаліст, який будує архітектуру для всієї команди та є найсильнішим розробником у команді. Саме техлід обирає технічне вирішення завдання: пропонує використовувати певні фреймворки, технології та бібліотеки. До обовʼязків також входить перевірка коду та вирішення найскладніших чи найвідповідальніших технічних завдань.

Тімлід (Team Lead)

Це досвідчений програміст і хороший менеджер одночасно. Основне завдання — комбінувати технічно грамотні рішення з управлінням командою.

Проджект-менеджер (Project Manager)

Спеціаліст, який координує проєкт, організовує взаємодію між відділами, керівниками та замовниками. У невеликій компанії один спеціаліст може поєднувати в собі роль тімліда та проджекта.

ІТ-архітектор

Розробник із великим досвідом реалізації комерційних проєктів, який вміє закладати архітектуру (каркас) складної ІТ-системи. Головне завдання IT-архітектора — знайти оптимальне рішення між потребами замовника та можливостями команди.

Можна довго дискутувати щодо того, скільки часу потрібно, щоб дістатися карʼєрних вершин. Але в кожного свій темп і свої цілі. Незмінним залишається одне — в ІТ майже неможливо вичерпати себе та досягти стелі. Постійний розвиток, прагнення до крутих проєктів, драйвова команда, амбітні цілі та чітке розуміння їх втілення — це і є план реалізації власного професійного потенціалу.

Якщо тобі подобається IT сфера та ти тільки думаєш про карʼєру в айті, пройди наш профорієнтаційний тест. Дізнайся, яка спеціальність підходить саме тобі. Або ж обирай один з наших it курсів та успішно зростай від Junior до Senior і вище 😉