Фронт-энд разработчик — это верстальщик и программист в одном лице, герой стиля и кода, создающий пользовательский интерфейс. Главная задача фронт-энд разработчика — перевести дизайн-макет в легко читаемый и расширяемый код, сделать так, чтобы всё на сайте или в веб-приложении работало быстро и удобно для пользователя. Слово «фронт» в названии профессии говорит о том, что фронт-энд разработчик находится на передовой линии с конечным пользователем и отвечает за внешний функционал приложения, с которым контактирует пользователь. Программным кодом на сервере занимается другой специалист — бэк-энд разработчик. К сведению: есть универсальный специалист, который работает одновременно на фронт-энд и бэк-энд. Он называется фулл-стек разработчик (с англ. full stack developer).
Основные инструменты фронт-энд разработчика в web:
Это минимальные знания, но над каждым из элементов есть свои настройки. Над HTML — шаблонизаторы, над CSS — препроцессоры, над JavaScript — как расширения языка, например TypeScript, так и различные библиотеки, в том числе библиотеки/фреймворки для построения одностраничных приложений (single page application): React, Vue.JS, Angular
Есть много дополнительных инструментов, которые автоматизируют рутинную часть работы:
- Sass/SCSS, LESS, Bootstrap (три ведущих фреймворка);
- React;
- Angular;
- Vue.js;
- jQuery;
- Webpack;
- Gulp.
А появление Chrome Dev Tools и Firebug позволило повысить производительность труда.
Плюсы и Минусы
Плюсы
- Много вакансий, тысячи компаний делают сайты, различные сложные сервисы, без работы не останешься никогда.
- Сразу видишь результат, даже если ждешь backend-разработчика, можешь подставить моковые данные и сделать реализацию на них.
- Большинство стартапов сейчас делают веб-сайты, ты можешь присоединиться к ним или реализовать свой интересный проект. Часть функциональности можно реализовать без backend-разработчика, есть специальные сайты, которые позволяют сохранять информацию на сервере без программирования.
Минусы
- В этой профессии нечетко определены должностные обязанности, и не каждый руководитель понимает, что именно должен делать фронт-энд разработчик.
- Взаимодействие с большим количеством людей: бэк-энд разработчиками, пользователями, дизайнерами, тестировщиками, аналитиками — и постоянное участие в командных обсуждениях может быть напряженным и неэффективным.
Java Developer
Программист Java (Java Developer) создает приложения разной сложности, используя один из самых распространенных языков программирования «Джава» (Java). Он не только пишет программный код, но и занимается внедрением, тестированием, русификацией программ, модификацией кода.
Описание профессии
Java-программист должен хорошо владеть другими языками программирования, понимать структуру создаваемого продукта, уметь работать с разными движками и программным обеспечением.
Работа программиста, выбравшего язык Java, состоит из таких этапов:
- общение с заказчиком – «снятие требований» к продукту;
- разработка архитектуры, программных модулей, Enterprise Application Integration;
- тестирование и внедрение;
- исправление ошибок, если они были замечены во время работы с продуктом;
- дальнейшая техническая поддержка.
Специалистов часто привлекают к работе, связанной с исправлением ошибок в чужом коде, обновлением или модификацией уже имеющихся приложений, переводами зарубежного ПО. Заметим, что программист Java должен уметь взаимодействовать с заказчиком и командой разработчиков, составлять технические задания, хорошо знать технический английский язык.
Так как большинство проектов, которые разработаны и разрабатываются на Java, – это все-таки enterprise-сектор, то самым большим разочарованием неопытного программиста может стать осознание того, что для работы в этой области недостаточно знания только Java – также нужен багаж других знаний, которые идут в комплекте.
- В обязательном порядке придется выучить работу с базами данных на хорошем уровне, так как от этого может зависеть производительность вашего приложения.
- Необходимо выучить фреймворк для построения платформы, потому как на данный момент никто не работает чистым Java, есть уже масса готовых архитектурных решений, которые необходимо просто взять и использовать у себя в проекте (такой задачей обычно занимается TechLead).
- Обязательно умение работать с системами контроля версий (Git), без которых невозможна разработка в текущее время.
- Умение пользоваться брокерами сообщений между разными приложениями тоже будет плюсом, так как сейчас зачастую продукт построен из нескольких частей, которые общаются между собой посредством сообщений.
- Большим плюсом будет понимание базовых архитектурных решений: микросервисная архитектура либо монолитное приложение – потому что это поможет понимать, почему та или иная часть в проекте была реализована таким образом.
- Следующий важный фактор и большой плюс – умение работать с Linux на продвинутом уровне.
- Понадобится умение использовать различные инструменты, которые помогают сделать поставку продукта в продакшн, то есть это различные системы контейнеризации типа Docker, Kubernetes, а также процессы CI/CD, чтобы понимать, как из кода в редакторе это попадает на сервер и работает. Опять же это не критично, но достичь высоких должностей и зарплат без этого вряд ли получится.
- В большинстве случаев приходится выучить смежные языки. Допустим, на текущий момент сложно обойтись без знаний JavaScript, потому как он основной для разработки фронтенд-части сайта.
Плюсы и минусы профессии
Плюсы
- Вакансий Java-программистов много, поэтому найти работу не проблема.
- Эту сложную техническую профессию можно освоить примерно за 1 год на курсах.
- Возможность работать удаленно.
- Перспективное профессиональное направление.
- Работа в творческой команде.
Минусы
- Нестабильный оклад, ведь у молодых программистов Java работа есть не всегда.
- Большая ответственность.
- Без опыта сложно устроиться на работу.