Как я начал учить Java практически с полного нуля
Добрый день, всем Пикабушникам!
Меня зовут Антон и я профессионально занимаюсь веб-разработкой на EU фрилансе. Занимаюсь я им уже очень давно (с 2014 официально) и такой деятельности есть минус (наверное как и у любой другой), когда долго занимаешься решением очень похожих между собой задач, начинается выгорание и поиск себя в чём-то новом.
По началу, я искал себя в стримах, учился настраивать OBS, разбирался в настройках карт захвата и камера, настраивал собственные стриминговые сервера, под конец собрал собственный компактный стриминговый рюкзак на базе Jetson Nano
Но в итоге понял, что это крутой формат как хобби, но заниматься этим серьезно, я не успеваю, я либо посвящаю себя работе, либо стримам, совмещать не получилось.
Тогда решил поискать, что-то новое в своей работе, то что поможет мне отвлекаться и восстанавливаться.
Мой основной стак, который сейчас генерирует 90% моего дохода, это Laravel (PHP) + MySQL + JS (React), на мой взгляд, не самый сложный в освоении (когда-то давно в самом начале был и чистый PHP и мертвая уже несколько лет Kohana).
А тут поступило предложение попробовать себя в немецкой компании, которая работает с Enterprise и Big Data в роли frontend разработчика, но обязательным условием стало наличие базовых знаний по Java, чтобы по необходимости можно было свапать разработчика между проектами.
И я решил, а почему бы и нет, я уже давно смотрел на плюсы (которые по своим ощущениям, уже не вывезу морально), а Java очень хорошая альтернатива плюсам, и ступенька выше, чтобы попробовать себя в тех вещах, которые мне сейчас интересны, ну и самое главное, что-то новое, что даст мне возможность переключаться между работой и обучением.
Сразу отмечу, что я не оптимист и не верю, в то, что Java можно выучить за месяц, но и учу я не на базовый результат, а с перспективой роста и выхода в Senior Fullstack, поэтому поставил себе срок ~18 месяцев.
А, чтобы, было больше интереса и мотивации для себя самого, на этот срок, я ставлю себе целью получить два сертификата:
Oracle Certified Associate (OCA) Java SE 8 Programmer
Oracle Certified Professional (OCP) Java SE 8/11/17 Programmer
План обучения
Шаг 1
Вообще по-хорошему, надо было как все нормальные люди, открыть roadmap и начать с него, но я подумал, об этом во-вторую очередь и пошёл на Udemy и купил bestseller-курс по Java: Full Stack Java developer - Java + JSP + Restful WS + Spring.
У меня уже есть опыт обучения на данной платформе и до этого курса он был положительным, но сейчас ощущения очень смешанные, пока прохожу основы и всё очень сильно похоже на обычный пересказ любого учебника по Java с очень скудными примерами, возможно дальше что-то поменяется. Так, что рекомендовать курс не буду, но пройду его до конца.
Шаг 2
А вот теперь можно и roadmap открыть https://roadmap.sh/java
Когда учу что-то новое, всегда посматриваю на этом сайте (хотя застал еще времена, когда это был просто гитхаб пакет с картой по web-dev).
Теперь, когда есть готовый план, что и как учить, всё, что выучил на курсах из первого пункта отмечаю как пройденное (отметка предварительная, потому что многие моменты буду проходить еще несколько раз для закрепления)
Шаг 3
Дальше, выделил для себя несколько youtube курсов, которые буду проходить, после основного курса с Udemy для закрепления материала:
Разработка телеграм-бота нравится практический подход к обучению, я так быстрее усваиваю информацию и новые знания.
Шаг 4
По книгам точно будет расширение списка, но для начала выделю книгу которую я уже начал читать, и которую давно хотел прочитать:
Адитья Бхаргава "Грокаем алгоритмы"
Шаг 5
Из практических заданий понравился https://javarush.com/ Чтобы не распыляться, куплю подписку уже после прохождения курса на Udemy
А так же комбинация https://neetcode.io/ (roadmap задач) и https://leetcode.com/ уже проходил вариант с JS, теперь попробую c Java
Шаг 6
Шестой шаг, должен был быть посвящен подготовке к получению сертификатов и материалам, которые для этого необходимы, но сейчас это не приоритетная задача, я уже отобрал часть необходимых материалов, но необходимо более детальное погружение в вопрос.
Итог
Составил план, чтобы подойти к вопросу обучения максимально структурированно, хотелось бы его дополнять и возможно уже по мере собственного обучения, давать минимальные отзывы, стоит или не стоит проходить курс/смотреть видео на youtube и т.д.
Так же с удовольствием послушаю советы от Java разработчиков, что и как учить, на что ставить приоритет и т.д.
От себя из того, что уже посмотрел и что понравилось могу порекомендовать канал Влада Мишустина он не только о Java, но из тех видео, что я посмотрел все были максимально полезные.
Я в телеграм отвечаю на вопросы, общаюсь, ничего не продаю