Article
May 23, 2022

ХОЧУ СТАТИ BACKEND-РОЗРОБНИКОМ: що треба знати та вміти

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

Anna Dychok
Employer Branding Manager

Чим займаються люди, які вибирають таку професію? З чого варто розпочинати свій шлях? Про базові речі, які вам варто знати, розповів Олександр Пригун, Team Lead .NET Developer у HYS Enterprise. Олександр не одразу знайшов себе в IT і багато років займав інші посади в різних сферах. Проте вже ні для кого не секрет, що розпочати свій шлях у програмуванні ніколи не пізно, а досвід Олександра лише підтверджує, що досягнути у цій сфері можна вдосталь. Головне – не зупинятись і просто зробити перший крок. Розпочніть з цього невеликого інтерв’ю.

– Як ти став backend-розробником? Що тебе приваблює у своїй професії? 

Вибір backend був радше випадковим. У момент, коли у мене з’явилась ідея реалізувати свої захоплення та «увійти в IT», мені на допомогу прийшов товариш, а сьогодні за сумісництвом колега. Він розповів мені про те, з чого потрібно починати навчання, який мінімальний базовий об’єм знань потрібно мати для того, щоб пройти перше інтерв’ю й т.д. У той момент переді мною не стояв вибір backend чи frontend, цікавим було буквально все. Але напрямок, який я перейняв від майбутнього колеги, був чистим backend. Тому надалі я й не відхилявся від того, що «зайшло» з першого разу.

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

– Що таке backend? Хто такий backend-розробник та чим відрізняється від frontend?

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

– Чим займається бекендер? Що входить в обов’язки backend-розробника?

Основна частина роботи бекендера часто пов’язана з розробкою:

  • доменних моделей,
  • бізнес логіки,
  • інтеграцій зі сторонніми системами,
  • транспортного рівня,
  • баз даних та різного роду сховищ,
  • юніт тестів
  • та багато іншого.

Якщо говорити про функціональні обов’язки, то я б виокремив кілька:

  1. Вивчення та уточнення завдань для розробки нового функціоналу.
  2. Безпосередньо сама розробка функціоналу.
  3. Розробка різного роду тестів.
  4. Тестування.

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

  1. Розгортання нових версій у Development/Test/Production оточенні.

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

  1. Підтримка коду/рішення, які вже існують.

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

Що потрібно знати backend-розробнику? 

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

  • алгоритми й структури даних;
  • парадигми програмування;
  • патерни проєктування;
  • уявлення про основні архітектурні підходи;
  • реляційні та нереляційні бази даних;
  • безпосередньо мови(а) програмування, з якими буде працювати інженер, а також основні фреймворки, що пов’язані зі стеком технологій, який застосовується;
  • системи контролю версій;
  • основні підходи у керуванні проєктами у сфері розробки програмних систем – Scrum, Agile, Kanban.

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

– Які мови використовуються у backend-програмуванні?

Мов та їх модифікацій, які використовуються у backend-програмуванні, величезна кількість. Спробую виокремети популярні: C#, C++, Java, Python, PHP, JavaScript, GoLang, Ruby та ін.

– З якими матеріалами радиш ознайомитись? 

В рекомендаціях наведу популярні джерела для .NET розробників.

  • «The Art of Computer Programming», Donald Knuth
  • «CLR via C#», Jeffry Richter

Коментар. Так, ця книга вже застаріла, остання версія .NET фреймворку, для якої вона виходила, була 4.5. Однак книга дає хороше розуміння, як все влаштовано під капотом.

  • «Pro C# 9 with .NET 5», Philip Japikse, Andrew Troelsen
  • «Pro ASP.NET Core», Adam Freeman

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

Замість висновку

Сподіваємось, ця стаття була корисною і backend став для вас трішки ближчим. У компанії HYS Enterprise вже кілька місяців функціонує HYS Academy – школа, яка навчає усіх охочих з базовими знаннями та дає можливість отримати свій перший комерційний досвід в IT. Незабаром фінішує перший курс «Backend» і стартує новий. Він абсолютно безплатний, єдина валюта, що приймається – це ваші знання та бажання навчатися. Ознайомитись та подати заявку можна тут.

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