Как стать хорошим Java-разработчиком с нуля: максимально подробная инструкция для начинающих
Александр Решетник отвечает за направление Java в компании EPAM в Виннице. 7 лет он помогает начинающим разработчикам стать профессионалами. Вот его пошаговая инструкция, как стать классным джавистом, которую Александр подготовил для dev.ua.
Современная индустрия разработки ПО велика и разнообразна. Тяжело затронуть все актуальные направления, инструменты и библиотеки даже в рамках одного языка программирования. Посмотрите, например, на различные полезные библиотеки для Java разработчиков — по ссылке перечислено около 1000 позиций. И это далеко не все!
Java занимает стабильную нишу в современной разработке и не собирается сдавать позиции. Более того, существуют интересные прогнозы относительно будущего этого языка программирования. Прочитайте статью Mike Melason«Don’t call it a comeback: Why Java is still champ».
Как начать изучать Java? Вот основные рекомендации:
Найдите актуальную дорожную карту для изучения Java и двигайтесь по ней.
Изучайте фундаментальные вещи в проверенных книгах.
Уделяйте большое внимание практическим навыкам и реальному опыту.
Бонусный универсальный совет — постепенно, но неустанно и настойчиво улучшайте свой уровень английского языка. Это первый язык в IT, которым стоит овладеть новичкам. Его невозможно выучить быстро, нужно регулярно работать.
Работодатели много ожидают от тех, кто подается на позицию Junior Developer: отличное владение языком программирования и некоторыми базовыми инструментами, хорошие софт-скилы и хороший уровень английского языка.
К счастью для современных новичков, существует отличная дорожная карта (и не одна), которая показывает, как пройти от базового до уровня профессионального разработчика. Ещё одна хорошая новость: в мире создано огромное количество учебных ресурсов, которые помогают овладеть любой технологией. Учеба сегодня — настоящий бизнес с жесткой конкуренцией, есть из чего выбирать среди платных и бесплатных ресурсов. Чтобы учиться эффективнее, советую прочесть книгу Барбары Окли «Научиться учиться. Как запустить свой мозг по полной».
С чего начать
Рассмотрим карту, приведенную выше, и определим, с чего начать. Она не полна, да и составить полную универсальную карту невозможно. В будущем ваше личное развитие и характер проектов, на которых вы будете работать, будет её дополнять.
Путь на карте начинается с базовых навыков: Java, Maven/Gradle, SQL и общих навыков, необходимых каждому (Git, HTTP, Data structures и т. д.).
Далее карта ведет нас к базам данных, фреймворкам и ORM. Ещё дальше — тестирование, разнообразные библиотеки, микросервисы и многое другое.
Когда освоите базовые навыки в Java, можно параллельно заниматься SQL и разбираться с основами Maven или Gradle. Для тех, кому нужно начинать совсем с нуля, я бы посоветовал Kathy Sierra, Bert Bates «Head First. 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 могут помочь решить какую-либо конкретную проблему или дать ответы на вопросы.
Дополнительные навыки
Сюда можно включить системы контроля версий (Git, SVN), HTTPS, REST, web (basic, OAuth, SSO, JWT), Scrum, Kanban, структуры данных, алгоритмы и многое другое.
Знакомство со смежными специальностями, чтобы понимать суть работы своих коллег. Мой список рекомендуемой литературы:
— 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.
Умение решать задачи с помощью программирования и писать хороший код. Здесь пригодится определенная комбинация практики и теории.
Теория:
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 и так далее. Выбирайте хорошую книгу или онлайн-курс для каждого инструмента, которым вы хотите овладеть.
На этом этапе стоит задуматься о простых задачах, которые вы можете начать решать с вашим опытом или даже о собственном пет-проекте. Следующий шаг: участие в проектах с открытым кодом. Здесь могут пригодиться следующие ресурсы:
Всегда можно найти информацию, соответствующую вашему уровню и количеству свободного времени. Участие в таких проектах будет большим плюсом при поиске работы и позволит вам получить уникальный опыт.
Выводы
Что ж, был рад поделиться своими мыслями. Путь от новичка до первого признания — довольно сложный. Требуется много времени, терпения и мотивации. Но хорошая дорожная карта и эффективные учебные ресурсы помогут избежать острых углов и значительно облегчат вашу работу. Не забывайте про мои рекомендации в начале статьи — вам пригодится дорожная карта и её переодические обновления, понимание фундаментальных вещей из книг, практика и реальный опыт.
12 онлайн-курсов по языку Java для новичков и профессионалов (август, 2023)
Java по-прежнему входит в список самых популярных языков программирования. Вместе с Digitaldefynd мы составили список курсов по Java, которые подойдут как новичкам, так и людям с опытом программирования, чтобы освоить этот востребованный язык.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.
Комментарий скрыт за нарушение правил комментирования.
[censored - П. 4.1.2. Пользовательского соглашения — https://dev.by/pages/agreement]