Roadmap Java-розробника-початківця
Як вирости з джуніора в сеньйори, що потрібно знати й де шукати необхідну інформацію, розповів senior software engineering менеджер Олександр Решетник.
— Розробник-початківець повинен володіти впевненими комунікативними навичками, добре знати англійську та мати хороші задатки для вивчення мов програмування (у нашому випадку — Java). До речі, на перших порах брак технічних знань допоможуть компенсувати саме комунікативні навички,— вважає Олександр, — Пам’ятайте, що рівень володіння англійською зростає повільніше, ніж поліпшуються технічні навички, звідси головна порада: учіть англійську.
Базові рекомендації
- Просувайтеся актуальною дорожньою картою для освоєння Java.
- Вивчайте базові поняття за перевіреними книгами.
- Постійно практикуйтеся.
— Скласти універсальну дорожню карту неможливо, — переконаний Олександр. — Але погляньте на цей варіант. Звісно, з часом і досвідом ви дещо видозміните та доповните карту, адже знайти свій шлях — це теж один із головних челенджів для розробника-початківця.
Навчання
— Головний секрет успішної роботи 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».
Таким чином, для навчання необхідно використовувати:
- літературу для вашого рівня;
- навчальні курси на платформах 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.
— Навчання без практики буде малоефективним, — вважає Олександр. — Адже більша частина того, що ви вивчили без активного використання, забудеться під тиском нової інформації. Ось кілька ресурсів для практики, на які варто звернути увагу:
Освоївши фундаментальні речі, рухайтеся далі дорожньою картою, вивчайте 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.
— Я рекомендую вже на цьому етапі заводити pet-проєкт, який би відповідав вашому рівню знань. Щоб стати професіоналом, новачкові доведеться витратити чимало часу й постійно зберігати мотивацію, — резюмує Олександр. — Але з правильною дорожньою картою та ефективною стратегією навчання все обов’язково вийде. Пам’ятайте, що практика важлива, постійно вдосконалюйте свої навички.
Корисні посилання
- Design patterns in different programming languages;
- Java Design Patterns and Architecture;
- Java Interview Questions You Need To Know;
- 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 2023 — Best of Lot.
Дякуємо за надану тему порталу training.epam.com.