Разработчик придумывает, как компьютер может решить ту или иную задачу и описывает это в коде программы.
Здесь создают и улучшают программы и сервисы, необходимые бизнесу или человеку.
Во многих компаниях разработчик может работать в удобное для него время и в любом месте. Иногда такая свобода грозит переутомлением и выгоранием — многим сложно самостоятельно регулировать время погружения в рабочий процесс. У программистов много рабочих задач, высокая нагрузка с большой ответственностью, нередко они «живут на работе», когда «всё горит».
Зарплаты в IT высокие, задачи интересные, график удобный. А еще программисты могут довольно быстро расти по профессиональной лестнице, расширять полномочия, пробовать новые роли. Главное — прикладывать усилия и не бояться учиться новому.
Хорошие программисты нужны всем, не зря эта работа высокооплачиваемая. С развитием технологий появляются возможности перестраивать процессы, часть задач отдать нейросетям.
Если случится «кризис перенасыщения специалистами», конкуренция среди программистов начального уровня (junior) будет очень высокой. Но специалисты высочайшего уровня (senior) будут востребованы всегда.
Программист — работа командная. Поэтому способность находить общий язык с разными людьми — одно из важных качеств разработчика. Если человек не умеет спокойно принимать критику, договариваться о том, что и как лучше сделать, понимать чужие идеи и доносить свои, вряд ли он сможет работать в команде.
Разработчик не боится сложностей. Будьте готовы погружаться в мир графиков и таблиц, сложноустроенных сущностей.
В эту профессию идут те, кому дается математика и информатика, любые инженерные специальности или точные науки в целом (для этой сферы даже есть отдельный термин — STEM).
Логика — основа алгоритмизации, поэтому с логикой у вас всё должно быть в порядке. Как это понять? Возьмите книги и попробуйте решить загадки из любой из них. Если смогли продвинуться хотя бы до третьей главы — можно подумать о разработке.
Можете разбить любой процесс на последовательность конкретных действий? Значит, работа с алгоритмами вам по душе.
Образование зависит от того, чего хочет учащийся.
Просто кодить? Освоить язык программирования с нуля можно в среднем за полгода по самоучителям, на курсах или обучающих платформах. Через полгода вы сможете написать, например, несложного чат-бота на Python. А затем можно попытаться устроиться на стажировку в IT-компанию.
Но чтобы заниматься разработкой всерьез, стоит закончить вуз или колледж.
Бэкенд-разработчик (бэкенд, бэкендер, фулстэк-разработчик) — это программист, который занимается внутренним устройством сайта или приложения. Его зона ответственности — логика и работоспособность системы. Например, хранение данных регистрации в приложении, автоматическая отправка писем или обновление остатков товара после покупки в интернет-магазине.
Frontend-разработчики (фронтенды, фронтендеры) делают так, чтобы код, который написали бэкендеры, отображался у пользователя на экранах. Результат работы фронтенд-разработчика — удобный интерфейс, с которым взаимодействует пользователь: от страницы крупного маркетплейса до кнопок на панели платежного терминала. При этом фронтенд должен понимать и то, что находится «под капотом» на серверной стороне (то есть на бэке). Как правило, в каждой команде есть хотя бы один frontend.
Дата-сайентист (Data Scientist) — это специалист, который работает с большими объемами данных (big data) и на их основе создает алгоритмы, чтобы автоматизировать и упростить разные процессы. Результатом работы дата-сайентиста является программа, которая анализирует массивы данных и делает на их основе выводы. Это здорово экономит время и бюджет компании.
Дата-сайентисты работают во всех областях, где есть большие объемы информации и решения принимаются на основе данных: ритейл, банки, научные организации, IT-компании... Поэтому такие разработчики очень востребованы.
Разработчик машинного обучения Контура
Я часто сравниваю свою профессию с работой детектива. У меня есть ряд гипотез, которые я проверяю, исходя из имеющихся данных. Я как будто сравниваю улики, чтобы найти верное решение. Копаю всё глубже и глубже, пока не найду нужный алгоритм.
Основной язык Data Science — это Python. Он прост в изучении, при желании его можно освоить за несколько месяцев. Не менее важен и язык запросов SQL, ведь данные нужно сначала достать, обработать и только потом на их основе составить модель.
Лучшее направление образования для Data Science — математика или IT-факультеты. Но не обязательно. Подойдет и экономическое образование: умение разобраться в сути бизнес-процессов не менее важно, чем программирование (но над техникой придется поработать).
Мобильные разработчики создают и поддерживают приложения для всевозможных мобильных гаджетов. Они пишут код под Android, IOS или в кросс-платформенной разработке, которая позволяет охватить две операционные системы одним кодом.
Чтобы писать приложения на Андроиде, подойдет такой язык, как Java. У него есть множество библиотек и модулей. Если разработчик не может решить какую-то проблему самостоятельно, он всегда может обратиться за помощью к большому международному Java-сообществу. Другой вариант языка программирования — лаконичный Kotlin, который в 2019 году компания Google объявила приоритетным в андроид-разработке.
Также мобильному разработчику может пригодиться знание основ объектно ориентированного программирования (ООП), понимание базовых принципов дизайна интерфейсов и умение работать в Android Studio. Это мобильная среда разработки, в которой программируют логику и настраивают интерфейс приложения.
Освоить разработку под Андроид можно самостоятельно по интернету. Важнее не теория, а практика.
Инженер-программист Контура
Можно для начала написать небольшое приложение и выложить его в открытый доступ на GitHub, специальный веб-сервис для размещения IT-продуктов и совместной работы над ними. Так можно получить обратную связь по своему проекту и наработать небольшое портфолио, которое в будущем поможет получить место на стажировке в компании.
Разработка игр привлекает многих. Во-первых, это возможность работать в теме, которая интересна тебе лично. Во-вторых, GameDev — относительно новое направление, поэтому попробовать свои силы в ней может даже новичок.
Преподаватель курса «Разработка игр» направления ФИИТ на мат-мехе УрФУ, менеджер проектов Контура
С каждым годом появляется всё больше новых проектов, новых компаний и, следовательно, спрос на разработчиков игр будет только увеличиваться. Поэтому GameDev — одна из самых открытых областей для новичков.
В разработке игр, как и в любом другом IT-проекте, есть специалисты, которые отвечают за интерфейс продукта и за его внутреннюю техническую составляющую. Гейм-дизайнер создает концепцию игры, придумывает правила и механики. А вот реализацией его идей занимается уже левел-дизайнер — он проектирует архитектуру игры, пишет код и вставляет новые фичи в уже существующий проект. Этот программист должен интересоваться играми, иметь хороший наигрыш и насмотренность.
Простую браузерную игру можно написать на PHP и Java. А вот более крупные проекты создают обычно на движках вроде Unity. Для него уже потребуется знание C#.
Большинство специалистов, занятых в GameDev, — это выпускники математических вузов или люди, закончившие онлайн-курсы.
Для начала разработчик прокачивает профессиональные навыки. Можно специализироваться в определенной теме — например, заняться компьютерным зрением или нейросетями. Со временем программист начинает решать более сложные задачи, брать на себя больше ответственности.
Рост по карьерной лестнице (вертикальная карьера) — это рост до любых руководящих позиций. Со временем можно стать лидером команды. Тимлид отвечает за распределение задач в группе, мотивацию сотрудников и так далее.
Следующий шаг карьеры — менеджер разработки. Он руководит уже довольно крупной командой: ставит задачи, подсказывает, как лучше исправить неудачные моменты и распределить рабочее время, а также рассказывает заказчику, что было сделано, какой результат планирует получить команда и когда.