Олександр Решетнік вже 7 років готує Java-початківців в команді EPAM Україна. Цінними порадами та деталізованим навчальним roadmap-ом для всіх, хто робить перші кроки у розробці, Олександр ділиться в статті.
Початківець повинен мати впевнені комунікативні навички, добре володіти англійською мовою та мати впевнений фундамент для вивчення мови програмування (в нашому випадку — 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». На LinkedIn пройдіть курс Learning Gradle та згодом переходьте до офіційної документації — Gradle Guides.
Ще одна важлива річ — робота з базами даних, що потребує знання SQL. Початківцям раджу ознайомитись з книгою Thomas Nield «Getting Started with SQL».
Отже, для навчання користуйтесь:
- літературою для свого рівня;
- навчальними курсами з Java від EPAM Campus, Udemy, LinkedIn;
- добірками матеріалів, що регулярно публікуються в Телеграм-каналі EPAM Campus;
- офіційною документацією;
- інформацією зі статей та блогів.
Важливо згадати, що будь-яка книга виходить у публікацію з запізненням, тому доволі швидко перестає відображати актуальне становище в сфері, що досліджується. Втім книги обов’язкові для читання в будь-якому стеку технологій. Книги для початківців — безпечний початок, а, з певним досвідом, переходьте до професіональної літератури та Advanced-курсів.
На чому ще варто зосередитись?
По-справжньому класний спеціаліст пише гарний код та вміє вирішувати завдання за допомогою програмування. Непогано було б розумітись на системах контролю версій (Git, SVN), REST, HTTPS, web (basic, SSO, OAuth, 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 and Adam Goucher;
- «Business Analysis For Dummies» by Kate McGoey and Kupe Kupersmith;
- «100 Things Every Designer Needs to Know About People» by Susan Weinschenk;
- «Making Things Happen: Mastering Project Management» by Scott Berkun.
Більше книг з кожного технічного напрямку зібрано в статті «Одна книга для кожного напрямку».
Навчання без практики є малоефективним, адже більша частина інформації без активного використання забувається під тиском нових даних. Ось на які ресурси для практики Олександр радить звернути увагу:
- 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
Більше про SQL, Maven, бази даних та cloud:
- «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 це популярний фреймворк, створений для спрощення розробки Java-додатків, в особливості — web програм. Він є надбудовою на фреймворці Spring та пропонує цілісний підхід до розробки production-ready додатків з мінімальними змінами.
- Spring Boot For Beginners
- The Complete Guide to Spring 5 and Spring Boot 2
- Spring REST API for Beginners
- Spring Boot: Complete guide from development to deployment
- 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