Про Херсон від херсонця 🔥

Мануал для джуна. Як стати хорошим Java-розробником із нуля: максимально детальна інструкція для початківців

Олександр Решетнік  відповідає за напрям Java в компанії EPAM у Вінниці. Уже 7 років він допомагає початківцям стати розробниками.

«Знаю, це не просто і не швидко, ситуація в ІТ постійно змінюється. Тому тримайте актуальні поради щодо того, як почати свій шлях у розробці програмного забезпечення мовою Java та як рухатись обраним шляхом. У свій час такі поради мені дуже допомогли», — каже Олександр.

Ось його інструкція про те, як стати класним джавістом для читачів dev.ua. 

Залишити коментар
Мануал для джуна. Як стати хорошим Java-розробником із нуля: максимально детальна інструкція для початківців

Олександр Решетнік  відповідає за напрям Java в компанії EPAM у Вінниці. Уже 7 років він допомагає початківцям стати розробниками.

«Знаю, це не просто і не швидко, ситуація в ІТ постійно змінюється. Тому тримайте актуальні поради щодо того, як почати свій шлях у розробці програмного забезпечення мовою Java та як рухатись обраним шляхом. У свій час такі поради мені дуже допомогли», — каже Олександр.

Ось його інструкція про те, як стати класним джавістом для читачів dev.ua. 

Зміст

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

Сучасна індустрія програмного забезпечення є дуже великою і різноманітною. Важко осягнути всі актуальні напрямки, інструменти та бібліотеки навіть в рамках однієї мови програмування. Подивіться, наприклад, на різноманітні корисні бібліотеки для Java розробників. Маємо близько 1000 позицій, і це ще далеко не все. Java займає стабільну нішу в сучасній розробці та не збирається поступатись позиціями. Ба більше, є цікаві прогнози щодо її майбутнього. Рекомендую статтю Mike Melason «Don’t call it a comeback: Why Java is still champ». 

Що ж до початку вивчення Java, можу звести відповідь до трьох рекомендацій:

  1. Знайдіть актуальну дорожню карту для вивчення Java і рухайтесь по ній.
  2. Почніть з вивчення фундаментальних речей за допомогою перевірених книжок.
  3. Приділяйте багато уваги практичним навичкам і отриманню реального досвіду.

І бонусна порада, яка насправді універсальна, — поступово, невпинно і наполегливо покращуйте свій рівень англійської мови. Це перша мова в ІТ, яку треба опанувати початківцям.

Неможливо вивчити іноземну мову швидко, над цим потрібно регулярно працювати. В багатьох випадках початківцю пробачать недостатній рівень технічних навичок, якщо це буде компенсовано гарними навичками з комунікації.

https://github.com/s4kibs4mi/java-developer-roadmap

Про очікування роботодавців

Сьогодні роботодавці очікують багато від тих, хто подається на позицію Junior Developer: 

  • чудове володіння мовою програмування та деякими базовими інструментами;
  • гарні софт-скіли та навички комунікації; 
  • хороший рівень англійської мови. 

Останнє, до речі, можна віднести до категорії «найголовнішого».

Побутує думка, що будь-які навички потрібні для роботи на проєкті, можна «прокачати» досить швидко, але рівень англійської мови росте досить повільно. 

На щастя для сучасних початківців, існує чудова дорожня карта (і не одна), яка показує, як пройти від базового до рівня професіонального розробника. Для ще більшого щастя, вже створено величезну кількість навчальних ресурсів, які допомагають опанувати будь-яку технологію. Навчання стало суттєвим  бізнесом з жорсткою конкуренцією, тож є з чого вибирати та серед платних ресурсів, і серед безплатних. Навчання вимагає багато часу та концентрації. Щоб робити це ефективніше, раджу книжку Барбари Оклі «Навчитися вчитися. Як запустити свій мозок на повну».

З чого почати

Розгляньмо мапу наведену вище і визначимо, з чого ж почати. Вона не є повною. Мабуть, скласти універсальну повну карту неможливо. В майбутньому ваш особистий розвиток і характер проєктів, на яких ви будете працювати, буде її доповнювати. Шлях на карті починається з базових навичок: Java, Maven/Gradle, SQL та загальних навичок, які потрібні кожному (Git, HTTP, Data structures тощо). Далі він веде нас до баз даних, фреймворків та ORM. Ще далі на шляху — тестування, різноманітні бібліотеки, мікросервіси та багато іншого.

Пізніше, коли буде опановано базові навички в Java, можна паралельно займатися SQL та розібратися з основами Maven або Gradle. Для тих, кому потрібно починати зовсім «з нуля», я б порадив Kathy Sierra, Bert Bates «Head First. Java».

Згодом можна перейти до серйознішої літератури — 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:

Codding 

Open source

About Spring Boot

Мануал для джуна. Перший серед рівних для початківців: що треба знати новачку в .Net та як отримати Job offer
Мануал для джуна. Перший серед рівних для початківців: що треба знати новачку в .Net та як отримати Job offer
По темi
Мануал для джуна. Перший серед рівних для початківців: що треба знати новачку в .Net та як отримати Job offer

Більше мануалів для початківців тут.  

Мануал для джуна. Що треба знати тестувальнику-початківцю йдучи на співбесiду: поради тімліда та приклади завдань
Мануал для джуна. Що треба знати тестувальнику-початківцю, йдучи на співбесiду: поради тімліда та приклади завдань
По темi
Мануал для джуна. Що треба знати тестувальнику-початківцю, йдучи на співбесiду: поради тімліда та приклади завдань
Мануал для джуна. Що треба знати щоб стати AQA: теоретичні питання та приклади тестових завдань від AQA Team Lead Capgemini
Мануал для джуна. Що треба знати, щоб стати AQA: теоретичні питання та приклади тестових завдань від AQA Team Lead Capgemini
По темi
Мануал для джуна. Що треба знати, щоб стати AQA: теоретичні питання та приклади тестових завдань від AQA Team Lead Capgemini
Читайте головні IT-новини країни в нашому Telegram
Читайте головні IT-новини країни в нашому Telegram
По темi
Читайте головні IT-новини країни в нашому Telegram
Електробайки по-українськи між Києвом та Лос-Анджелесом в «СКШ»

Дивіться, чим живе Delfast під час війни в Україні

Ми запускаємо розсилку про українське IT-ком’юніті. Залиште email, аби розуміти більше. Прем’єра — скоро!
Дякую! На вказану адресу надіслано листа для підтвердження підписки.
Читайте також
12 онлайн-курсів із Java для новачків і профі у 2022 році
12 онлайн-курсів із Java для новачків і профі у 2022 році
12 онлайн-курсів із Java для новачків і профі у 2022 році
Java, як і раніше, входить до списку найпопулярніших мов програмування. Разом із Digital Defund склали список курсів, які підійдуть як новачкам, так і людям із досвідом програмування, і допоможуть опанувати цю потрібну мову.
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Не завжди є доступ до улюбленої IDE, або час на її запуск. Але коли потрібно швидко перевірити якийсь простий функціонал або втілити нову ідею, стане у пригоді онлайн-компілятор.
Як я навчалась у EPAM University. Анонімна розповідь 18-річної джавістки
Як я навчалась у EPAM University. Анонімна розповідь 18-річної джавістки
Як я навчалась у EPAM University. Анонімна розповідь 18-річної джавістки
Увійти в IT — завдання не з простих, особливо коли ти гуманітарій, тобі 18, і ти вчишся в університеті. Проте бажання стати кращою версією себе, бути в тренді та забезпечити собі гідний рівень життя перемагає будь-які перешкоди. І наша героїня — яскравий цьому приклад. За бажанням співрозмовниці ми не називатимемо її імені. dev.ua публікує розповідь 18-річної студентки EPAM University про те, як це — увійти в IT власними силами, навіть коли ти з маленького провінційного містечка.   Наша героїня розповіла dev.ua, як потрапити в EPAM University, чи важко там вчитися та які перспективи чекають на випускників.
Одвічне питання: чим Java відрізняється від JavaScript. Детальний гайд
Одвічне питання: чим Java відрізняється від JavaScript. Детальний гайд
Одвічне питання: чим Java відрізняється від JavaScript. Детальний гайд
Для когось відповідь на питання про різницю Java і JavaScript є очевидною — тут починаються жарти про подібність між килимом й автомобілем (Java схожа на JavaScript так само, як «car» на «carpet»). Попри це, деякі люди ще можуть мати помилкове уявлення, вважаючи, що це дві назви тої самої мови, або що технології тісно пов’язані. Спробуємо трохи прояснити ситуацію.

Хочете повідомити важливу новину? Пишіть у Telegram-бот

Головні події та корисні посилання в нашому Telegram-каналі

Обговорення
Коментарів поки немає.