Кем быть в IT: коротко об инженерных профессиях в разработке

Айтишники — те, кто создает цифровой мир, где мы с вами живем и с которым взаимодействуем через экран или голосовые команды, как в умных колонках. Но айтишник — это не название профессии. В отрасли уйма специализаций, каждый решает свои задачи. Если вам сложно определиться, чем именно заняться — подготовили краткий гайд по инженерным профессиям в IT.

Нам помогали эксперты:
  • Наталья Давыдова — frontend developer в банке «Точка», в свободное время консультирует джуниоров по карьерным вопросам.
  •  Никита Рукавков — 15 лет в IT, работает Lead DevOps в международной компании и занимается менторством.
  •  Владислав Ким — начинал с системного администрирования, а сейчас QA automation engineer в Kaspi. 

Кто делает все эти веб-сайты?

То что мы видим в браузере, создают frontend-разработчики — они программируют интерфейсы сайтов и веб-приложений. Берут дизайн-макет и превращают его в код. Благодаря фронтендерам страницы быстро загружаются, кнопки нажимаются, скроллинг работает, а анимация воспроизводится без ошибок. 

В работе фронтендеры обычно используют технологии HTML, CSS и JavaScript. Но внутри фронтэнда тоже есть свои специализации: каждый разработчик пользуется своим фреймворком. Есть, например, разработчики на React, Vue или Angular. Каждый фреймворк лучше походит для своих конкретных задач.

Освоить нужные языки программирования можно бесплатно на Coursera, а на Udemy есть курсы по JavaScript, а также по HTML и CSS .

Значит, именно фронтендеры отвечают за удобство и функционирование сайта?

Не совсем. Они отвечают только за внешнюю часть сайта, каким мы его видим. Внутренние процессы скрыты от пользователей. Мы не знаем, где хранятся наши данные для входа в личный кабинет или какой путь проходят деньги при оформлении заказа. Всем этим зпнимается backend-разработчик. Бэкендер «прикручивает» к сайту базу данных, систему оплаты, движок, заботится о безопасности всей системы.

Тут разнообразие языков программирования очень широкое. Работают на PHP, Java, Python, C#, Ruby. Оптимальный язык выбирают под конкретные задачи. И, также как и во фронтенде, могут использоваться разные фреймворки.

По теме
Как стать моушн-дизайнером. Мини-гид от бывшей переводчицы
Как стать моушн-дизайнером. Мини-гид от бывшей переводчицы

А можно заниматься и фронтендом, и бэкендом, или это уже перебор?

Один человек вполне может делать и фронтенд, и бэкенд. Таких программистов называют fullstack-разработчиками. Они умеют и верстать интерфейс, и выстраивать внутреннюю логику системы. Обычно fullstack востребован в небольших компаниях или на фрилансе — они делают не слишком сложные сайты. А когда проект масштабный, приходится учитывать много тонкостей — один человек не может быть профи во всем.

Крупные организации редко нанимают fullstack-разработчиков. Они в основном работают с малым и средним бизнесом, зато могут создавать продукт целиком и ни от кого не зависеть. Освоить fullstack-разработку можно на Coursera или Udemy

Есть и еще сфера — ноукод. Там тоже нет разделения на фронтендеров и бэкендеров: разработчик собирает сайт из готовых блоков, вообще без кода. 

Сайты совсем без кода — так можно?

Ноукод-разработчики работают в визуальных редакторах. Например, в Tilda, Readymag или Bubble. Это программы, заточенные под создание сайтов по принципу конструктора. В них есть готовые карточки товаров, галереи, формы обратной связи и другие фрагменты сайта, из которых можно собрать свой, как из LEGO.

Смежная профессия — лоукод-разработчик. Это когда какие-то простые элементы берут готовые, а более сложные фичи — программируют. Получается гибрид.

Кодом можно прописать всего пару строк: например, чтобы сделать какой-нибудь нестандартный чекбокс в интерфейсе. А можно большую часть сайта сделать с помощью кода, и вставить только несколько готовых блоков.

А если нужен не просто сайт, а серьезная программа, вроде Photoshop или MS Office?

Эти штуки уже называются приложениями. Но вообще, грань между сайтом приложением тонкая. Потому что не все приложения устанавливаются на компьютер. Некоторые работают только оффлайн, как Photoshop. Некоторые — только онлайн, как популярный графический редактор Canva. А есть приложения, которые работают и так, и так — скажем, офисный пакет Google.

Главное отличие веб-приложения от обычного сайта — уровень интерактивности. В приложении пользователь совершает больше действий, сильнее влияет на происходящее на экране, что-то создает.

В разработке приложений тоже участвуют фронтендеры. Интерфейс Photoshop и Microsoft Office, например, сверстан на Java. А бэкендеры, соответственно, отвечают за внутреннюю часть.

В зависимости от функционала, приложения могут решать самые разные задачи — всех профессий не перечислить. Обычно для их создания ищут просто программистов на C++, PHP, Ruby, Python — именно эти языки наиболее актуальны в разработке. 

Выходит, чтобы написать любую программу нужны фронтендеры и бэкендеры?

Не совсем. В жизни мы сталкиваемся с множеством программ, у которых в принципе нет интерфейса. Мы их просто не замечаем. Скажем, это программа системного блока автомобиля или какой-нибудь драйвер для Windows. По сути, разработка этих программ — это только бэкенд. Но этот термин не используют. А ищут, например, разработчика драйверов для Windows или разработчика на С++.

По теме
«‎Вы не можете знать все»‎. 13 советов начинающим менеджерам
«‎Вы не можете знать все»‎. 13 советов начинающим менеджерам

А что с программами для телефонов, кто их разрабатывает?

Мобильные приложения чем-то похожи на сайты — тут есть и интерфейс, и внутренняя логика, по которой всё работает. Но все это может сделать и один программист. Специализация идет по операционным системам — с iOS и Android программисты работают по-разному.

Есть iOS-разработчики, которые пишут на языках Swift и Objective-C, а есть Android-разработчики — их основной стек Java и Kotlin. Если под каждую ОС пишут отдельный код, это называется нативной разработкой. Такие приложения максимально производительные, но делать их дорого.

Еще есть кроссплатформенная разработка, она дешевле. Код для разных ОС пишут на одном языке и адаптируют с помощью фреймворка. Например, для MVP часто пишут код на языке Java, используя фреймворк React Native. А профессионалов называют по наименованию фреймворка — скажем, разработчик на React Native.

Когда новый сайт или приложение готовы, кто проверяет их работоспособность?

Этим занимается инженер-тестировщик (его ещё называют QA-инженером) — человек, который ищет баги и уязвимости, а также контролирует, чтобы программа выполняла свои функции, как задумано.

Тестирование бывает ручным и автоматическим. Ручной тестировщик, грубо говоря, сам нажимает кнопки на сайте в поисках ошибок. Этот специалист имитирует действия пользователя и оценивает продукт, опираясь на технические требования и личный опыт. Чтобы начать свой путь в Manual QA, не нужно большого опыта в IT и знания языков программирования. Ручное тестирование — одна профессий с низким порогом входа. С нее отлично стартовать в IT.

Кроме ручного, есть автоматическое тестирование. Инженер пишет небольшие программы (скрипты), с помощью которых процесс тестирования проходит без участия человека. Главная задача AQA-инженера — ускорить и облегчить процесс тестирования ручному тестировщику и обеспечить более качественные тесты продукта.

Тестировщики работают с разными языками — Java, Python, Gо и многими другими. При выборе языка программирования исходят из специфики продукта и стека используемых технологий на проекте. Судя по описаниям вакансий, самая популярная связка на данный момент — Java и Selenium. Также актуальна связка JavaScript и Playwright/Cypress.

А кто потом запускает сайты и приложения на сервере?

Системные администраторы — связующее звено между программистами и пользователями. Это не узкие специалисты, а дженералисты — они разбираются  железе и немного в коде. Сисадмин заливает сайт или приложение на сервер и выпускает обновления.

Раньше компании держали локальные серверы — эти железные монстры стояли в отдельном кабинете и их охранял сисадмин. Сейчас все переходят на облачные хранилища — это дешевле и безопаснее. Ну, а сисадмины, соответственно, востребованы и у провайдеров, и в  компаниях — разработчиках ПО. А также в любых крупных организациях, где пишут софт для себя.

Много вакансий DevOps-инженера. Это модное название сисадмина?

Нет, это еще одна отдельная профессия. DevOps-инженеры налаживают процессы разработки и обслуживания проектов. Системные администраторы обычно решают задачи готовыми инструментами — имеющимися программами, операционными системами, скриптами. Но это не всегда возможно. А DevOps-инженер действует иначе: он сначала анализирует задачу, а потом  может предложить разработчикам написать тул, который ее решит.

DevOps-инженеры стараются автоматизировать все, что возможно: выстраивают рабочий процесс, создают ботов, которые помогают избавиться от человеческого фактора в разработке.

DevOps-инженер — человек, который не станет выполнять одно действие трижды, а придумает программу для решения этой задачи. Эти люди нужны на этапе разработки и тестирования, чтобы улучшить воркфлоу, а также после релиза — чтобы постепенно внедрять улучшения в продукт.

DevOps-инженеры — дженералисты, они должны разбираться в железе, в коде.

По теме
Хочу стать программистом: 10 приложений, которые научат детей кодить
Хочу стать программистом: 10 приложений которые научат детей кодить

В каких еще айтишных профессиях нужно быть дженералистом?

Есть SR-инженеры (от англ. site reliability) — они отвечают за бесперебойную работу сайта после запуска. Это программисты с навыками системного администрирования. Обычно SR-инженеров ищут для работы с высоконагруженными системами, если у сайта или приложения миллионы пользователей.

SR-инженеры могут вовлекать в разработку еще на старте проекта — чтобы предвидеть проблемы с работой сайта и избежать их. А иногда их нанимают уже после запуска. Они оценивают стабильность и производительность работы программных систем по метрикам и редактируют код так, чтобы всё работало лучшим образом. Обычно это делается не вручную: SR-инженеры пишут скрипты (автоматизированные инструменты), чтобы следить за системой и дорабатывать ее.

В профессию SR-инженера — впрочем, как и в DevOps — обычно не приходят с нуля. Обычно это люди, которые уже поработали сисадминам или разработчиками, у них высокая квалификация и обширные знания на стыке разных областей IT.

А кто руководит процессом разработки?

В IT есть профессия архитектор ПО. Это инженер, который отвечает за весь продукт. В отличие от продакт-менеджера, который занимается административными «гуманитарными» вопросами, архитектор должен глубоко разбираться в разработке. Он закладывает фундамент сайта: выбирает архитектурный стиль и необходимый инструментарий, прописывает, как что должно работать.

Если у нас не обычное приложение или сайт, а игра — роли в команде разработки те же самые?

Игры —  более сложные штуки, чем сайты. В команде также есть фронтендер, бэкендер, тестировщик и архитектор. Но кто-то должен ещё писать код самой игры, чтобы персонажи двигались по клику мышки пользователя. И это отдельная профессия — разработчик игр.

Сейчас в геймдеве преимущественно используют два движка — Unreal Engine 4 и Unity. Они примерно одинаково популярны и конкурируют на рынке. Новички обычно начинают с чуть более простого Unity, на языке C#. Начать изучать Unity можно на Udemy. А Unreal, с которым работают на языке C++, считается круче с точки зрения возможностей — его берут для сложной графики и анимации.

Соответственно, в игровые компании нанимают либо разработчиков на Unity, либо разработчиков на Unreal Engine — в зависимости от масштаба проекта.

А игры в виртуальной или дополненной реальности делают те же самые разработчики?

Все это тоже можно разрабатывать на Unity и Unreal. Но, несмотря на аналогичный стэк, едва ли в крупной команде один человек будет заниматься и обычной разработкой, и AR/VR. Для этого нужны немного другие знания и инструменты.

Кстати, дополненная реальность часто используется и в мобильных приложениях. Но там уже требуются другие языки: для Android обычно код пишут на Kotlin, для iOS — на Swift.

С сайтами и приложениями понятно, с играми тоже. На этом с айтишными профессиями все?

Нет, профессий еще хватает. Очень большая область IT — работа с данными. Код используется в науке, промышленности, медицине, маркетинге, почти где угодно — с его помощью проводят исследования и изучают разные закономерности. Это быстрее, чем ручной труд, и без риска ошибок.

Работой с данными при помощи программирования занимается Data Scientist. Основной язык тут — Python. Начать постигать науку о данных можно, например, на курсе от IBM на Coursera. Нo вообще-то Data Science охватывает сразу несколько специальностей.

Специалисты по Data Science — это про аналитиков данных, кажется?

Это одна из областей Data Science. Аналитик данных изучает метрики, выдвигает гипотезы и тестирует их. Помимо науки, аналитики нужны в маркетинге и продуктовой разработке. Они помогают бизнесу понять поведение клиентов — и все это с помощью кода.

Помимо Python, аналитики могут использовать и другие языки. Например, популярен SQL — с его помощью делают запросы к базам данных, чтобы вычленить нужную информацию из огромного массива. Вообще, аналитик — это наполовину айтишная, наполовину исследовательская работа. Нужно не только писать код, но и придумывать гипотезы, проверять их, интерпретировать результаты.

Для этого мало знаний кода, надо ещё разбираться в той сфере, где работаешь — например, в маркетинге.

По теме
Веб-дизайн с нуля: что почитать новичку и где учиться
Веб-дизайн с нуля: что почитать новичку и где учиться

Какие еще профессии в есть Data Science?

Есть инженеры данных — не путайте с аналитиками. Data engineer занимаются только программной стороной вопроса — развертывают инфраструктуру для анализа данных. Они выстраивают архитектуру хранилищ данных, автоматизирует процессы сбора, передачи и обработки информации, вычищают ненужную информацию. Инженер нужен для больших и разветвленных баз данных. Самый распространённый стек, как и у аналитика — языки Python и SQL.

А помощников вроде Alexa, Siri или Google Assistant тоже создают датасайнтисты? 

Третья профессия в DS  — специалист по Machine Learning или ML-инженер. Это человек, который обучает нейросети. Искусственный интеллект учится на основе данных, которые ему показывают. Но помимо анализа данных такой специалист еще должен разбираться в алгоритмах обучения и архитектуре нейросетей.

В Machine Learning есть свои ответвления. Два основных — обработка естественного языка и компьютерное зрение. В первом случае машину учат воспринимать речь — этим занимается NLP-инженер (от англ. natural language processing). Благодаря этим специалистам мы можем общаться с умными колонками. Во второй области работают CV-инженеры (от англ. computer vision). Они учат компьютеры распознавать изображения. Так, например, обучают нейросети GAN, которые помогают автоматизировать процессы в компьютерной графике, а также самопилотируемые автомобили.

Как оценивают опыт и компетенции специалистов в IT?

Для этого есть грейды: джуниор (начинающий), миддл (средний уровень) и синьор (продвинутый уровень). В любой сфере нужны и джуниор-, и миддл-, и синьор-разработчики, просто они занимаются разными задачами. А ещё есть тим-лиды — это люди, которые управляют работой всей команды.

Кажется, Теперь мы разобрали все айтишные профессии?

Нет, только основные. Профессий в IT очень много: программисты разрабатывают интерфейсы и внутреннюю логику программ, оптимизируют процесс работы сайтов и приложений, делают интерактивы в играх, помогают анализировать массивы данных и обучают нейросети. Если учесть все узкие специализации, можно насчитать несколько десятков инженерных профессий в IT — получится слишком большой список.

Есть такие специальности, которые априори требуют опыта — архитектором с нуля, например, не стать. Но в любой сфере — в разработке сайтов, игр или аналитике данных — всегда можно выбрать что-то полегче для старта. А дальше двигаться в нужном направлении.

article widget img
«‎‎Главная ошибка собеса — подгонять ответы»‎. Рекрутеры рассказали о найме в IT
Откуда берутся IT-рекрутеры, с какими трудностями они сталкиваются в попытках закрыть позиции и какие ошибки сами совершают на интервью — полезно знать перед тем, как искать работу.
Телеграм-канал про Образо­вание, карьеру и жизнь в IT
Телеграм-канал про Образо­вание, карьеру и жизнь в IT

Читайте по теме

Войти в IT
Войти в IT
13

Войти в IT

Как прийти в айти, задержаться там надолго и не попасть на галеру
nerd head nerd letter

Мир содрогнулся, когда узнал, что читают разработчики по ночам...

Ничего криминального — только полезная еженедельная рассылка от Bubble. Тренды в айти, лайфхаки и советы экспертов.

Подписывайся!

Ты — котик! Проверяй почту
Нам нужен настоящий адрес эл. почты
Спецпредложения
Курсы со скидками для пользователей Bubble
Выбрать курс
Освоить за выходные
Экспресс-курсы программирования
Выбрать курс
Баг пофиксил
Курсы для QA-инженеров
Выбрать курс
Звездочка к резюме
Курсы по карьерному росту
Выбрать курс
Подписывайся на Bubble в соцсетях
Подписывайся на BUBBLE в социальных сетях
Телеграм-канал про Образование, карьеру и жизнь в IT
Только полезный контент и ничего лишнего.