Про Херсон від херсонця 🔥

Мануал для джуна. Как стать хорошим Java-разработчиком с нуля: максимально подробная инструкция для начинающих

Александр Решетник отвечает за направление Java в компании EPAM в Виннице. Уже 7 лет он помогает начинающим стать разработчиками.

«Знаю, это не просто и не быстро, ситуация в ИТ постоянно меняется. Следуйте следующим советам о том, как начать свой путь в разработке программного обеспечения на языке Java и как двигаться по выбранному пути. Одно время такие советы мне очень помогли», — говорит Александр.

Вот инструкция о том, как стать классным джавистом для читателей dev.ua.

Оставить комментарий
Мануал для джуна. Как стать хорошим Java-разработчиком с нуля: максимально подробная инструкция для начинающих

Александр Решетник отвечает за направление Java в компании EPAM в Виннице. Уже 7 лет он помогает начинающим стать разработчиками.

«Знаю, это не просто и не быстро, ситуация в ИТ постоянно меняется. Следуйте следующим советам о том, как начать свой путь в разработке программного обеспечения на языке Java и как двигаться по выбранному пути. Одно время такие советы мне очень помогли», — говорит Александр.

Вот инструкция о том, как стать классным джавистом для читателей dev.ua.

Содержание

Дорожная карта

Современная индустрия программного обеспечения очень велика и разнообразна. Трудно понять все актуальные направления, инструменты и библиотеки даже в рамках одного языка программирования. Посмотрите, например, различные полезные библиотеки для Java разработчиков. Есть около 1000 позиций, и это еще далеко не все. Java занимает стабильную нишу в современной разработке и не собирается уступать позиции. Более того, есть интересные прогнозы относительно ее будущего. Рекомендую статью Mike Melason «Не нужно скачать ей как back: Что Java is still champ».

Что касается начала изучения Java, могу свести ответ к трем рекомендациям:

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

И бонусный совет, который действительно универсален, — постепенно, неустанно и настойчиво улучшайте свой уровень английского языка. Это первый язык в ИТ, который нужно овладеть начинающими.

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

Об ожиданиях работодателей

Сегодня работодатели ожидают многое от тех, кто подается на позицию Junior Developer:

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

Последнее, кстати, можно отнести к категории «самого главного».

Есть мнение, что любые навыки нужны для работы на проекте, можно «прокачать» довольно быстро, но уровень английского языка растет довольно медленно.

К счастью для современных начинающих, существует отличная дорожная карта (и не одна), которая показывает, как пройти от базового до уровня профессионального разработчика. Для еще большего счастья уже создано огромное количество учебных ресурсов, которые помогают овладеть любой технологией. Учеба стала существенным бизнесом с жесткой конкуренцией, поэтому есть из чего выбирать и среди платных ресурсов, и среди бесплатных. Учеба требует много времени и концентрации. Чтобы делать это эффективнее, советую книгу Барбары Окли «Научиться учиться. Как запустить свой мозг по полной».

https://github.com/s4kibs4mi/java-developer-roadmap

С чего начать

Рассмотрим карту приведенную выше и определим, с чего начать. Она не полна. Пожалуй, составить полную универсальную карту невозможно. В будущем ваше личное развитие и характер проектов, на которых вы будете работать, будет ее дополнять. Путь на карте начинается с базовых навыков: Java, Maven/Gradle, SQL и общих навыков, необходимых каждому (Git, HTTP, Data structures и др.). Далее он ведет нас к базам данных, фреймворкам и ORM. Еще дальше на пути — тестирование, разнообразные библиотеки, микросервисы и многое другое.

Позже, когда будут освоены базовые навыки в Java, можно параллельно заниматься SQL и разобраться с основами Maven или Gradle. Для тех, кому нужно начинать совсем с нуля, я бы посоветовал Kathy Sierra, Bert Bates Head First. Java».

Впоследствии можно перейти к более серьезной литературе — Herbert Schildt «Java: A Beginner’s Guide» или «Java: The Complete Reference» или Cay S. Horstmann «Core Java». Кстати, у обоих авторов есть другие книги по Java (и не только), на которые стоит обратить внимание. А когда уже почувствуете себя совершенно уверенно, беритесь за более сложные книги Bruce Eckel Thinking in Java и Joshua Bloch Effective Java. Я специально уделяю максимум внимания книгам в самом начале, потому что это хороший фундамент ваших знаний и собственно, это тот же ключ к успеху Java-разработчика.

Основные навыки

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

Можно начать с быстрого курса, такой можно найти, например, на Udemy — Maven Quick Start: A Fast Introduction to Maven by Example.

Но впоследствии стоит прочесть нечто более основательное, например, Tim O’Brien «Maven: The Complete Reference».

По Gradle можно начать с курса на Linkedin — Learning Gradle, а затем углубиться в официальную документацию — Gradle Guides gradle.org/guides.

Третьим компонентом фундамента для Backend-разработчика является, конечно, работа с базами данных. И здесь не обойдешься без знания SQL. Для начала могу посоветовать книгу Thomas Nield «Getting Started with SQL»

Перед тем, как идти дальше, давайте сделаем маленькое отступление и рассмотрим такой вопрос — А какие ресурсы использовать для обучения? В дальнейшем технологий и тем, которые стоит проработать, будет все больше и больше, а времени все меньше и меньше.

  • Книги могут создать хорошую основу для знания по определенной технологии или теме. Однако следует помнить, что книги выходят с некоторым опозданием. Впрочем, всегда есть книги обязательные для чтения в любом стеке технологий. Начинайте с какой-нибудь книги для начинающих, и уже позже, с определенным опытом, переходите в литературу для профессионалов.
  • Начальные курсы на Coursera, LinkedIn, Udemy и других подобных платформах тоже могут быть хорошим источником информации, особенно если у курса хорошие отзывы, практические задания и хороший темп.
  • Официальная документация, вероятно, единственный источник, который может предоставить исчерпывающую информацию о возможности технологии или инструмента (кроме исходного кода, конечно).
  • Разнообразные блоги, туториалы, статьи, Stackoverflow могут помочь решить какую-либо конкретную проблему или вопросы.

Дополнительные навыки

  1. Навыки нужны каждому разработчику. Сюда можно включить системы контроля версий (Git, SVN), HTTPS, REST, web (basic, OAuth, SSO, JWT), Scrum, Kanban, структуры данных, алгоритмы и многое другое.
  2. Знакомство со смежными специальностями, чтобы знать сущность работы своих коллег. Мой список рекомендуемой летературы для этого таков:
    — The Phoenix Project by Gene Kim, Kevin Behr, and George Spafford
    — Beautiful Testing: Leading Professionals Reveal How They Improve Software по Tim Riley, Adam Goucher
    — Business Analysis For Dummies by Kate McGoey, Kupe Kupersmith
    — 100 Things Every Designer Должны знать People by Susan Weinschenk
    — Making Things Happen: Mastering Project Management by Scott Berkun.
  3. Умение решать задачи с помощью программирования и писать хороший код. Здесь пригодится определенная комбинация практики и теории.

Теория:

  • SOLID, DRY, YAGNI;
  • Clean Code: A Handbook of Agile Software Craftsmanship 1st Edition by Robert C. Martin;
  • Code Craft: The Practice of Writing Excellent Code 1st Edition by Pete Goodliffe

Практика:

Как двигаться по карте дальше

После того, как у вас уже есть немного опыта с фундаментальными вещами, можно переходить к следующим пунктам на нашей карте: CLI tools, Web frameworks, Databases и так далее. Для каждого инструмента, который нужно овладеть, нужно выбрать хорошую книгу или онлайн курс, и начать использовать его практически. На этом этапе стоит задуматься о простых задачах, которые вы можете начать решать с вашим опытом или даже о собственном пэт-проекте. Далее можно переходить к участию в проектах с открытым кодом. Здесь могут пригодиться следующие ресурсы:

Всегда можно найти что-нибудь на свой уровень и количество свободного времени. Такое участие будет огромным плюсом при поиске работы и подарит уникальный опыт.

Вывод

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

Полезные ссылки

Как учиться:

Паттерны проектирования на разных языках программирования

Общие навыки:

  • Одна книга для каждого направления: Java, DevOps, BA, да еще семь профессий
  • Head First Java by Kathy Sierra & Bert Bates
  • The Phoenix Project by Gene Kim, Kevin Behr, и George Spafford
  • Business Analysis For Dummies by Kate McGoey, Kupe Kupersmith
  • 100 Things Every Designer Должны знать People by Susan Weinschenk
  • Making Things Happen: Mastering Project Management by Scott Berkun
  • Beautiful Testing: Профессиональные практики Reveal How They Improve Software Tim Riley, Adam Goucher
  • Database Internals: A Deep Dive в How Distributed Data Systems Work +
  • SQL Antipatterns: Авоиденция графических элементов программирования
    Clean Code — Handbook of Agile Software Craftsmanship by Robert Cecil Martin
  • Design Patterns: Elements of Reusable Object-Oriented Software

Тестирование ПО

Еще больше о Java:

Codding

Open source

About Spring Boot

Мануал для джуна. Первый среди равных для начинающих: что нужно знать новичку в .Net и как получить Job offer
Мануал для джуна. Первый среди равных для начинающих: что нужно знать новичку в .Net и как получить Job offer
По теме
Мануал для джуна. Первый среди равных для начинающих: что нужно знать новичку в .Net и как получить Job offer

Больше мануалов для начинающих здесь .

Мануал для джуна. Что нужно знать начинающему тестировщику идя на собеседование: советы тимлида и примеры задач
Мануал для джуна. Что нужно знать начинающему тестировщику, идя на собеседование: советы тимлида и примеры задач
По теме
Мануал для джуна. Что нужно знать начинающему тестировщику, идя на собеседование: советы тимлида и примеры задач
Мануал для джуна. Что нужно знать, чтобы стать AQA: теоретические вопросы и примеры тестовых заданий от AQA Team Lead Capgemini
Мануал для джуна. Что нужно знать, чтобы стать AQA: теоретические вопросы и примеры тестовых заданий от AQA Team Lead Capgemini
По теме
Мануал для джуна. Что нужно знать, чтобы стать AQA: теоретические вопросы и примеры тестовых заданий от AQA Team Lead Capgemini
Читайте главные IT-новости страны в нашем Telegram
Читайте главные IT-новости страны в нашем Telegram
По теме
Читайте главные IT-новости страны в нашем Telegram
Електробайки по-українськи між Києвом та Лос-Анджелесом в «СКШ»

Дивіться, чим живе Delfast під час війни в Україні

Мы запускаем рассылку об украинском IT-комьюнити. Оставьте email, чтобы понимать больше. Премьера — скоро!
Спасибо! На указанный адрес отправлено письмо для подтверждения подписки.
Читайте также
12 онлайн-курсов по Java для новичков и профи в 2022 году
12 онлайн-курсов по Java для новичков и профи в 2022 году
12 онлайн-курсов по Java для новичков и профи в 2022 году
Java по-прежнему входит в список самых популярных языков программирования. Вместе с Digital Defund составили список курсов, которые подойдут как новичкам, так и людям с опытом программирования, и помогут освоить этот востребованный язык.
Запускай код прямо в браузере: лучшие онлайн-компиляторы для C++, PHP, Python, Java, C#, Go и не только
Запускай код прямо в браузере: лучшие онлайн-компиляторы для C++, PHP, Python, Java, C#, Go и не только
Запускай код прямо в браузере: лучшие онлайн-компиляторы для C++, PHP, Python, Java, C#, Go и не только
Не всегда есть доступ к любимой IDE или время на ее запуск. Но когда нужно быстро проверить какой-то простой функционал или воплотить новую идею, пригодится онлайн-компилятор.
Как я училась в EPAM University. Анонимный рассказ 18-летней джавистки
Как я училась в EPAM University. Анонимный рассказ 18-летней джавистки
Как я училась в EPAM University. Анонимный рассказ 18-летней джавистки
Войти в IT — задание не из простых, особенно когда ты гуманитарий, тебе 18 и ты учишься в университете. Однако желание стать лучшей версией себя, быть в тренде и обеспечить себе достойный уровень жизни побеждает любые препятствия. И наша героиня — яркий этому пример. По желанию собеседницы мы не будем называть ее имени. dev.ua публикует рассказ 18-летней студентки EPAM University о том, как это — войти в IT собственными силами, даже когда ты из маленького провинциального городка.   Наша героиня рассказала dev.ua, как попасть в EPAM University, трудно ли там учиться и какие перспективы ждут выпускников.
Извечный вопрос: чем отличается Java от JavaScript. Подробный гайд
Извечный вопрос: чем отличается Java от JavaScript. Подробный гайд
Извечный вопрос: чем отличается Java от JavaScript. Подробный гайд
Для кого-то ответ на вопрос о разнице Java и JavaScript очевиден — здесь начинаются шутки о сходстве между ковром и автомобилем (Java похожа на JavaScript так же, как «car» на «carpet»). Несмотря на это, некоторые люди еще могут иметь ложное представление, считая, что это два названия того же языка или что технологии тесно связаны. dev.ua немного проясняет ситуацию.

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментариев пока нет.