Як отримати роботу розробника. Покрокова інструкція з проникнення в технологію.

Як отримати роботу розробника. Покрокова інструкція з проникнення в технологію.
  • Приблизний час читання: 8 хв
  • 17 Листопада, 2024

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

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

Проте навіть після закінчення навчання багато хто стикається з труднощами при пошуку роботи. Це не дивно, адже на ринку є велика кількість вакансій, але часто на них вказують вимогу щодо досвіду роботи від одного чи двох років. І це може збити з пантелику, адже зазвичай кандидати на позицію junior developer тільки що завершили навчання і не мають комерційного досвіду. Однак чи справді важливий цей «рік досвіду»? Насправді, цей пункт у вакансії часто ставиться не стільки для того, щоб відсіяти кандидатів без досвіду, скільки для того, щоб знайти людину, яка зможе без труднощів взятися за роботу й одразу виконувати її на високому рівні без зайвих питань до керівництва.

Тому «рік досвіду» не завжди є критичним фактором. Часто це просто спосіб відфільтрувати тих, хто тільки починає свій шлях у програмуванні і не має реального практичного досвіду. Справжня мета таких вимог полягає в тому, щоб знайти не просто junior, а strong junior.

Що ж відрізняє звичайного junior від strong junior? Junior — це початківець, який закінчив курс, створив кілька простих програм під час навчання і може бути впевнений у своїх теоретичних знаннях. Однак ці знання потребують практичного підтвердження. Strong junior — це той самий початківець, але вже з практичним досвідом. Така людина не тільки має хорошу базу знань, а й розуміє етапи розробки проекту та здатна працювати над реальними проєктами. Це може бути навіть тестовий проєкт, створений для себе, наприклад, інтернет-магазин з корзиною та реєстрацією користувачів. Якщо ж ви подаєтеся на позицію верстальника, це можуть бути кілька веб-сторінок, залитих на GitHub або іншу платформу для обміну проектами.

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

Припустимо, ми закінчили навчання, створили кілька власних проектів і опублікували їх на GitHub. Що потрібно робити далі? Наступним кроком є опис проектів і створення резюме. У резюме важливо вказати, скільки часу ви навчалися, які проекти створювали, які технології використовували і якими навичками володієте. Це має бути чітко та детально викладено, адже саме це стане першим враженням про вас як спеціаліста.

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

Також важливо зареєструватися на Djinni — ще одній платформі для пошуку роботи, яка активно використовується в Україні та інших країнах Східної Європи. Ця платформа дозволяє швидко знайти роботу, і вона є чудовим інструментом для програмістів-початківців. Однак не варто забувати, що є й інші фріланс-платформи, такі як Freelancehunt та Upwork. Тут також можна знайти роботу, але для того, щоб досягти хорошого доходу, потрібно витратити значний час на розвиток акаунта та на збільшення свого рейтингу. Більше того, деякі люди після тривалого часу роботи на фрілансі вважають, що їх досвід гарантує їм позицію сеньйора в компанії, однак це не завжди так. Кожна компанія має свої вимоги до рівня знань і досвіду, що пов’язано з внутрішніми стандартами та потребами. На відміну від фріланс-роботи, де ви часто працюєте самостійно, в компанії вам надається можливість розвиватися під наставництвом більш досвідчених колег, що значно прискорює ваш професійний ріст.

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

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

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

Основні типи співбесід

  1. Телефонна або відео співбесіда (screening interview)
    • Мета: Перевірити загальні знання кандидата, мотивацію, та відповідність його кваліфікації вимогам вакансії.
    • Зазвичай, на цьому етапі рекрутер запитує про ваш досвід, проєкти, якими ви займалися, і технології, з якими ви працювали. Можуть бути і базові технічні запитання, щоб побачити, наскільки добре ви розумієте основи (наприклад, різниця між HTTP і HTTPS або як працює кешування).
    • Тривалість: 20–30 хвилин.
  1. HR-інтерв’ю
    • Мета: Оцінити особистісні якості кандидата, його комунікаційні навички, мотивацію та здатність працювати в команді.
    • Тут вам можуть поставити питання, що стосуються ваших кар’єрних цілей, сильних і слабких сторін. Важливо показати, що ви здатні до саморозвитку та відкриті до нових можливостей. Також на цьому етапі часто обговорюються умови роботи, зарплата та робочий графік.
  1. Технічна співбесіда
    • Мета: Оцінити ваші технічні знання та вміння вирішувати конкретні задачі.
    • Ця частина може включати питання з алгоритмів, структур даних, баз даних і системного дизайну. Ви можете бути запитувані про те, як вирішити певні технічні проблеми або побудувати систему, що враховує масштабованість та ефективність. У деяких випадках співбесіда включатиме завдання на папері або в онлайн-форматі (наприклад, на платформі LeetCode).
    • Тривалість: 1–2 години.
  1. Співбесіда з вирішенням задач (coding interview)
    • Мета: Перевірити реальні навички програмування кандидата.
    • Це співбесіда, де вас можуть попросити вирішити задачу на алгоритми або структури даних в реальному часі, зазвичай за допомогою онлайн-інструментів (наприклад, CoderPad, HackerRank). Завдання можуть бути спрямовані на логічне мислення і навички оптимізації, а не просто на знання синтаксису мови програмування.
  1. Тестове завдання
    • Мета: Перевірити реальні вміння кандидата в умовах, наближених до реальної роботи.
    • Це завдання, яке ви отримуєте вдома, щоб виконати його за певний час. Після виконання завдання ви повинні надіслати своє рішення роботодавцю. Важливі критерії оцінки — якість коду, правильність реалізації, коментарі, тестування та оптимізація рішення.

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

Мій досвід співбесід

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

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

Важливі уроки

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

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

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