Frontend or Java Developer

Frontend разработчик

Фронт-энд разработчик — это верстальщик и программист в одном лице, герой стиля и кода, создающий пользовательский интерфейс. Главная задача фронт-энд разработчика — перевести дизайн-макет в легко читаемый и расширяемый код, сделать так, чтобы всё на сайте или в веб-приложении работало быстро и удобно для пользователя. Слово «фронт» в названии профессии говорит о том, что фронт-энд разработчик находится на передовой линии с конечным пользователем и отвечает за внешний функционал приложения, с которым контактирует пользователь. Программным кодом на сервере занимается другой специалист — бэк-энд разработчик. К сведению: есть универсальный специалист, который работает одновременно на фронт-энд и бэк-энд. Он называется фулл-стек разработчик (с англ. full stack developer).

Основные инструменты фронт-энд разработчика в web:

  • JavaScript;
  • HTML;
  • CSS.

Это минимальные знания, но над каждым из элементов есть свои настройки. Над 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 (Java Developer) создает приложения разной сложности, используя один из самых распространенных языков программирования «Джава» (Java). Он не только пишет программный код, но и занимается внедрением, тестированием, русификацией программ, модификацией кода.

Описание профессии

Java-программист должен хорошо владеть другими языками программирования, понимать структуру создаваемого продукта, уметь работать с разными движками и программным обеспечением.

Работа программиста, выбравшего язык Java, состоит из таких этапов:

  • общение с заказчиком – «снятие требований» к продукту;
  • разработка архитектуры, программных модулей, Enterprise Application Integration;
  • тестирование и внедрение;
  • исправление ошибок, если они были замечены во время работы с продуктом;
  • дальнейшая техническая поддержка.

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

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

  • В обязательном порядке придется выучить работу с базами данных на хорошем уровне, так как от этого может зависеть производительность вашего приложения.
  • Необходимо выучить фреймворк для построения платформы, потому как на данный момент никто не работает чистым Java, есть уже масса готовых архитектурных решений, которые необходимо просто взять и использовать у себя в проекте (такой задачей обычно занимается TechLead).
  • Обязательно умение работать с системами контроля версий (Git), без которых невозможна разработка в текущее время.
  • Умение пользоваться брокерами сообщений между разными приложениями тоже будет плюсом, так как сейчас зачастую продукт построен из нескольких частей, которые общаются между собой посредством сообщений.
  • Большим плюсом будет понимание базовых архитектурных решений: микросервисная архитектура либо монолитное приложение – потому что это поможет понимать, почему та или иная часть в проекте была реализована таким образом.
  • Следующий важный фактор и большой плюс – умение работать с Linux на продвинутом уровне.
  • Понадобится умение использовать различные инструменты, которые помогают сделать поставку продукта в продакшн, то есть это различные системы контейнеризации типа Docker, Kubernetes, а также процессы CI/CD, чтобы понимать, как из кода в редакторе это попадает на сервер и работает. Опять же это не критично, но достичь высоких должностей и зарплат без этого вряд ли получится.
  • В большинстве случаев приходится выучить смежные языки. Допустим, на текущий момент сложно обойтись без знаний JavaScript, потому как он основной для разработки фронтенд-части сайта.

Плюсы и минусы профессии

Плюсы

  1. Вакансий Java-программистов много, поэтому найти работу не проблема.
  2. Эту сложную техническую профессию можно освоить примерно за 1 год на курсах.  
  3. Возможность работать удаленно. 
  4. Перспективное профессиональное направление.
  5. Работа в творческой команде.

Минусы

  1. Нестабильный оклад, ведь у молодых программистов Java работа есть не всегда.
  2. Большая ответственность.
  3. Без опыта сложно устроиться на работу.