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

Выбор правильной специализации

Меня часто спрашивают, чему мне научиться, чтобы устроиться на работу в ИТ. Ответ в том, что это зависит от… В старые добрые времена талантливый «ИТ-парень» делал все, от установки оборудования до разработки веб-сайтов. В наши дни корпоративный ИТ-проект настолько сложен, что для него требуются такие специалисты, как:

  • Backend-разработчик (.Net, Java, Python и т. Д.)
  • Разработчик интерфейса (Angular, React, Vue и т. Д.)
  • Архитектор
  • Мобильный разработчик
  • Инженер по данным, инженер по большим данным
  • Специалист по данным
  • UX дизайнер
  • Скрам мастер
  • Менеджер проекта
  • Тестировщик (мануал, инженер по автоматике)
  • SEO
  • Системный администратор
  • Хакер в белой шляпе
  • и многое другое

Выбрать правильную специализацию сложно, но знать, чему учиться, еще труднее, поскольку технологии меняются быстро, книга или университетский курс, которым 2–3 года, могут легко устареть.

Спрос на рынке труда (и заработная плата) может значительно различаться, но есть несколько общих правил: почти каждой компании, создающей программное обеспечение, потребуются бэкенд-инженеры и фронтенд-инженеры. Среди бэкенд-инженеров наиболее востребованными (и высокооплачиваемыми) являются Java, .Net, Python и C ++. На момент написания этой статьи было 4700 вакансий Backend Java разработчиков в Лондоне, 1500 Backend разработчиков .Net и 3700 разработчиков Frontend React. Споры о том, какой язык программирования лучший, не прекращаются, но мы можем с уверенностью сказать, что инвестирование в карьеру Java Backend Developer - один из самых безопасных и высокооплачиваемых вариантов.

Необходимые навыки для Java-разработчика

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

0. Инструменты

1. Java 8+

Существует бесчисленное количество бесплатных и платных руководств, вот несколько примеров.

2. Java 9–17 +

Скорее всего, найденный вами курс java будет преподавать более старую версию. Последним крупным изменением в Java стала Java 8. Если вы усвоили это, то новые возможности легко освоить.

3. Модульное и интеграционное тестирование

Разработчики не просто пишут производственный код, они также пишут модульные тесты, чтобы избежать регресса. JUnit - наиболее распространенный фреймворк для модульного тестирования, см. Учебник.

5. Весенний ботинок

Spring boot значительно упрощает запуск Java-приложений корпоративного уровня. Очень мало компаний, которые запускают Java без Spring и Spring Boot.

  • Ядро Spring, внедрение зависимостей, конфигурация java. См. Учебник
  • Доступ к базе данных: JDBC, JPA. См. Учебник
  • Создание API для обслуживания пользовательского интерфейса: Spring MVC Rest. См. Теория и практика.

Навыки, которые должен знать каждый разработчик

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

Система контроля версий

Системы контроля версий позволяют нескольким разработчикам совместно работать над одним проектом. В настоящее время стандартом де-факто является Git, см. Учебник.

Паттерны проектирования, разработка через тестирование, гибкая разработка

Шаблоны проектирования - это независимые от языка программирования передовые методы, которые должен знать каждый разработчик. Это очень частые вопросы на собеседовании. Самая уважаемая книга - Чистый код, также стоит прочитать ее продолжение, Чистый кодер.

Команды инженеров почти всегда организуют свою работу в соответствии с принципами Scum или Kanban. Эта короткая бесплатная электронная книга объясняет, как это работает.

Отношение и личность

Стереотип программиста - это ботаник-интроверт. Это, конечно, существует, но на самом деле программисты обычно работают в больших командах, и они должны уметь общаться. Программистам платят за решение бизнес-задач, поэтому они должны быть открытыми, чтобы узнать о других профессиях, например: финансы, здравоохранение и т. Д. Они также должны быть самоуправляемыми и стремиться узнавать новое.

Технологии, которых следует избегать

В 2021 году изучение этих технологий может оказаться пустой тратой времени.

  • Версии Java до Java 8
  • JEE, JSP, JSF, Swing

Возможности дальнейшего обучения

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

Докер (Учебник), Kubernetes (Учебник). Они станут хорошей основой для облачных вычислений, которые также пользуются большим спросом.

Резюме

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

Изучение всего вышеперечисленного с нуля может занять 5–12 месяцев, но его можно значительно упростить, посетив учебный лагерь, онлайн-обучение или, по крайней мере, имея кого-то, кто уже знает это и может помочь по запросу.