Senior Java Developer: кто это и как им стать


Java является вторым по популярности языком программирования, поэтому Senior Java Developer‘ы, крайне востребованы. Чтобы убедится в этом, стоит лишь открыть список вакансий на hh.ru и подобных сайтах. Такие веб-приложения, как Твиттер, Ибэй, Амазон были написаны на Java, также популярен этот язык в банковской сфере и b2b-проектах. Так кто же такой Senior Java Developer, чем занимается, и как им стать?

Оглавление

Кто такой Senior Java Developer:

Java Developer – это специалист выполняющий задачи по созданию систем для обработки данных (мобильные и корпоративные приложения, сложные банковские системы, веб-сервисы).  Сферы,  в которых нужны Java Develope’ы, многочисленны, поэтому специалист может легко выбрать ту, что ему будет наиболее интересно.

Чтобы стать программистом Java необходимо немалому научиться. Нужно будет выучить и освоить:

  • Язык разработки Java;
  • Изучить фреймворки – так как сейчас на голой Java не пишется практически ничего;
  • Системы контейнеризации и оркестрации контейнеров(Docker and Kubernates;
  • Изучить паттерны разработки;
  • И много других тем (git, maven, gradle, lombok и тп);

Язык Java – это один из самых простых языков программирования, хоть и порог вхождения у него выше, чем у Python. Но встроенные подсказки(система строкой типизации) и удобные инфтрументы(Inteliji Idea) сберегают новичка от ошибок и упрощают вход в разработку.

Java – немолодой движок, в 1995 году вышла его первая официальная версия, поэтому в интернете полно гайдов, сайтов по изучению Java и другой полезной информации по решению проблем, с которыми сталкиваются начинающие разработчики, он стабильно поддерживается, обладает обширным числом библиотек и фреймоврков для различных задач и большим комьюнити. Задачи с которыми приходится приходится сталкиваться современному разработчику уже были решены и уже есть готовые инструменты и инструкции(tutorials) , нужно только погуглить.

Какими скилами должен обладать Senior Java Developer:

https://youtu.be/PeuIq0Sj0wM

Начинающему Java Developer доступны вакансии уровня стажёра или немного выше –  джуна (джуниора). От года к году, требования к молодому(jr) специалисту растет. Если лет 5 назад, было достаточно знания Java Core, то сейчас Junior уже должен быть знаком с фреймоворками которые используются в разработке и понимать процесс работки.

Senior Java Developer не всегда знает все, но за счет опыта работы с разными Фреймворками, подходами к организации процесса разработке, может быстро разобраться с новой библиотекой или быстро найти решение проблемы.

Необходимые скилы Senior Java Developer:

  • Java Core. Уверенно ориентироваться и использовать стандартные библиотеки. Знать основные структуры которые используются. И понимать ООП. – Без этого дальше продвинутся будет не возможно.
  • Освоить Фреймворки. На самом деле Фреймворков очень много и просто знать список всех не возможно, но нужно знать основные которые уже де-факто считаются стандартными:
    • Spring и Spring Boot;
    • Hibernate;
    • Maven и Gradle;
    • Liquibase или Flyway;
  • Познакомится с Docker и Kubernates;
  • Уметь вести разработку в системе контроля версий(VCS) – git;
  • Нужно уметь в SQL, стандартом в OpenSource сейчас считается PostgreSQL
  • Так же нужно знать процесс разработки. Что такое issue трекер, как заводятся задачи/дефекты;
  • Среда разработки сейчас считается тоже уже достойна отдельного изучения, в Inteliji IDEA так много функционала которое упрощает жизнь разработчику, что уже пишутся целые книги, как правильно и эффективно ее использовать;

Грейды – чем Senior отличается от Junior

Java разработчиков делят на 3 группы или уровней в зависимости от профессиональных навыков, знаний и опыта, которыми обладают:

  • Junior Java Developer (Джун/Джуниор Джава разработчик) обладает минимальным опытом работы, это начинающие с чаще всего базовыми знаниями, ниже этого уровня иногда выделяют стажёров;
  • Middle Java Developer (Мидл  Джава разработчик) – так называют профессионала, выполняющего работу средней сложности;
  • Senior Java Developer (Сеньор Джава разработчик) – специалист, который является старшим разработчиком;

После того как разработчик достиг позиции Senior Java Developer, дальше он может развиваться в одном из направлений:

  • Tech Lead (Тех Лид) – технический лидер, руководящий группой разработчиков/ Если есть желание работать с людьми;
  • Architect (архитектор) – технический архитектор, IT-архитектор, занимается проектированием систем, продумыванием API. Минимум написания кода;
  • Principal(Эксперт) – Очень хорошо разбирается в узкой теме. Редко относятся к конкретной команде. К нему приходят когда уже нет ни каких вариантов решения проблемы;

Зарплата Senior Java Developer:

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

Практически никогда зарплата Java Developer не составляет ниже ста тысяч рублей, а после 2020 года, уже джунам начали давать от 80 – 100 тыс. рублей.:

  • в Москве, Санкт-Петербурге и других крупных городах платят от 100 тысяч рублей в месяц и выше;
  • программисты на удалённой работе получают также от 100 тысяч рублей и выше в месяц;
  • оплата за проектную работу составляет от 80 тысяч рублей.
  • Судя по вакансиям, потолок на сегодняшний день – это 400 тыс рублей

Многих привлекает данная профессия, что существует возможность получать зарплату во многих городах выше средней, при этом быть свободным работай из дома на постоянной работе или беря несколько проектов на фрилансе. Либо при желании устроиться в офис. При всём этом ни один из вариантов занятости в данной профессии не отличается более высокой оплатой по отношению к другой.

Собеседование:

Естественно, прежде чем откликаться на вакансии и участвовать в собеседованиях, необходимо, чтобы работодатель знал о навыках соискателя. Резюме java разработчика состоит из указаний перечня пройденных курсов  или образования с годом их прохождения и окончания.  Необходимо указать навыки, название компаний, годы работы, должность по соответствующей сфере, обязанности, достигнутые достижения. Если опыт отсутствует, то нужно оставлять ссылки на профили в биржах, проекты, работы. Можно указать в этом случае дополнительно опыт работы в другой сфере. Однако требования к Java Developer такого уровня, как Senior выше начинающего, поэтому без большого опыта в конкретной сфере не обойтись.

Само собеседование java разработчика происходит по-разному, так как hr-менеджеры люди разные(со своими причудами) и часто не глубоко погружённые в контекст программирования.  

Обычно есть несколько этапов собеседования:

  • Разговор с HR. Тут особо ничего интересного не происходит, обычно HR, проверяет что вы адекватный человек, и что резюме свое знаете, а не списали. По технике вопросы не задает. Может спросить про опыт работы;
  • Техническое собеседование. На нем нужно будет показать свои знания. Всё о Java заучить наизусть невозможно, но основы, термины, понятия необходимо знать. Далее стоит рассказать об опыте в профессии;
  • Разговор с командой или уже не посредственно с руководителем команды куда идет набор. На этом этапе уже нет техники, и руководитель смотрит на вас и понимает, хочет ли с вами работать или нет;

Не стоит стесняться просить высокую оплату за услуги разработчика. 100 тысяч рублей  в месяц это минимальная цена. Для сеньора оптимальная заработная плата –  300-400 тысяч рублей в месяц.

Как стать Senior Java Developer

Чтобы достигнуть уровня Senior Java Developer необходим, профессиональный опыт разработки и поддержки проектов. Минимум от 3 лет заниматься разработкой. Наверное от 3 проектов, разной успешность.

Также нужно обладать достаточным уровнем технических знаний и навыков, чтобы понимать какими инструментами воспользоваться для быстрого решения задачи. Уметь писать чистый код, понимать алгоритмы. Принимать оптимальное решение. Умение быстро осваивать сторонние сервисы, Фреймворки, СУБД.

Такой специалист должен обладать высокими навыками коммуникации, знать английский язык(зависит от команды), работать в команде, обсуждать с заказчиком ТЗ и сроки выполнения,  составлять план работ, быть умелым менеджером(как минимум для себя).

Постоянно развиваться в профессиональном плане и расширять свой кругозор вне своей сферы деятельности. Писать доклады, статьи, документации и создавать прочие полезные материалы, выступать с ними, чтобы помогать, обучать коллег и нести IT в массы