Одне з найпопулярніших питань серед тих, хто починає вчити Java – “Скільки часу потрібно на те, щоб навчитися програмувати?” Дати однозначну відповідь на це питання складно. Час, потрібний на навчання, залежить від багатьох факторів: попереднього досвіду роботи та освіти, інтенсивності навчання та інших чинників. Але ми все ж таки вирішили наблизитися до визначення оптимального періоду навчання. Для цього ми провели опитування серед наших студентів, які досягли 30+ рівня на JavaRush, та спитали, як вони вивчали програмування на Java та скільки часу на це пішло.

1. Портрет студента: стартовий рівень знань, сфера діяльності

У Java-програмування можна прийти з будь-якої сфери: про це свідчать результати нашого опитування. Спершу ми вирішили дізнатися, чим наші випускники займалися до вивчення Java. Дослідження: скільки часу потрібно для вивчення Java - 2Майже 40% користувачів, які починали навчатися на JavaRush, вивчали програмування у виші. Вдвічі менше – знали принаймні одну мову програмування (не Java), ще менше – знали основи Java. Звісно, це міцна база для старту, але не обов’язкова. Приблизно третина студентів нашого курсу починали вчити Java з нуля. Дослідження: скільки часу потрібно для вивчення Java - 3Серед студентів із технічним бекграундом багато сисадмінів, розробників 1С, веброзробників, інженерів. Серед “світчерів” більше різноманіття – від викладачів до спеціалістів із продажів, маркетингу, економістів та спортсменів.

2. Час на навчання та пошук роботи

Тепер давайте розберемося, за скільки можна вивчити Java і як довго доведеться шукати роботу Java-джуном.Дослідження: скільки часу потрібно для вивчення Java - 4Досвід наших випускників свідчить: мінімум — 3 місяці, максимум — кілька років потрібно на вивчення програмуванню на Java. Цікавий факт: навіть ті, хто витратив на навчання від 2 років зазначили, що впоралися би вдвічі швидше, якби не “розтягували” навчання. Дослідження: скільки часу потрібно для вивчення Java - 5Зазвичай на пошук роботи йде від місяця до трьох. Мінімум — тиждень. Максимум — рік.

3. Планування навчання

У навчанні завжди присутня проста залежність: чим інтенсивніші заняття й менша кількість перерв та пропусків, тим швидше можна засвоїти нові знання. Це стосується і програмування, де практика має більше значення, ніж вивчення теорії. Ми спитали у випускників JavaRush, скільки часу вони приділяли навчанню, і дізналися, що в середньому на заняття щодня йшло від години до трьох. Дослідження: скільки часу потрібно для вивчення Java - 6Майже третина випускників навчалася на курсі без перерв, інші робили одну або декілька пауз на незначний проміжок часу. Дослідження: скільки часу потрібно для вивчення Java - 7Очевидно: чим більше часу ви приділяєте навчанню і чим менше перерв робите, тим більше шансів опанувати Java-програмування та знайти роботу протягом 6-12 місяців. А якщо у вас вже є програмістська база, час та натхнення – то й протягом 3-6 місяців. Дослідження: скільки часу потрібно для вивчення Java - 8Один з учасників опитування зізнався: «З самого початку в мене був якийсь план, і я його не дотримувався». Чи потрібно планувати своє навчання? Більшість вважає, що так. Зазвичай до плану входить список тем та інструментів, які необхідно опанувати, приблизні терміни навчання та список ресурсів (онлайн-курсів, книг, інших джерел), які потрібні для досягнення поставлених цілей. 73% респондентів відповіли, що в них був приблизний план навчання. Із тих, хто планував своє навчання, дві третини випускників навчалися на декількох ресурсах, майже третина — тільки на JavaRush.

4. Які джерела допоможуть вивчити Java

Що вчити, як вчити, а головне — де вчити? В ідеалі потрібно комбінувати кілька джерел. Нижче – список джерел, відсортований за популярністю серед наших випускників. Дослідження: скільки часу потрібно для вивчення Java - 9Вчити програмування лише по книжкам – безнадійно. Але зовсім без них теж не вийде. Вони допоможуть скласти загальну картину та посилити практику програмування. Серед найкращих книг для новачків студенти та випускники JavaRush назвали:
  • Head First Java
  • Effective Java
  • Філософія Java
  • Структури даних та алгоритми в Java
  • Чистий код
  • Java 8. Посібник для початківців
  • Патерни проєктування
  • Java. Бібліотека професіонала

Міні-висновок щодо планування навчання

Щоб навчання було ефективним, випускники та досвідчені програмісти рекомендують:
  • проходити JavaRush
  • дивитися відеокурси
  • читати туторіали (Tutorialspoint, Baeldung, Oracle)
  • проходити сертифікацию Oracle (Associate, Professional — OCA, OCP)
  • практикуватися на Github
  • читати Stackoverflow, DOU та інші ресурси
  • проходити стажування JavaRush, місцевих IT-компаній

5. Рекомендації тим, хто шукає роботу в сфері Java-програмування

Мабуть, найбільш популярна фраза серед порад від тих, хто вже закінчив навчання та знайшов роботу — «не здаватися». Чи легко навчатися? Далеко не завжди. Але це точно вартує докладених зусиль :)

Топ рекомендацій від досвідчених програмістів

Дослідження: скільки часу потрібно для вивчення Java - 11Є декілька навичок, які точно знадобляться вам тоді, коли ви влаштуєтеся на роботу. Тож коли ви будете наближатися до цього етапу, рекомендують:
  • звертати увагу на попередження і поради InteliJ IDEA: гуглити помилки, проблеми та задачі;
  • приділити увагу базам даних, алгоритмам і структурам даних;
  • вивчити патерни проєктування;
  • спробувати написати з нуля складну програму: наприклад, поштовий клієнт, чат-бот або гру.
Трохи згодом — розібратися з основними інструментами (Git, Maven), а також основаи Unit Testing, Spring, Spring Boot, Hibernate. Також корисно вже на етапі написання коду вчитися пояснювати, що, чому й навіщо ви робите. Це надзвичайно корисна навичка і для співбесід, і для роботи: компанії часто цінують програмістів, які можуть простими словами розповісти про складний код. Що ж до пошуку роботи, його варто починати заздалегідь, ще в процесі навчання. Вивчайте вакансії й дивіться, які вимоги найчастіше трапляються — це допоможе вам зрозуміти, на яких технологіях фокусуватися. Варто приєднатися до професійних спільнот (форуми, Telegram-канали, Discord-групи). Там можна знайти відповіді на актуальні для вас запитання і навіть дізнатися про приховані вакансії. Крім того, участь в обговореннях допомагає краще розуміти галузеві тренди.

6. Мотиваційні поради

«Головне – тримати темп, не робити довгих перерв та ніколи не стояти на місці. Кожен день потрібно робити хоча б маленький крок до мети». «Якщо здається, що рішення занадто просте, скоріше за все, це правильне рішення. Не варто ускладнювати». «Ведіть щоденник, розпочніть власний проєкт, не робіть великих перерв, вчіть англійську, приготуйтеся до відчуття, що ви – найдурніша людина планети. Для мене це було довго, боляче, принизливо. І думаю, саме тому небагато людей доходять до кінця та згодом починають отримувати пристойну зарплату». «Якщо це дівчина: не виходити заміж та не народжувати дітей: дуже заважає навчанню й роботі :))» «Не боятися показувати код та адекватно сприймати критику.» «Навіть якщо ви відчуваєте, що програмування — це не ваше, все одно спробуйте дійти власними силами до 30 рівня на JavaRush: це навчить вас думати».

7. Підсумок. Як вчитися Java-програмуванню, щоб досягти результату

Завзятість і мотивація — те, без чого точно не обійтися. Якщо навчатися згідно з планом, тримати баланс між теорією та практикою, займатися щоденно мінімум 1-3 години, реально засвоїти Java-програмування до рівня, який дозволить знайти роботу, за 6-12 місяців. Також важливо залишатися частиною спільноти та стежити за вимогами компаній, в яких вам хотілося би працювати. Редакція JavaRush висловлює величезну подяку всім, хто взяв участь в опитуванні.