top of page

Довідник для джуна. Чого бракує кандидатам-розробникам — розповідають CTO


Бінарний код у книзі

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


Понад 6 років Genesis активно інвестує у розвиток IT-освіти задля того, щоб ринок отримував більше кваліфікованих спеціалістів, а талановита молодь мала змогу розвивати та застосовувати на практиці свої здібності. У партнерстві із Києво-Могилянською академією компанія запускає безкоштовну школу для розробників-джуніорів Genesis & KMA Software Engineering School. За 12 тижнів навчання учасники отримають теоретичні й практичні знання про побудову «чистої архітектури», роботу з базами даних, інфраструктуру та SDLC — ті знання та навички, яких найчастіше не вистачає кандидатам-джунам на співбесідах. Що ще треба вдосконалити початківцям? Відповіді на це питання точно мають ті, хто співбесіди проводить.


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



AMO


Міжнародна IT-компанія, яка створює продукти й історії для мільйонів користувачів. Має три великі підрозділи: AMO Publishing, AMO Pictures та AMO Apps.


Мови для back-end: PHP, Go, Node.js, TypeScript.

Фреймворки для back-end: Symfony, Node.js.

Фреймворки для front-end: Next.js, React.js, Node.js.

Хмарні середовища: AWS.

Мобільна розробка: Kotlin i Swift.



Розповідає Олег Лавренко, Head of Engineering Department:


Які мови програмування мають вивчатися в університетах, щоб випускники були готові до роботи в продуктовому ІТ?


PHP, Python, Go, TypeScript.



Чого бракує кандидатам-розробникам?


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



Holy Water


Компанія-розробник заснованих на даних застосунків та рольових мобільних ігор.


Мови для back-end: JavaScript, Python.

Фреймворки для back-end: Flask, Node.js.

Фреймворки для front-end: React.

Хмарні середовища: AWS, Google Cloud Platform.

Мобільна розробка: Swift, Unity, Kotlin, React native.



Розповідає Анатолій Касьянов, CTO:


Які мови програмування мають вивчатися в університетах, щоб випускники були готові до роботи в продуктовому ІТ?


Усі. Насправді потрібно фокусуватися не на мовах, а на технологіях — front-end, back-end, mobile.



Чого бракує кандидатам-розробникам?


По-перше, розуміння своєї мотивації та усвідомлення, чому саме обрав ту чи іншу сферу розробки. По-друге, ініціативності. По-третє, технічні навички. Часто у кандидатів дуже слабке розуміння мови або основної технології.


Розподіл мов для backend, які використовують у Genesis


PlantIn


Компанія, що розробляє застосунок-помічник для розпізнавання рослин на основі штучного інтелекту і є №1 у світі.


Мови для back-end: Node.js.

Фреймворки для back-end: Serverless.

Фреймворки для front-end: Next.js, SwiftUI.

Хмарні середовища: AWS.

Мобільна розробка: Swift.



Розповідає Дмитро Гринець, CTO:


Які мови програмування на твою думку мають вивчатися в університетах, щоб випускники були готові до роботи в продуктовому ІТ?


JavaScript.



Чого бракує кандидатам-розробникам?


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



Lift


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


Мови для back-end: PHP.

Фреймворки для back-end: Symfony.

Фреймворки для front-end: React, Angular.

Хмарні середовища: AWS.

Мобільна розробка: Swift.



Розповідає Олександр Рутенко, iOS Tech Lead:


Які мови програмування мають вивчатися в університетах, щоб випускники були готові до роботи в продуктовому ІТ?


Swift/Kotlin.



Чого бракує кандидатам-розробникам?


Базових знань з computer science, алгоритмів та структури даних. Якщо закласти гарний фундамент, потім без проблеми можна вибирати різні мови програмування.



OBRIO


Лінійка мобільних застосунків, що працюють на глобальному ринку. Флагман компанії — астрологічний застосунок Nebula, №1 у світі. Компанія має 4 окремі напрями (mobile, web, SaaS, GameDev), які використовують різні технології.


Мови для back-end

Mobile: PHP, Node.js. Web: JavaScript, TypeScript. SaaS: TypeScript.

GameDev: В Unity – C# Unreal Engine – C++.



Фреймворки для back-end:


Mobile: Symfony, Laravel. Web: Nest.js. SaaS: Nest.js.


Фреймворки для front-end:


Mobile: Angular, React. Web: TypeScript – React.



Хмарні середовища:


AWS, DigitalOcean.

Мобільна розробка: Kotlin i Swift.


Розподіл фреймворків для frontend, які використовують у Genesis

Які мови програмування мають вивчатися в університетах, щоб випускники були готові до роботи в продуктовому ІТ?


Антон Володазський, Head of Engineering (Mobile Apps Team):


Для розробки мобільних застосунків під iOS – Swift, під Android — Kotlin. Для back-end –

Node.js.

Олексій Рум'янцев, Node.js Developer (Web Team):


Java, C#, JavaScript (Node.js) — для розробки back-end-застосунків. JavaScript і TypeScript — для розробки вебзастосунків


Микита Мачехін, Node.js Developer (SaaS Team):


JS на базі Node.js — чудовий варіант для першої мови. Гнучкість мови дозволяє без заглиблення у rocket science швидко навчитися програмуванню.


Віктор Антоненко, Lead Unity Developer (GameDev Team)

C++, C#.



Чого бракує кандидатам-розробникам?

Антон Володазський, Head of Engineering (Mobile Apps Team)


Більшість кандидатів не мають базових знань про OOP, SOLID, шаблони проєктування ПЗ та можливості мови без використання фреймворку. Якщо говорити про PHP, то є слабке розуміння багатопоточності. Часто бракує досвіду і знань із побудови розподіленої архітектури та оптимізації системи під високу навантаженість. Бракує розуміння, як ефективно працювати з базами даних — MySQL та іншими.


Микита Мачехін, Node.js Developer (SaaS Team):


Що ми очікуємо від кандидата:

  • Знання стандарту своєї мови (EcmaSript) та взаємозвʼязків між стандартами, провайдерами «движків» та рантаймами.

  • Знання можливостей та обмежень Node.js.

  • Розуміння тонкощів реалізації базових операцій у вебзастосунках — як реалізувати «скидання» пароля, збереження картинок користувача, підтвердження пошти, спілкування зі сторонніми сайтами тощо.

  • Чистота коду — SOLID, GRASP.

  • Паралельне та мультипроцесове програмування — навіщо, які є складнощі у реалізації, як реалізувати у Node.js.

  • Знання середнього рівня про необхідні для застосунків сервіси — postgresql, websockets, хоча б одна черга повідомлень, кеширування в пам’яті.

  • Безпека — добре розуміння вразливостей та як з ними боротися.


Віктор Антоненко, Lead Unity Developer (GameDev Team)


Для якісної роботи в геймдеві важливо добре розуміти ООП, знати й вміти використовувати патерни проєктування. Загальна проблема кандидатів — незнання базових речей, наприклад життєвого циклу MonoBehavior. Це можна виправити, переглянувши документацію Unity перед співбесідою. Окрім цього, багато кандидатів під час написання тестового не приділяють увагу структурі й зв'язкам — не закладається навіть мінімальна архітектура, а класи пов'язуються несистемно.



Suitsme


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


Мови для back-end: C#.

Фреймворки для back-end: .NET 6, Asp.net core, Entity Framework 6, Z.EntityFramework.Plus.

Фреймворки для front-end: Vue.js. Asp.net core.

Хмарні середовища: AWS.

Мобільна розробка: Unity3d під iOS та Android.



Розповідає Борис Салтан, Lead Unity Developer:


Які мови програмування мають вивчатися в університетах, щоб випускники були готові до роботи в продуктовому ІТ?


C#, Java, JavaScript, Python, C++.



Чого бракує кандидатам-розробникам?


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


Розподіл фреймворків для backend, які використовують у Genesis


Компанії-партнери Genesis


Headway


Компанія, що розробляє мобільні EdTech-продукти, які допомагають мільйонам людей навчатись через лаконічний (bite-sized) контент.


Мови для back-end: Go.

Фреймворки для front-end: Next.js.

Хмарні середовища: Google Cloud.

Мобільна розробка? Kotlin i Swift.



Розповідає Олександр Михайлюта, Back-end Lead:


Які мови програмування мають вивчатися в університетах, щоб випускники були готові до роботи в продуктовому ІТ?


Насправді фокусуватися краще не на мовах, а на базі та підходах до її побудови, тому найкраще — отримати ґрунтовну інженерну освіту. Побутує думка, що краще починати з Pascal, і я з нею погоджуюсь. Потім варто освоїти C. А ще згодом — одну сучасну мову, що компілюється, на кшталт Java/Kotlin/Swift/C#/Go/Rust, та одну, що інтерпретується — JavaScript, Python, PHP.



Чого бракує кандидатам-розробникам?


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



Хмарні середовища, які використовують у Genesis


Solidgate


Платіжний провайдер, що надає онлайн-підприємцям можливість приймати всі види популярних у світі платежів. Фокусується на ринках США, ЄС, Латинської Америки та Азійсько-Тихоокеанського регіону.


Мови для back-end: Go, Java, Kotlin.

Фреймворки для back-end: Spring.

Фреймворки для front-end: React.js.

Хмарні середовища: AWS (RDS Aurora, Fargate, KMS, WAF, CloudFront).

Мобільна розробка: Немає.



Розповідає Владислав Пістун, Tech Lead:


Які мови програмування мають вивчатися в університетах, щоб випускники були готові до роботи в продуктовому ІТ?


Go, JavaScript.



Чого бракує кандидатам-розробникам?


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



Розповідає Микита Глушак, DevOps Team Lead:


Чого бракує кандидатам-розробникам?


Уявлення, як має функціонувати production-ready система. Для цього рекомендую звернути увагу на OWASP Framework, прочитати про 12-factor App. Ці, свого роду, маніфести, досить стисло і доступно дадуть загальне уявлення про те, що потрібно враховувати при розробці застосунків та сервісів.


***


Найголовніше, що відзначають усі техліди, які наймають джунів — брак базових технічних знань та нерозуміння основ, за якими функціонують технології. Без фундаменту не побудудувати дім, без міцного підгрунтя не стати кваліфікованим спеціалістом. В цьому допоможуть лектори школи Genesis & KMA Software Engineering School — закласти основу, систематизувати знання та розвинути архітектурне мислення.



Підписуйся на нашу розсилку та отримуй корисні матеріали першим!

Надаючи вашу електронну адресу, ви погоджуєтесь з нашою Політикою приватності.

Дякуємо, що підписалися.

image-from-rawpixel-id-5996033-png.png
bottom of page