Як вивчити Java з нуля: рецепти успіху від експертів NIX

18 Жовтня 2019

Існують десятки думок про те, з чого краще розпочати вивчення Java. Одні говорять про курси, інші тягнуться до полиці за безсмертним Еккелем, а треті починають вбивати запити в Google. Ми вирішили заощадити твій час, порадилися з нашими гуру Java-розробки, відвідали десятки найкрутіших світових конференцій, і тепер готові поділитися рекомендаціями, як реально вивчити Java з нуля, щоб одразу взяли на роботу.

Правильний старт

Етап підготовки дуже важливий – від нього залежатиме швидкість та якість твого подальшого навчання. Тому насамперед установи JDK і одну з останніх версій IDE.

Зупинимося трохи на IDE. Рекомендуємо на старті познайомитись з IntelliJ IDEA. Тут ти знайдеш плагін, що вбудовується в IDE, з інтерактивними вправами, які дозволять в легкій і зрозумілій формі вивчати основи Java. Посилити плагін допоможе правильно підібрана література. Після цього можна вважати, що база в тебе є.

Чекаючи на інсталяцію плагіна, займися пошуком книг. Переходити до класики та кидатися за читання Б. Еккеля та Дж. Блоха новачкам ми не рекомендуємо. А ось “Head First Java” буде те, що потрібно. Ця зрозуміла і легка для сприйняття література стане для вас сходинкою, з якою вам буде легше “стрибнути” до вивчення Еккеля.

Відразу розкриємо важливий лайфхак – Java можна вивчати навіть за книгами про інші об’єктно-орієнтовані мови для новачків. Тому заливай у свою електронну бібліотеку Java for C/C++ Developers від Michael C. Daconta, щоб одразу розставити всі крапки над “i” і зрозуміти основні відмінності однієї технології від іншої.

І обов’язково заведи собі окрему нотатку у телефоні (або навіть цілий блокнот зі стильною обкладинкою). Сюди записуй всі питання, що виникають під час читання, яким потрібно буде приділити більше уваги в майбутньому — і відповіді на які можна буде як самостійно пошукати на просторах інтернету, так і обговорити на спеціалізованих форумах, Java-мітапах у твоєму місті або на співбесіді під час вступу на курс навчання, щоб одразу зарекомендувати себе добрим студентом ;).

Комбінуємо теорію та практичне тестування

Можна прочитати десятки книг, написати стільки ж програм або пройти всі навчальні курси Java в Харкові, а завтра вийде нове оновлення, яке ну просто вау якесь круте, і тобі доведеться заново його вчити. А ще через день, можливо, ти сам вигадаєш нову фішку і почнеш її апгрейдити та вдосконалювати. І так по колу.

Будь готовий до того, щоб перетворити Java на стиль життя. Виділяй певну кількість вільного часу в день (крім основних занять, звичайно ж), яку ти присвячуватимеш Java. Читай все, що потраплятиме в поле зору, і обов’язково записуй і бери на замітку все, що здаватиметься незрозумілим.

Після знайомства з “вступною” літературою можеш приступати до вивчення фундаментальних книг. Додатково на озброєння спеціальні добірки матеріалів по Java – тут знайдеться над чим подумати.

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

Як вибрати напрямок в Java

Перш, ніж з головою піти в Java, новачкам потрібно розуміти, що стек цієї мови для web-додатків включає безліч напрямків. Тому на початку важливо вивчити деякі суміжні технології. Для цього розберемося з усім по черзі.

Типова архітектура праці web-розробника

Будь-який сайт та додаток має зовнішню (frontend) та внутрішню (backend) складову. Frontend візуалізує серверну роботу backend’у.

Ви можете відразу почати рухатися у бік web розробки, минаючи Servlets/JSP (технологія використовується як база для сучасних підходів), використовувати стек Spring/Hibernate. Цей стек потрібний у 90% випадків. Він є альтернативою JavaEE та фактично стандартом у сучасному Java світі.

Щоб розшифрувати те, що ти прочитав вище, потрібно вивчити наступні теми:

— СУБД та SQL, які відповідають за реляційне та нереляційне зберігання даних. У вивченні спирайся на книгу «Head First SQL», зазирни на корисні online-сервіси та почитай вступні статті з NoSQL.

— Протокол HTTP та передача даних. Тут базовою літературою вважають книгу “Комп’ютерні мережі” Ендрю Таненбаума. Для глибшого розуміння теми можна прочитати вступні розділи будь-якої книги Дмитра Котерова з PHP. Мови, звичайно, різні, але автор дає доступне пояснення, як взаємодіє клієнт та сервер.

– JSON і XML. Тут можна обмежитись Вікіпедією.

– JavaScript і HTML. Хорошим путівником стане стаття “Лайфхак: у якій послідовності вивчати JavaScript”.

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

Pet project

Теоретичне вивчення Java може бути корисним лише в період знайомства з мовою. Просунутися далі можна лише за умови написання власного проекту. Писати його треба так само поступово, як і вивчати саму мову. Краще, якщо це відбуватиметься паралельно.

Тому в період першого знайомства з Java подумай над ідеєю проекту. Щоразу після проходження нової теми намагайся закріплювати її практикою у своєму проекті. Як стартовий web-сервіс може бути:

– ToDo List;

-Каталог прослуханих аудіокниг;

– Простий двигун форуму.

Будь готовий до того, що тобі доведеться багато разів переписувати (а іноді й починати з нуля) свій код. Це стане показником того, що ти прогресуєш та вдосконалюєшся у своїх знаннях.

При написанні першого проекту заборони користуватися додатковими бібліотеками і фреймворками. Для цього тобі доведеться познайомитися з рефлексією та базовими патернами. Тут рекомендуємо звернутися за допомогою до GoF — книги шаблонів.

Повір, на виході ти побачиш огидний код, який захочеться відразу видалити :). Але наше завдання – не отримати ідеальний код, а виявити проблеми та вирішити їх фреймворком.

Помилки, які побачать світ при написанні проекту, покажуть твої слабкі сторони. Запам’ятай їх, випиши та приступай до вивчення. Ось побачиш, після цього вивчення Java стане максимально простим.

Що ще треба знати

Під час навчання ти обов’язково зіткнешся з Java Enterprise Edition та фреймворком Spring. Java EE є специфікацією мови, за допомогою якої розробники можуть описати серверну частину проекту. А ось Spring – це один із фреймворків.

Java EE спочатку відповідала за стандартизацію, але згодом стало ясно, що вона надто важка. Особливо в порівнянні з більш спрощеною альтернативою Spring, який сьогодні розрісся настільки, що тепер має фреймворк над фреймворком – Spring Boot.

Щоб глибше зрозуміти тонкощі та відмінності обох платформ, вивчи обидві. “Head First Servlets and JSP” та “Програмування web-додатків на мові Java” Буди Курняван використовуй для знайомства з Java EE. А ось зі Spring все трохи складніше, тому що він складається з безлічі модулів. Ми рекомендуємо почати з книги «Spring у дії» Крейга Уоллса та особливу увагу приділити Core, MVC та Web-MVC та Security.

Що далі?

Зазвичай після прочитання кількох книг і невеликої практики виникає потреба заглибитися в матеріал. І на цьому етапі можна сміливо подавати заявку на безкоштовний курс навчання Java від NIX. Подальше самостійне вивчення величезного розмаїття тем і напрямів Java може привести тебе в замішання.

У NIX тебе спрямовуватимуть досвідчені ментори, допомагатимуть у освоєнні теорії, підказувати сприятливі способи реалізації знань у реальних проектах, а після вдалого проходження навчання можуть запросити стати частиною величезної команди зі своєю історією та традиціями.

А коли ти почуєш від хейтерів, що Java застарів, і потрібно вибирати щось більш модне, нагадай їм про Google, Netflix, Airbnb та Uber, які використовують Java у своїх продуктах. Це найкращий доказ того, що Java живіший за всіх живих і що це все ще найпопулярніша мова у світі, що продовжує активно розвиватися.