Программисты — рок-звезды нашего времени. Если раньше они считались занудными ботаниками в засаленных свитерах, то теперь разработка стала практически синонимом успеха, а спрос на таких специалистов стабильно высокий. И 2020-й в очередной раз это подтвердил: по данным исследования, проведённого при поддержке Минэкономразвития России, каждая вторая вакансия связана с программированием.
Очевидны и другие преимущества профессии: интересные задачи, низкий порог вхождения и возможность работать удалённо — особенно актуально в пандемию. И, конечно, высокие зарплаты — среднестатистический программист живёт гораздо звонче, чем представители других профессий.
Осталось только выбрать направление и можно начинать учиться, а мы поможем разобраться в самых популярных специализациях. Если вы начинающий программист или решили сменить профессию — эта статья для вас.
Фронтенд-разработчик
Фронтендер отвечает за внешнюю сторону сайтов и приложений и следит, чтобы они хорошо отображались во всех браузерах и на всех устройствах. Пользовательские интерфейсы — это его зона ответственности. Программист и верстальщик в одном флаконе, который делает сервисы максимально красивыми, удобными и современными.
Главная задача такого специалиста — верстать: расставить HTML-разметку и привязать к ней CSS-стили. А ещё добавить интерактивности: переходы, анимацию, выпадающие меню или выезжающие окна.
Когда продукт готов, он проверяет, всё ли нормально функционирует и отлавливает баги. А если что-то не в порядке с макетом, то может проявить себя в и качестве дизайнера: что-то дорисовать, отредактировать картинку в фотошопе и перенести её в код или изменить шрифт.
Пользовательский интерфейс MailChimp — сервиса email-рассылок
Где нужен. Везде, где сайт — важная коммерческая составляющая: они нужны интернет-магазинам и ритейлерам, блогам и СМИ, сотовым операторам и банкам, рекламным агентствам и развлекательным сервисам.
Часто фронтендеры требуются разработчикам приложений для бизнеса: системам управления проектами, корпоративным порталам или CRM.
Что важно знать и уметь. Фронтендер должен знать HTML, CSS, библиотеки и фреймворки JavaScript, уметь пользоваться CVS, Git, GitHub, таскраннерами, технологиями юнит-тестирования, не бояться препроцессоров и сборщиков LESS, SASS, GRUNT и GULP.
Список можно продолжить. Необходимо разбираться в темах:
- Принципы UI/UX
- SEO на базовом уровне
- Адаптивная и отзывчивая вёрстка (подробнее о видах вёрстки)
- Кроссбраузерная и кросс-платформенная разработка
- Мобильная разработка
- Тестирование и юнит-тестирование
- Базы данных и SQL-запросы
- Веб-шрифты
И, конечно, в обязательном порядке — быть на «ты» с графическими редакторами: Photoshop или Figma, а лучше и с тем, и с другим.
Стек. HTML, CSS, JavaScript и его фреймворки, TypeScript.
Перейти на сайт курса
Бэкенд-разработчик
Если фронтенд-разработчик работает с внешней стороной программ, то бэкендер — с тем, что находится «под капотом» — внутренним содержанием системы, серверными технологиями: базой данных, архитектурой и программной логикой.
Бэкенд-разработчик создаёт функции сайта, через которые пользователь взаимодействует с интерфейсом.
Фронтенд — это форма регистрации и корзина на сайте, а бэкенд — это связка полей формы регистрации с корзиной, база данных и интеграция с платёжным сервисом
Оба этих специалиста действуют в связке — так удаётся достигать лучшего результата.
Где нужен. Как и в случае с фронтендом — везде, где есть сайты и приложения.
Другое дело, что бэкендеры бывают разного уровня: в офисе условной соцсети или крупного сайта объявлений ему предстоит работать с высокими нагрузками, микросервисной архитектурой и контейнеризацией в Docker и Kubernetes, использовать и знать системы мониторинга типа Zabbix или Grafana.
А для небольшого интернет-магазина вполне достаточно связки PHP-Ajax-нужная СУБД-немного HTML, иногда и того меньше.
Что важно знать и уметь. Основные инструменты бэкенд-разработчика — серверные языки программирования: PHP, Python, Ruby, Java, Perl, Node JS. Дополнительно к Node JS полезно изучить Express — библиотеку для взаимодействия платформы Node JS с сервером и Mongo DB — базу данных для получения и хранения информации.
А ещё нелишним будет освоить фреймворки Symfony, Codeigniter, Yii, Zend Framework, Kohana и базы данных MySQL/SQLite.
Стек. PHP, Python, JavaScript, Java, C#, Go, C/C++.
Полный разбор профессии бэкенд-разработчик читайте в этой статье
Фулстек-разработчик
Фулстек-разработчик — это универсальный программист, который может с нуля сделать функциональный продукт.
Где нужен. Компании открывают такие вакансии по разным причинам. Так, если проект несложный технически, но его нужно часто менять и дополнять — в таком случае одному человеку будет проще разобраться.
Иногда фулстека нанимают из соображений экономии, когда нет денег на целый IT-отдел. В этом случае фулстек часто занимается вообще всем, в том числе заправляет принтер. А если повезёт — то станет директором.
Что важно знать и уметь. Фулстек разбирается в бэкенде — программно-аппаратной части сервиса и во фронтенде — интерфейсе пользователя.
Фулстек может быть внутри определённой технологии — скажем, JavaScript-фулстек.
Стек. PHP, Python, JavaScript, Java, C#, Go, C/C++.
Полный разбор профессии фулстек-разработчика читайте в этой статье
Перейти на сайт курса
Перейти на сайт курса
JavaScript-разработчик
Больше всего разработчиков на JavaScript трудится в вебе. Они создают скрипты, которые управляют интерактивными элементами на сайте: формами, слайдерами, всплывающими окнами.
Помимо веб-сайтов, такие специалисты разрабатывают:
- браузерные операционные системы;
- прикладное программное обеспечение;
- приложения для интернета вещей — SMART-телевизоры, умные часы и др.;
- макросы для офисных приложений: OpenOffice и др.
В остальном работа программиста на JavaScript мало отличается от будней других программистов: нужно писать код, тестировать его — не всегда на проектах есть тестировщики, устранять баги, разбираться в чужом коде и оптимизировать его.
JavaScript используется в браузере Mozilla Firefox
Где нужен. JavaScript-разработчиками интересуются, прежде всего, большие продуктовые компании и те, что делают сайты, мобильные и веб-приложения на заказ.
Заявки бывают и от флагманов отрасли, и от маленьких коллективов, выпускающих всего пару-тройку программных продуктов. Иногда таких специалистов ищут даже стартапы, обещающие хорошие перспективы сотрудникам.
Что важно знать и уметь. Само собой, язык JavaScript — по умолчанию. А всё остальное — из базового набора фронтенд-разработчика: разметку HTML и CSS, систему контроля версий Git, фреймворки react.js, vue.js, angular.js (один из них).
Стек. JavaScript, HTML, CSS.
Полный разбор профессии JavaScript-разработчика читайте в этой статье
Перейти на сайт курса
Разработчик игр
Если вы обожаете играть и мечтаете создать собственный Counter Strike или Last of us, эта профессия для вас! Гейм-девелоперы работают с движками и создают с их помощью новые шутеры, квесты, аркады и головоломки.
Разработчики игр:
- настраивают визуальная составляющую: текстуры, материалы, освещение;
- программируют уровни;
- интегрируют персонажей в игру и настраивают их взаимодействие;
- внедряют анимацию, модели и эффекты;
- разрабатывают игровые механики: то, как игра должна функционировать, что в ней должно происходить и как;
- внедряют сторонние плагины и SDK — системы аналитики и рекламы;
- оптимизируют код, чтобы программы работали быстрее и требовали меньше ресурсов;
- создают дополнительные приложения.
Круг обязанностей весьма широкий — не заскучаешь.
«Кодзима — гений» — фраза, которая ушла в народ и стала мемом. Хидэо Кодзима, создавший легендарную Death Stranding, — самый известный сегодня гейм-дизайнер
Где нужен. Логично — в компаниях, которые делают игры. Nintendo, Blizzard и Ubisoft ждут вас! А ещё такие специалисты могут быть интересны независимым инди-проектам. И, конечно, разработчикам игр для мобильных устройств.
Что важно знать и уметь. Прежде всего, разработчик игр должен знать игровой движок. Unity и Unreal Engine — самые популярные.
Ещё нужно:
- Знать языки программирования. В случае с Unity — это C#. Именно на нём написан движок. Также не помешают Python, Java и C++.
- Освоить пакет Blender, который незаменим для 3D-моделирования, визуализации и создания трёхмерной графики.
- Понимать физику процессов — какие силы влияют на поведение персонажей и их движения.
- Ориентироваться в игровых жанрах и знать их особенности.
- Знать, что такое ООП (объектно-ориентированное программирование).
- Уметь пользоваться Git.
Стек. Unity, Unreal Engine, C#, Python, Java и C++.
Полный разбор профессии разработчика игр читайте в этой статье
Перейти на сайт курса
Перейти на сайт курса
Разработчик мобильных приложений
Разработчик мобильных приложений разрабатывает приложения для мобильных устройств: смартфонов, планшетов и умных часов.
Где нужен. Приложения могут быть самыми разными:
- Банковские — со сложной архитектурой. Устроиться в банк стажёром почти нереально, это больше подойдёт опытным разработчикам.
- E-commerce — это интернет-магазины, программы лояльности, сервисы заказа и доставки, такси и др. Некоторые сайты и сервисы обслуживают 70-90% клиентов с телефона, отсюда новое направление в разработке и дизайне — mobile first.
- Образовательные — для дистанционного обучения и изучения языков, книги, коучинг, тренировки и др. Трафик в этой индустрии увеличился на 300% в 2020, и в дальнейшем рост обещает быть ещё более бурным.
А ещё такой разработчик может создавать мобильные игры — благо, этот рынок сейчас очень развит.
Пример разработки мобильного приложения на Android
Что важно знать и уметь. У каждой платформы свой мир, свои инструменты и особенности. Но чтобы начать работать хотя бы на одной из них, следует выучить английский язык, объектно-ориентированное программирование (ООП) и паттерны архитектуры приложений.
Это базовые навыки — чтобы стать сильным специалистом, нужно быть «на острие» и осваивать новые технологии.
Сейчас в тренде Flutter — кроссплатформенная технология разработки мобильных приложений от Google, которая позволяет использовать один код в разных операционных системах
Стек. Java и Kotlin для Android, Objective-C и Swift для iOS.
Полный разбор профессии разработчика мобильных приложений читайте в этой статье
1С-разработчик
«1С:Предприятие» — это пакет программ от компании 1С, которые помогают автоматизировать бухгалтерский, кадровый и управленческий учёт на предприятиях: начислять зарплату, контролировать расходы, подготавливать отчётность.
1С-разработчик внедряет 1С, адаптирует софт под потребности клиента и следит, чтобы он стабильно функционировал и выполнял всё, что требуется.
Если кратко, то 1С-разработчик:
- Внедряет и настраивает типовые конфигурации 1С.
- Дорабатывает функционал под бизнес-процессы.
- Обеспечивает защиту данных и борется с вредоносным ПО.
- Создаёт дополнительные модули, отчёты, формы.
- Следит за обновлениями и устраняет ошибки после установки.
- Поддерживает базы данных компании и серверы, на которых работают программы.
- Делает бэкапы и настраивает параметры восстановления системы в случае сбоев.
- Интегрирует 1С с другими программами и системами.
- Составляет инструкции и оформляет техническую документацию.
- Учит сотрудников пользоваться 1С.
Где нужен. Везде, где есть 1С — от ИП и мелких магазинов до крупных сетей и логистических центров, холдингов, банков и заводов. Это примерно 90% российского бизнеса.
Что важно знать и уметь. Специалист 1С работает на стыке программирования, системного администрирования и бухгалтерии. То есть не только разбирается в продуктах 1С и может написать читаемый код, но и обладает определёнными знаниями и умениями в области финансов и в состоянии без посторонней помощи решать типовые бухгалтерские задачи. Так, чтобы автоматизировать выплаты зарплат, надо знать, как вообще это происходит, что такое МРОТ и какие бывают надбавки и премии.
Стек. «1С:Предприятие».
Полный разбор профессии 1С-разработчика читайте в этой статье
DevOps-инженер
DevOps-инженер отвечает за «сборку» проекта. Это связующее звено между разработчиками и системными администраторами. Он синхронизирует и автоматизирует все этапы работы над продуктом: от написания кода до тестирования и финального релиза.
Кроме того, на плечи DevOps-инженера ложится мониторинг готового ПО и его последующая поддержка. Он совмещает сразу несколько профессий: системного администратора, разработчика, тестировщика и менеджера. Считается, что девопс — это роль для опытного сисадмина.
Где нужен. В компаниях, которые разрабатывают приложения и управляют серверами. Девопсов любят IT-гиганты вроде Amazon.
Что важно знать и уметь. Девопс умеет настраивать железо и адаптировать под него код и работать с инструментами автоматизации, тестирования и оптимизации. Обладает опытом администрирования ОС Windows и Linux. Может написать скрипты и код, подкован в сетевых технологиях.
Стек. Linux, Bash, Python, Perl.
Все курсы по DevOps — здесь
Data Scientist
Дата-сайентист — это программист-аналитик, он работает с большими данными и занимается машинным обучением.
Где нужен. Прогнозы, аналитика и математическое моделирование нужны везде: в бизнесе, финансах, на производствах, в медицине и сельском хозяйстве.
В IT-сфере дата-сайентист разрабатывает ботов и алгоритмы.
Ютуб написан на Python, а искусственный интеллект подбирает рекомендации и администрирует платформу
Развивающиеся сферы: NLP, natural language processing — распознавание человеческой речи, компьютерное зрение и разработка алгоритмов искусственного интеллекта.
Что важно знать и уметь. Обязательно знать математику и методы статистики. Ещё нужно знать алгоритмы машинного обучения и уметь работать с базами данных.
Это всё, что нужно, чтобы стать уверенным дата-сайентистом по состоянию на 2013 год. Вполне достижимо, да? Источник: Swami Chandrasekaran
Стек. Python, R, SQL.
Все курсы по Data Science — здесь
Перейти на сайт курса
Перейти на сайт курса
Как выбрать направление: шпаргалка
Чтобы вам было легче выбрать, мы свели все, какие есть направления программистов, в таблицу — сравнивайте и выбирайте!
Специализация | Что делает | Стек |
фронтенд-разработчик | пользовательские интерфейсы | HTML, CSS, JavaScript и его фреймворки, TypeScript |
бэкенд-разработчик | функции сайтов и приложений,через которые пользователь взаимодействует с интерфейсом | PHP, Python, JavaScript, Java, C#, Go, C/C++ |
фулстек-разработчик | бэкенд и фронтенд сайтов и приложений, полностью функциональные продукты с нуля | PHP, Python, JavaScript, Java, C#, Go, C/C++ |
JavaScript-разработчик | скрипты, управляющие интерактивными элементами на сайте | JavaScript, HTML, CSS |
разработчик игр | десктопные, мобильные и веб-игры | Unity, Unreal Engine, C#, Python, Java и C++ |
разработчик мобильных приложений | мобильные приложения для Android и iOS | Java и Kotlin для Android, Objective-C и Swift для iOS |
1С-разработчик | «1С:Предприятие» | «1С:Предприятие» |
DevOps-инженер | программный продукт — от начала до конца | Linux, Bash, Python, Perl |
Data Scientist | прогнозы, аналитику и математическое моделирование | Python, R, SQL |
А если вам уже не терпится начать — выбирайте любой курс из лучших в подборке и ныряйте в программирование