● Получать от дизайнера макет сайта или его части в виде шаблона или статичной картинки. Сделать так, чтобы браузер пользователя отображал сайт идентично.
● Писать код для интерактивных элементов: кнопок, форм, тулбаров, калькуляторов расчёта стоимости, форм обратной связи.
● Адаптировать интерфейс для отображения на экранах с разным разрешением, смартфонов и планшетов.
● Тестировать веб-сервисы на ошибки.
● Самостоятельно продумывать дизайн сервисов при необходимости. Делать его не только красивым, но и удобным для пользователей.
● HTML — язык гипертекстовой разметки. С его помощью фронтенд-разработчик «объясняет» браузеру, как именно нужно отобразить веб-сервис.
● CSS — язык стилей. Он позволяет задавать сервису внешний вид и адаптировать интерфейс под разные разрешения.
● JavaScript — язык программирования, с помощью которого можно создавать интерактивные элементы и взаимодействовать с серверной частью сервиса.
● TypeScript — типизированный JavaScript. Облегчает разработку и уменьшает количество ошибок, потому что проверка соответствия указанных и используемых типов происходит перед запуском кода, а не во время его выполнения.
● Системы управления сайтами (CMS) и конструкторы сайтов: WordPress, Joomla, Tilda и другие. Часто сайты делают с применением этих инструментов, и важно знать, какие возможности они дают и какие ограничения накладывают.
● Библиотеки и фреймворки, такие как React, Angular, Vue.js, которые позволяют облегчить программирование и быстрее разрабатывать нужные функции.
● CSS-препроцессоры и постпроцессоры, такие как Sass, Less, PostCSS, чтобы добавить в язык CSS дополнительные функции для вёрстки.
● Анимация и фреймворки для неё: CSS Animations, GSAP и другие.
● Графические редакторы: Adobe Photoshop, Sketch, Figma, чтобы при необходимости дорабатывать макеты от дизайнеров или рисовать что-то с нуля.
● Базовые принципы UX/UI дизайна, чтобы делать интерфейсы удобными для пользователей.
По данным «Хабр Карьеры», в среднем начинающий фронтенд-разработчик зарабатывает 77 тыс. рублей, мидл — 187 тыс. рублей, сеньор — 336 тыс. рублей. Ведущий специалист может зарабатывать 400 тыс. рублей и больше.
Средняя зарплата фронтенд-разработчика — 213 тыс. рублей. ИсточникСредняя зарплата фронтенд-разработчика — 213 тыс. рублей. Источник
Фронтендеры отвечают за внешний вид приложения для пользователей, а бэкендеры — за его серверную часть, то есть за то, что обеспечивает работу сервиса — взаимодействие с базами данных, обработку информации и вычисления. Сейчас, учитывая обилие веб-сервисов, это один из самых популярных видов программистов.
● Писать и тестировать код для обработки запросов в браузерах, мобильных клиентах, любых внешних системах, которые взаимодействуют с текущим сервисом.
● Настраивать взаимодействие с базами данных: MySQL, PostgreSQL, MongoDB, Oracle, Tarantool, ClickHouse.
● Обеспечивать защиту веб-сервисов от атак.
● Разрабатывать масштабируемые и устойчивые к нагрузкам сервисы.
● Язык программирования. Для бэкенда они бывают разными: Java, Python, PHP, Ruby, Go, C#, Rust, Perl и другие. Язык зависит от компании, но чаще всего в вакансиях встречаются Java и Python.
● Node.js — программная платформа, основанная на движке V8, которая позволяет писать бэкенд на JavaScript. Часто его нужно знать в дополнение к другому языку программирования.
● Фреймворки: Spring, RoR(Ruby on Rails), Django, Flask, Express и другие, в зависимости от языка программирования. Они нужны, чтобы разрабатывать сложные функции и упростить работу.
● Базы данных и язык SQL-запросов, чтобы организовать работу с данными.
По данным «Хабр Карьеры», средняя зарплата разработчика-стажёра составляет 55 тыс. рублей, начинающего специалиста — 90 тыс. рублей, мидла — 201 тыс. рублей, сеньора — 342 тыс. рублей, а ведущего специалиста — 410 тыс. рублей.
Средняя зарплата backend-разработчика с учётом премии составляет 225 тыс. рублей. Источник
Фулстек-разработчик занимается и фронтедом, и бэкендом. Он разрабатывает весь сервис в комплексе, отвечает и за сервисную, и за клиентскую часть.
● Полностью разрабатывать функционал приложения.
● Работать с базами данных.
● Прорабатывать внешний вид сайта.
● Адаптировать интерфейс для отображения на экранах с разным разрешением, смартфонах и планшетах.
● Тестировать веб-сервисы на ошибки.
● Самостоятельно продумывать дизайн сервисов при необходимости.
● Обеспечивать защиту веб-сервисов от атак.
● Проектировать и реализовывать механизмы масштабирования и отказоустойчивости сервисов.
● HTML, CSS, JavaScript для фронтенда.
● Язык программирования для бэкенда: Java, Python, PHP, Ruby, Go, C# или другой.
● Node.js — для фулстек-разработчика он может даже заменять другие языки программирования.
● Системы управления сайтами и конструкторы: Wordpress, Tilda и другие.
● Различные фреймворки, библиотеки и инструменты, такие как Angular, React, Vue.js, jQuery, Bootstrap, Ruby on Rails. Выбор зависит от языка, который будет использоваться для разработки.
● Базы данных: MySQL, PostgreSQL, MongoDB и другие.
По данным «Хабр Карьеры», фулстек-разработчик на позиции стажёра в среднем зарабатывает 47 тыс. рублей, начинающий фулстек-разработчик может рассчитывать на среднюю зарплату в 87 тыс. рублей, специалист среднего уровня может зарабатывать 164 тыс. рублей, сеньор — 298 тыс. рублей, а ведущий специалист — 344 тыс. рублей.
Средняя зарплата фулстек-разработчика составляет 219 833 рубля с учётом премии. Источник
Чаще всего они делятся на две группы: iOS- и Android-разработчики, потому что у каждой системы своя специфика. Есть инструменты, которые позволяют писать приложения сразу для всех платформ — тех, кто ими владеют, называют мультиплатформенными разработчиками. Мобильные разработчики пишут приложения для умных устройств, смарт-часов и других гаджетов.
● Писать код приложений для мобильных устройств.
● Разрабатывать пользовательских интерфейс для этих приложений — то, с чем будут взаимодействовать пользователи.
● При необходимости корректировать или даже придумывать дизайн для интерфейса вместе с дизайнерами.
● Обеспечивать связь приложения и базы данных.
● Тестировать и оптимизировать приложения вместе с командой тестировщиков.
● Языки для мобильной разработки. Это может быть Swift или Objective-C для iOS, Kotlin или Java для Android, C# для Windows, JavaScript с фреймворком React Native для мультиплатформенной разработки.
● Фреймворки и библиотеки, в зависимости от выбранного языка для интерфейсов, анимации и других функций.
● Архитектура систем iOS, Android, Windows, как устроены эти системы и как с ними работать.
● Язык SQL-запросов и базы данных.
● Базовые принципы UX/UI дизайна — чтобы делать интерфейсы удобными для пользователей.
По данным «Хабр Карьеры», разработчик мобильных приложений на позиции стажёра в среднем зарабатывает 64 тыс. рублей, разработчик-джуниор может зарабатывать 87 тыс. рублей, мидл — 216 тыс. рублей, сеньор — 374 тыс. рублей, а ведущий специалист — 464 тыс. рублей.
В среднем разработчик мобильных приложений зарабатывает 260 тыс. рублей. Источник
Предыдущие профессии были связаны в основном с задачами, которые решают программисты. Java-разработчик работает с конкретной технологией и пишет именно на языке Java. Он может быть бэкендером, разрабатывать приложения на Android или компьютерные программы, но всегда делает это именно на Java, используя другие языки как вспомогательный инструмент. Это довольно востребованный вид разработчиков, так как Java все ещё остаётся одним из самых популярных языков программирования.
● Писать на Java: программы для компьютеров, приложения для мобильных устройств, бэкенд для веб-сервисов.
● Тестировать написанный код и исправлять в нём ошибки.
● Работать с базами данных.
● Обеспечивать безопасность написанного кода.
● Делать приложения устойчивыми к нагрузкам.
● Язык Java.
● Популярные фреймворки, нужные для решения конкретных задач. У Java это Spring, Hibernate, Struts, Vaadin, Play Framework, Apache Wicket — в зависимости от того, над чем именно трудится разработчик.
● Базы данных: MySQL, Oracle, PostgreSQL и MongoDB, а также язык SQL-запросов для работы с этими базами.
● Другие технологии, в зависимости от задачи. Это могут быть графические редакторы, UI/UX, JavaScript и другие языки программирования в зависимости от того, что нужно на конкретном проекте.
По данным портала «Работа.ру», в среднем java-разработчик в России зарабатывает 142 тыс. рублей.
Самая высокая зарплата — у java-разработчиков из Москвы. В среднем она достигает 185 тыс. рублей. Источник
Как и в случае с Java-разработчиком, эти программисты пишут программы на конкретном языке. В современном мире это обычно С++ — С, его «предок», уже считается несколько устаревшим, хотя иногда бывает полезен. На этом языке чаще всего пишут сложное высокопроизводительное ПО: драйверы и программы для промышленных систем. Иногда используют для разработки компьютерных игр.
● Писать программный код, чаще всего на С++.
● Поддерживать старый код, написанный на С.
● Оптимизировать код так, чтобы приложения было более высокопроизводительными.
● Работать с аппаратурой и операционными системами.
● Настраивать связь разработанных приложений с базами данных.
● Тестировать код и исправлять ошибки.
● Язык С++. Его предшественник, С, тоже может пригодиться.
● Библиотеки С++: Qt, Boost, STL, wxWidgets и другие, в зависимости от задач.
● Системное программирование: умение работать с файловыми системами, управлять памятью, распределять потоки данных. Всё это требуется для разработки системного программного обеспечения.
● Базы данных и язык запросов SQL.
● Алгоритмы и структуры данных. Они нужны многим программистам, но для языка С++ и задач, которые на нем решают, это особенно критично.
● Операционные системы: чаще всего Linux, однако в зависимости от задач может понадобиться знание Windows или MacOS.
По данным «RealHR», минимальная зарплата начинающего разработчика на С++ составляет 150 000 руб, специалиста уровня мидл — 280 000 руб., а сеньора — 370 00 руб.
Зарплаты разработчиков на С++ в 2024 году. Источник
1С-разработчик — это специалист, который помогает настраивать программу «1С:Предприятие». Её используют для автоматизации процессов, ведения бухгалтерии, учёта товаров и услуг, управления производством и складом.
«1С:Предприятие» — достаточно сложная программа и при этом стандартизированная. Базовых возможностей бизнесу часто не хватает, поэтому 1С-разработчики вносят в программу изменения и пишут дополнительные модули. Для этого они используют уникальный язык 1С, применимый только для этой задачи. Писать на нём программы с нуля не получится.
● Разрабатывать и настраивать модули «1С:Предприятия», адаптировать программу для требований бизнеса.
● Создавать интеграции «1С:Предприятия» с другими системами: CRM, CMS, базами данных, ПО заказчика.
● Оптимизировать «1С:Предприятие» для доступных заказчику мощностей и сервисов.
● Проводить техническую поддержку «1С:Предприятия»: чинить то, что сломалось, и отвечать на вопросы пользователей.
● 1С — специальный язык, встроенный в «1С:Предприятие». Кстати, все функции в нём написаны по-русски.
● Платформа «1С:Предприятие», знание её разновидностей, встроенных возможностей и инструментов для доработки и интеграции других систем.
● SQL — язык запросов, который позволит управлять базами данных.
● XML — язык разметки для отправки файлов между системами.
По данным «Хабр Карьеры», начинающий программист 1С зарабатывает в среднем 83 тыс. рублей, специалист среднего уровня — 167 тыс. рублей, сеньор — 265 тыс. рублей, ведущий специалист — 285 тыс. рублей.
Средняя зарплата программиста 1С составляет 196 666 рублей. Источник
Компьютерная игра — это та же программа. Чтобы она появилась, нужны программисты, которых называют разработчиками игр. Важно не путать разработчика с другими специалистами: сценаристом, дизайнером и геймдизайнером. Вот в чём их отличия:
● Сценарист пишет сценарий игры, характеры персонажей, диалоги.
● Геймдизайнер работает над общей концепцией игры — какой опыт получит игрок, как будут устроены уровни, прокачка и другие элементы.
● Дизайнер рисует персонажей, предметы, окружение, интерфейс и уровни.
● Разработчик пишет код, чтобы всё созданное другими воплощалось именно в виде игры.
В небольших проектах специалисты иногда совмещают функции, но в основном каждый занимается своим делом.
● Писать код по заданиям от других специалистов.
● Оптимизировать код так, чтобы он хорошо работал не только на мощном компьютере.
● Адаптировать код для других платформ — например, чтобы игра одинаково хорошо работала на iOS, Android, PlayStation, Xbox, Nintendo.
● Тестировать код и исправлять ошибки.
● Язык программирования. Обычно это С#, но иногда требуется знание C++ или Java.
● Базы данных и язык запросов SQL, чтобы настраивать обмен данными с сервером.
● Движки для создания игр. Обычно это Unity или Unreal Engine, но бывают и другие. Это наборы базовых инструментов вроде библиотек в программировании, только с большим функций.
● Технологии для работы с графикой: OpenGL и DirectX.
● Другие технологии и библиотеки, которые зависят от того, какие игры и на какой платформе нужно разрабатывать.
По данным «Хабр Карьеры», начинающий разработчик игр в среднем получает 79 тыс. рублей, мидл — 128 тыс. рублей, сеньор — 276 тыс. рублей, а ведущий специалист — 389 тыс. рублей.
Средняя зарплата разработчика игр составляет 158 333 рубля. Источник
Программисты могут тестировать код, однако основная их работа — всё-таки его писать. Поэтому существуют отдельные специалисты — тестировщики. Их ещё называют QA-инженерами (от англ. quality assurance, обеспечение качества). Тестировщики проверяют работоспособность написанного ПО разными методами как вручную, так и с помощью специальных программ. И в случае обнаружения ошибок отправляют код программистам на доработку.
● Писать тест-кейсы — описание последовательности действий, которые нужно провести для проверки работоспособности программы.
● Проходить эти тест-кейсы, моделировать реальное использование сервиса и записывать результаты.
● Отправлять программистам баг-репорты — подробные описания возникших проблем.
● Разрабатывать и поддерживать в рабочем состоянии автоматизированные тесты, которые сами принимают код и отправляют разработчикам сообщения об ошибках.
● Правила и принципы тестирования, его виды и методы, структуру тест-кейсов и баг-репортов.
● Язык SQL для работы с базами данных.
● Язык программирования для написания автоматизированных тестов. Обычно это Python, хотя иногда используют и другие, например, Java или JavaScript.
● Инструменты для автоматического тестирования, например, Selenium.
По данным «RealHR», минимальная зарплата тестировщика составляет 100 000 руб, специалиста уровня мидл — 170 000 руб., сеньора — 250 00 руб.
Зарплаты тестировщиков уровня джуниор, мидл и сеньор в 2024 году. Источник
Просто написать код недостаточно — его нужно запускать как для тестирования, так и для релиза, когда он становится доступен остальным пользователям. Этим занимаются не разработчики, а отдельные специалисты — DevOps-инженеры. Они ближе к системным администраторам, чем к разработчикам, хотя писать код им иногда приходится. DevOps-инженерам важно понимать, как именно устроена разработка, чтобы правильно настраивать все процессы. Поэтому хотя DevOps-инженеры — это не вид разработчиков, ими часто становятся программисты, которые хотят попробовать решать новые задачи.
● Создавать и администрировать среду для запуска кода.
● Автоматизировать развёртывание приложений, чтобы написанный программистами код сразу попадал на нужные для запуска серверы.
● Настраивать конвейер тестирования, чтобы код попадал к тестировщикам, а баги — к разработчикам, и это происходило быстро и непрерывно.
● Администрировать IT-инфраструктуру компании — инструменты, с которыми работают программисты и тестировщики.
● Настраивать мониторинг приложений — автоматические оповещения об ошибках, которые случаются уже после запуска для пользователей.
● Языки программирования, для написания и доработки инструментов автоматизации процессов. Чаще всего это Python, Go, Bash, Ruby, Perl, PHP.
● Linux, в котором обычно запускают все нужные для работы инструменты.
● Bash, специальный язык для написания скриптов.
● Облачные технологии, чтобы знать, как запускать и администрировать сервисы, например Яндекс Облако.
● Создание контейнеров — небольших «виртуальных машин», которые служат для более быстрого и безопасного запуска кода. Обычно для этого используют Docker и Kubernetes.
● Управление конфигурациями IT-систем, например, с помощью Ansible, Terraform, Puppet, Chef.
● Создание конвейера доставки кода (CI/CD), например, c помощью Jenkins.
● Резервное копирование данных для их сохранности и безопасности.
● Мониторинг и логирование для отслеживания работоспособности IT-систем и запущенных приложений. Например, с помощью Zabbix, Prometheus, ELK, Grafana.
По данным «Хабр Карьеры», средняя зарплата начинающего DevOps-инженера составляет 122 тыс. рублей, мидла — 223 тыс. рублей, сеньора — 372 тыс. рублей, ведущего специалиста — 433 тыс. рублей.
Средняя зарплата DevOps-инженера составляет 229 тыс. рублей. Источник
Решать, каким разработчиком стать, стоит в зависимости от пожеланий и готовности изучать новое:
● Если совсем нет опыта в IT и хочется начать с чего-то простого, подойдёт профессия QA-тестировщика. Она позволит освоить основы и потом решить, развиваться дальше в тестировании или перейти в разработку. Тестирование будет хорошим выбором для тех, кому интересно не столько писать код, сколько обеспечивать качество продукта.
● Если интересно работать с современными продуктами, которыми будут пользоваться клиенты, — стоит подумать о фронтенд–разработке. Здесь придётся иметь дело как с кодом, так и с интерфейсами, и больше погружаться в бизнес и требования к продукту.
● Хочется погрузиться в алгоритмы и разработку достаточно сложных систем? Добро пожаловать в бэкенд, разработку на Java и С/С++. Здесь больше математики и кода.
● Если хочется отвечать за продукт целиком, то подойдёт фулстек- и мобильная разработка — здесь программист заведует сразу всем, из чего состоит приложение, и больше погружается в задачи бизнеса.
● Тем, кому интересны мобильные и компьютерные игры, можно попробовать себя в GameDev. Правда, стоит учитывать, что на российском рынке студий не так много, и для развития карьеры возможно придётся переезжать за границу.
● Если хочется больше работать с бизнесом как с заказчиком, можно стать 1С-разработчиком. Не делать продукты для клиентов, зато помогать компаниям работать и вести учёт.
● Нравится работа сложных IT-систем и автоматизация? Тогда лучше стать не разработчиком, а DevOps-инженером. Разработки будет немного — это специальность сисадмина, который поддерживает рабочие процессы.
Николай Федосеев
Сфера IT даёт большие возможности как для старта, так и для дальнейшего развития: можно прокачиваться вглубь до уровня сеньора или архитектора, попробовать себя в роли управленца или руководителя проекта, либо работать в смежной области, отличающейся по навыкам и требованиям.
Ответственность и изменения неизбежны, поэтому не стоит их бояться или избегать. Лучше двигаться вперёд, интегрировать уже созданные технологии и сервисы или даже создавать свои.
Читать также: