ІТ сфера залишається однією із галузей, що стабільно працюють навіть попри війну в Україні. І одним із її популярних і перспективних напрямків сьогодні є бекенд-розробка. Бекендер потрібен всюди, де є застосунок чи веб сайт, який взаємодіє з користувачами. А саме: для Інтернет-магазинів, сайтів компаній, сервісів платежів, агрегаторів послуг, маркетплейсів та ін.
У цій статті розповідаємо про професію Backend розробник: чим він займається, з якими спеціалістами взаємодіє в роботі, якими знаннями та навичками повинен володіти, а також які шляхи його професійного зростання.
Хто такий backend розробник. Основні завдання та етапи роботи
Будь-який сайт, застосунок чи Інтернет-сервіс складається із двох частин: frontend (картинка, все те, що користувач бачить на сайті) та backend (код, за допомогою якого працюють усі кнопки та функції). Тобто фронтенд — це наче сцена, а бекенд — її залаштунки.
Фронтендер відповідає за те, щоб сайт чи застосунок добре виглядав на різних пристроях і браузерах, щоб усі кнопки та форми працювали належним чином. А от бекендер відповідає за зв’язок «клієнт-сервер». Для користувача робота бекенд розробника непомітна, адже він не думає, як влаштований сайт чи застосунок всередині.
Backend Developer створює програми, які виконуються на серверах і здійснюють обчислення, необхідні для роботи сайтів. Він відповідає за швидку та коректну роботу сайту чи застосунку, безпеку та надійність зберігання даних, інтерфейс прикладного програмування (API), організовує роботу з базами даних, розробляє архітектуру, логіку та алгоритми роботи ресурсу. Він пише серверний код, що допомагає браузерам «спілкуватися» з базами даних, обробляти та зберігати інформацію в них.
Головне завдання бекенд розробника полягає у реалізації серверної частини продукту, при цьому його робота проходить у кілька етапів:
- Вивчення технічного завдання, що надає клієнт або аналітик іт компанії.
- Проєктування продукту чи його функціоналу.
- Вибір підходу, фреймворків, баз даних, мов програмування, пошукового двигуна, способу кешування та інших інструментів Backend-розробки. Це дозволяє визначити, як зробити зручні, інтуїтивно зрозумілі прототипи, та перетворити їх на сайти/застосунки.
- Реалізація (написання високоякісного чистого коду).
- Перевірка якості (оцінка ефективності, швидкості, правильності відображення у браузерах та пристроях тощо). Часто у компаніях, де немає QA, тестування виконується бекендером. Якщо ж у команді є тестувальник, завдання бекенд програміста зводиться до development-тестування.
- Усунення багів.
- Підтримка існуючого коду чи рішення.
Робота бекенд розробника має свою переваги та недоліки.
Плюси професії:
- Творча робота. Бекендер має можливість працювати над масштабними і часто унікальними проєктами, створювати продукти для сотень тисяч чи навіть мільйонів користувачів.
- Високий рівень зарплати. На її розмір впливає досвід роботи та рівень володіння англійською мовою. У цілому зарплати бекендерів є одними із найвищих серед інших ІТ-спеціалізацій.
- Затребуваність на ринку. У висококласного фахівця з сильною технічною англійською ніколи не буде проблем із працевлаштуванням, навіть у міжнародних компаніях.
- Можливість отримати роботу без наявності профільної освіти. Академічна технічна освіта для бекендера бажана, але не обов’язкова. Як свідчать результати опитування StackOverflow, близько 60% фахівців навчилися програмувати за допомогою онлайн-ресурсів.
Мінуси:
- Складність працевлаштування для новачків без досвіду.
- Відсутність візуальної естетики (бекендер не може похвалитися результатами своєї роботи перед пересічними користувачами, як фронтедер чи UI/UX дизайнер, що можуть «похизуватися» ідеальним інтерфейсом сайту).
- Дуже багато комунікації: мітинги з членами команди, переговори з клієнтом, проджектом, фронтендером, через що залишається обмаль часу на написання коду.
Взаємодія бекенд розробників з іншими спеціалістами
На пет-проєктах (власних проєктах розробника, над якими він працює у вільний час), Backend Developer одночасно може взяти на себе функції фронтенд-розробника, DevOps та QA-інженера. А от на великих проєктах продукт є результатом виключно командної роботи, де взаємодія між членами команди впливає на результат.
Зазвичай бекендер підключається на етапі проєктування, після того, як клієнт сформулює загальні вимоги. У цьому випадку він стає зв’язною ланкою між клієнтом й аналітиком. Далі він співпрацює із фронтендером. Це необхідно, щоб встановити взаємодію між користувачем та сервером.
Backend розробник комунікує і з DevOps, щоб продумати необхідні для оточення продукту допоміжні сервіси. Бекендер також знаходиться у тісній зв’язці із тестувальником, який підключається на різних етапах розробки з метою виявлення багів та підготовки опису деталей і місць, на які міг вплинути функціонал. Також він співпрацює із проджектами та архітекторами.
Які навички потрібні бекенд розробнику
Hard (технічні) та soft (соціально-комунікативні) навички бекенда здебільшого залежать від проєкту, його специфіки, стеку технологій, у розробці яких бере участь ІТ-спеціаліст. Із базових скіллів він повинен мати наступні:
Hard skills
- Розбиратися у тому, як працює Інтернет. А саме розуміти протоколи передачі інформації між клієнтом та сервером HTTP, а також DNS, взаємодія браузерів із сервером.
- Мати базові знання інтерфейсних мов HTML, CSS.
- В ідеаліback-end розробник повинен вивчити хоча б одну з «серверних» мов програмування (в ідеалі — 2-3): PHP, GoLang, C/C++, C#, Python, Ruby, JavaScript, Java.
- Вміти працювати із популярними веб-фреймворками. Різні ІТ компанії використовують різні фреймворки, що залежать від специфіки роботи та пов’язані з мовами програмування: Flask, Express.js, Spring, Django, ASP.NET core, Laravel, Ruby on Rails, Meteor, Node.js.
- Опанувати системи контролю версій GIT та GitHub.
- Знати бази даних: MySQL, PostgreSQL, SQLite, MongoDB, Oracle.
- Опанувати інтерфейс прикладної програми (API): REST, GraphQL, json, OpenAPI.
- Вивчити кешування (Redis, CDN).
- Розумітися на системах безпеки даних (CORS, CSP, HTTPS, SSL/TLS, хеш-алгоритмах).
- Знати SQL, реляційні та NoSql бази даних.
- Розуміти принципи об’єктно-орієнтованого програмування (ООП).
- Вивчити вебсервери: Nginx, Apache, Lighttpd, Microsoft IIS.
- Знати основи фронтенду.
- Бажано знати вищу математику.
- Мати знання UNIX або Linux.
- Розбиратися у СІ/CD та Docker.
- Мати навички написання юніт-тестів та покриття кодів тестами.
- Навички складання та оцінки ТЗ.
- Бажано розумітися на Scrum, Agile, Kanban.
Навички Backend Developer не обмежуються тільки технічними знаннями та вмінням їх застосовувати. Ці ІТ спеціалісти щоденно працюють із ІТ командою, інколи — клієнтами. Їм не обов’язково бути екстравертами із блискучим почуттям гумору, але щоб ефективно комунікувати із колегами, необхідно мати розвинені soft skills.
Soft skills бекенд розробника
- Відповідальність. Backend програмісти відповідають за те, щоб всі дані зберігалися, щоб сайт чи застосунок працював швидко, щоб враховувалися часові пояси, реляційні таблиці працювали коректно, тобто він відповідає майже за все. Його помилка може коштувати дуже дорого, наприклад, якщо дані про покупців Інтернет-магазину не будуть зберігатися або взагалі відбудеться їх виток.
- Уважність до деталей. У бекенд розробці не буває дрібниць, тому важливо ретельно проєктувати зв’язаність роботи усіх компонентів, при цьому нічого не упустити.
- Логічне мислення, аналітичний склад розуму. Бекендер повинен вміти аналізувати, чому частина коду не працює, передбачити помилки та знаходити креативні рішення проблем.
- Вміння працювати у команді, а саме: спілкуватися, а не конфліктувати, відстоювати свою позицію, а не бойкотувати. Важливо вміти ставити правильні питання, мати сильні навички письма та розмови, слухати та поважати думку інших, не приховувати свої чи чужі помилки та проблеми, бути передбачуваним.
- Працездатність. Бекенд розробники не можуть собі дозволити прокрастинувати. Часто їм доводиться працювати в умовах жорстких дедлайнів, тож важливо вміти зосередитися на роботі.
- Націленість на результат, вміння доводити усе до кінця, а саме отримати на виході застосунок, що коректно працює.
- Знання предметної області та бізнес-процесів. Тобто бекендер повинен розуміти, як усе влаштовано зсередини, за якими правилами працює. Часто клієнт описує завдання нетехнічною мовою, тож потрібно вміти ставити багато запитань, щоб звузити цей розмитий образ до чіткої картинки.
- Багатозадачність, а саме вміння переключитися із архітектури та логіки одного проєкту на інший.
- Навички планування, які дозволять уникнути факапів, авралів та працювати у спокійному режимі без овертайму.
- Знання англійської мови на рівні не нижче Intermediate. Інструкції, методичні матеріали, ІТ література, онлайн-лекції для самонавчання створені на цій мові. Так само і в інтернаціональних ІТ командах та міжнародних проєктах Бекенд програмістам не обійтися без англійської.
Кар’єрний розвиток для бекенда
Кар’єрний шлях у бекенд програмістів класичний: Junior, далі Middle, потім Senior та Lead. Перелік вимог та обов’язків на кожному рівні буде відрізнятися.
Junior — молодший спеціаліст, який працює із односкладовими завданнями та запитами, а саме: обробка запиту на сервер, отримання даних із БД. Для джуна достатньо володіти хоча б однією мовою програмування і розбиратися у базах даних. Джуніор не виконує самостійну роботу, він працює з допомогою колег та виконує доручення керівництва.
Middle знає кілька мов, володіє глибокими навичками програмування, розбирається в Docker та Kubernetes, розуміє ООП, працює з фреймворками. Це спеціаліст середнього рівня, який вже самостійно планує та вирішує завдання з мінімальною підтримкою колег. Серед завдань, які виконує мідл, — розробка окремої великої частини програмного інтерфейсу та модульне тестування.
Senior — старший Back-end розробник, який вирішує найбільш складні завдання: вивчення бізнес-потреб, продумування архітектури, контроль стану серверів, виправлення помилок, безпека даних. Крім того, він навчає молодших працівників.
Full-stack developer — універсальний програміст, який може розробляти як клієнтське, так і серверне програмне забезпечення, тобто об’єднує у собі навички frontend та backend.
Team lead — спеціаліст, який менше займається розробкою і більше виконує управлінські функції.
Якщо потужно прокачувати hard skills, ставати експертом у різних областях, є великий шанс вирости до Архітектора. За наявності міцних софт скіллів бекендер зможе легко стати Проджект Менеджером. Ну, а якщо прокачати усе разом, можна стати СТО. Врешті-решт можна відкрити власну компанію або створити свій стартап. Тож можливості росту у бекендерів майже необмежені. Власне, як і немає зарплатної «стелі».
Бекендери можуть розвиватися не тільки вертикально, але й переходити у суміжні сфери ІТ. Так, вони можуть перейти на інший стек технологій, стати фронтендерами, писати тести, засвоїти нейромережі, піти у кібербезпеку, DevOps, DevSecOps, фулстек-розробку та інші.
Щоб стати Back-end розробником, перш за все, потрібно отримати вищу технічну освіту (математичну, фізичну чи ІТ). Це дасть теоретичну базу для розуміння алгоритмів, паттернів, обчислювальних процесів тощо, розвинути аналітичне мислення.
Однак на бекендерів у ВНЗ не навчають, тому необхідно пройти додаткове профільне навчання, а саме:
- Зайнятися самоосвітою. За цією тематикою є багато навчальних матеріалів, відеоуроків, книг, форумів, блогів, статей. Недолік — такий шлях є доволі довгим, інформація може бути не систематизованою.
- Пройти навчання на спеціалізованих онлайн-курсах. Тут можна засвоїти з нуля теорію та отримати практичні навички, які дозволять стартувати у ІТ-професії Backend Developer.
- Навчатися під керівництвом досвідченого ментора, який підкаже правильний напрям, дасть відповіді на будь-які питання, що дозволить новачку швидше зрозуміти, що до чого.
Кілька слів наостанок
Сьогодні людина майже щодня використовує сайти, сервіси та застосунки, над якими працює бекенд (доставка їжі, бронювання авіаквитків, навчальні онлайн-платформи та інше). Безперебійний доступ до контенту, збереження даних, реалізацію логіки забезпечує саме Back-end розробник. З поширенням цифровізації потреба у таких спеціалістах буде ще більше зростати.
Якщо вас приваблюють серйозні та складні завдання, і ви бажаєте змінювати світ, створюючи продукти для величезної кількості користувачів, то ми в ІТ-компанії Eastern Peak наразі маємо кілька вакансій для ІТ-спеціалістів, у тому числі, бекенд розробників. Відправляйте резюме і приєднуйтесь до нашої іт команди.
Читайте також: