Александр Решетник уже 7 лет готовит начинающих Java-разработчиков в команде EPAM. В этой статье Александр делится ценными советами и детализированной учебной дорожной картой для всех, кто делает первые шаги в разработке.
Начинающий разработчик должен обладать уверенными коммуникативными навыками, хорошо владеть английским языком и иметь крепкий фундамент для изучения языков программирования (в нашем случае —Java). Кстати, на первых порах недостаток технических знаний помогут компенсировать именно коммуникативные навыки. Помните, что уровень владения английским растет медленнее, чем улучшаются технические навыки, отсюда главный совет — учите английский постоянно и прилежно.
Базовые рекомендации от Александра:
- Продвигайтесь по актуальной дорожной карте для освоения Java.
- Учите базовые понятия по проверенным книгам.
- Постоянно практикуйтесь.
Составить универсальную дорожную карту невозможно, но взгляните на этот вариант. Конечно, со временем и опытом вы несколько видоизмените и дополните карту, ведь найти свой путь — это тоже один из главных челленджей для начинающего.
Детальная карта Java Roadmap доступна по ссылке.
Главный секрет успешной работы Java-разработчика — это профессиональная литература.
Для тех, кто делает первые шаги, есть полезная книга Kathy Sierra, Bert Bates «Head First. Java».
Затем можете перейти к Cay S. Horstmann «Core Java», Herbert Schildt «Java: A Beginner’s Guide» или «Java: The Complete Reference». По мере того как будет расти уверенность в себе, пробуйте более сложные книги.
Профессиональный разработчик хорошо разбирается в системах управления зависимостями Gradle и Maven. Просмотрите краткий курс Maven Quick Start: A Fast Introduction to Maven by Example на Udemy и обратитесь к основательной книге Tim O’Brien «Maven: The Complete Reference». Пройдите курс Learning Gradle на LinkedIn, после чего приступайте к официальной документации — Gradle Guides.
Еще одна важная вещь для программиста — работа с базами данных, для которой нужно знать SQL. Начинающим советую ознакомиться с книгой Thomas Nield «Getting Started with SQL».
Таким образом, используйте для обучения:
- литературу для вашего уровня;
- обучающие курсы на платформах EPAM, Udemy, LinkedIn;
- официальную документацию;
- информацию из статей и блогов.
Важно помнить, что для публикации любой книги требуется время, поэтому она может не отражать актуального состояния предметной области. Тем не менее у вас будут книги обязательные к прочтению независимо от того, какой технологический стек вы изучаете. Книги для начинающих — это хорошая отправная точка, а далее вы можете переходить к профессиональной литературе и advanced-курсам.
На чем еще стоит сосредоточиться?
По-настоящему классный специалист пишет хороший код и умеет решать задачи с помощью программирования. Для этого неплохо было бы разбираться в системах контроля версий (Git, SVN), REST, HTTPS, web (basic, SSO, OAuth, JWT), структурах данных, Scrum, Kanban и алгоритмах.
Также стоит поближе познакомиться со смежными специальностями, чтобы понимать, из чего состоит работа коллег. Что почитать, чтобы вникнуть в суть:
- Gene Kim, Kevin Behr, George Spafford. The Phoenix Project;
- Tim Riley, Adam Goucher. Beautiful Testing: Leading Professionals Reveal How They Improve Software;
- Kate McGoey and Kupe Kupersmith. Business Analysis For Dummies;
- Susan Weinschenk. 100 Things Every Designer Needs to Know About People;
- Scott Berkun. Making Things Happen: Mastering Project Management.
Больше книг по каждому техническому направлению собрано в статье «Одна книга для каждого направления».
Обучение без практики будет малоэффективным, ведь большая часть того, что вы выучили без активного использования забудется под натиском новой информации. Вот несколько ресурсов для практики, на которые Александр советует обратить внимание:
- https://codingdojo.org/practices/
- https://www.codewars.com/
- https://leetcode.com/
- https://codegym.cc/tasks
Освоив фундаментальные вещи, двигайтесь дальше по дорожной карте, изучайте web frameworks, CLI tools, databases и пр. Применяйте каждый новый инструмент на практике. Полезный опыт можно получить участвуя в проектах с открытым кодом. Например:
- Help out your favorite open-source projects and become a better developer while doing it
- 20+ Trending and Popular Java Open Source Project
Александр рекомендует уже на этом этапе заводить пет-проект, который бы соответствовал вашему уровню знаний.
Чтобы стать профессионалом новичку придется потратить немало времени и постоянно сохранять мотивацию. Но с правильной дорожной картой и эффективной стратегией обучения все обязательно получится. Помните, что практика важна и постоянно совершенствуйте свои навыки.
Полезные ссылки
- Паттерны проектирования на различных языках программирования
- Java Design Patterns and Architecture
- ТОП-4 причины почему Java — это беспроигрышная ставка
- Java Interview Questions You Need To Know
- Запись вебинара "Принципы ООП на примере Java"
- awesome-java
Еще больше про Java:
- «SQL Antipatterns: Avoiding the Pitfalls of Database Programming» by Bill Karwin
- «Clean Code — A Handbook of Agile Software Craftsmanship» by Robert Cecil Martin
- Top 5 Free Apache Maven eBooks for Java Developers
- SSH Basics for Cloud Security
- The Complete SQL Bootcamp 2022: Go from Zero to Hero
- Database Design Fundamentals for Software Engineers
- SQL for Data Science
- A handy new Google Cloud, AWS, and Azure product map
- Top 5 Courses to Learn SQL and Database in 2022 — Best of Lot
Про Spring Boot:
- Spring Boot For Beginners
- What Is Spring Boot?
- The Complete Guide to Spring 5 and Spring Boot 2
- Spring REST API for Beginners
- Master Microservices with Spring Boot and Spring Cloud
- Learn Spring Boot — Rapid Spring Application Development
- Spring Boot: Complete guide from development to deployment
- Top 5 Courses to Learn Spring Boot in 2022 for Java Developers — Best of Lot
- Spring Framework — Bean Creation — A Practical Approach
- Top 5 Books to Learn Spring framework and Spring MVC for Java Programmers
- Student Management System Project — FullStack Java + Spring Boot + React.js Example Tutorial