Хочу стати backend-розробником: що треба знати та вміти

top_writer

top_writer

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

Чим займаються люди, які вибирають таку професію? З чого варто розпочинати свій шлях? Про базові речі, які вам варто знати, розповів Олександр Пригун, Team Lead .NET Developer голландської IT компанії 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.

Поділитися:

Facebook
Telegram
Email
Ми почали прямий етер!
Приєднуйся до нас

Раз на тиждень ми відправляємо дайджест з актуальними вакансіями та корисними матеріалами