Блог

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

Александр Решетник отвечает за направление Java в компании EPAM в Виннице. 7 лет он помогает начинающим разработчикам стать профессионалами. Вот его пошаговая инструкция, как стать классным джавистом, которую Александр подготовил для dev.ua.  

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

Современная индустрия разработки ПО велика и разнообразна. Тяжело затронуть все актуальные направления, инструменты и библиотеки даже в рамках одного языка программирования. Посмотрите, например, на различные полезные библиотеки для Java разработчиков — по ссылке перечислено около 1000 позиций. И это далеко не все!

Java занимает стабильную нишу в современной разработке и не собирается сдавать позиции. Более того, существуют интересные прогнозы относительно будущего этого языка программирования. Прочитайте статью Mike Melason «Don’t call it a comeback: Why Java is still champ».

Как начать изучать Java? Вот основные рекомендации:

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

Java developer roadmap

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

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

С чего начать

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

  1. Путь на карте начинается с базовых навыков: Java, Maven/Gradle, SQL и общих навыков, необходимых каждому (Git, HTTP, Data structures и т. д.).
  2. Далее карта ведет нас к базам данных, фреймворкам и ORM. Ещё дальше — тестирование, разнообразные библиотеки, микросервисы и многое другое.
  3. Когда освоите базовые навыки в Java, можно параллельно заниматься SQL и разбираться с основами Maven или Gradle. Для тех, кому нужно начинать совсем с нуля, я бы посоветовал Kathy Sierra, Bert Bates «Head First. Java».
  4. 4) Далее можно перейти к более серьезной литературе — 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 by Tim Riley, Adam Goucher;
    — Business Analysis For Dummies by Kate McGoey, Kupe Kupersmith;
    — 100 Things Every Designer Needs to Know About 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, and George Spafford
  • Business Analysis For Dummies by Kate McGoey, Kupe Kupersmith
  • 100 Things Every Designer Needs to Know About People by Susan Weinschenk
  • Making Things Happen: Mastering Project Management by Scott Berkun
  • Beautiful Testing: Leading Professionals Reveal How They Improve Software by Tim Riley, Adam Goucher
  • Database Internals: A Deep Dive into How Distributed Data Systems Work +
  • SQL Antipatterns: Avoiding the Pitfalls of Database Programming
    Clean Code — A Handbook of Agile Software Craftsmanship by Robert Cecil Martin
  • Design Patterns: Elements of Reusable Object-Oriented Software

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

Ещё больше про Java:

Написание кода

Open source

About Spring Boot


Что еще почитать по теме в блогах:

Как научиться тестировать самому и найти работу в трудные времена. Гид

Как быть успешным джуном и не завалить испытательный срок


Вы тоже можете начать вести свой блог на dev.by — вот инструкция. Или присылайте темы, идеи и вопросы на [email protected]

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментарий скрыт за нарушение правил комментирования.
[censored - П. 4.1.2. Пользовательского соглашения — https://dev.by/pages/agreement]