Как учить Java “по-взрослому”?

В период, когда я ещё только начинал изучать программирование я столкнулся с рядом проблем:

java-oracle

 

  • Незнание с чего начать.
  • Не качественные учебные материалы.
  • Отсутстствие качественной программы обучения.

Но главная проблема состояла в том, что хоть как-то изучив теорию я не мог создать более-менее серьёзное приложение. Я мог легко найти примеры простейших приложений уровня – “как создать Hello world на Spring” и т.д. Далее шли приложения уровня Spring Pet Clinic.

И если первые были слишком простыми, то вторые вгоняли меня в депрессию и самокопание в духе “ты никчёмный кусок материи”.

Кое-как создавая свои приложения, усложняя их каждый раз, я наконец-то дошёл до приложений, которые можно использовать для решения реальных бизнес-задач. Этот путь был крайне трудным и изматывающим и его можно было сократить примерно на 40-50 процентов.

Конечно, в этом деле мне крайне помог бы ментор по Java, но став разработчиком, понимаешь, что времени на то, чтобы тянуть ещё кого-то может просто не хватать (хотя, при желании это возможно).

Результатом моих размышлений на тему того, чем я могу помочь таким же ребятам и девчатам, которые, как и когда-то, хотят стать Java-разработчиками, стала идея создания некоего “маршрутного листа” для будущего разработчика.

Да, на данный момент существует множество материала, но часто их авторы просто не замечают тех огромных пробелов, которые присутствуют в их материле. И есть они там не потому, что они плохие авторы, а потому, что для них эти вещи настолько очевидны, что говорить о них считается бессмысленным – а зря…

На данный момент сам проект находится в разработке и завершить его я смогу не ранее, чем через 5-6 месяцев – сил и времени для этого требуется крайне много, именно пожтому я решил дать несколько советов, которые крайне облегчат жизнь людям, которые решили встать на этот путь.

СОВЕТЫ:

  1. Прочитайте только 1 (ОДНУ!!!) книгу по основам языка Java. А дальше изучайте Java Language Specification
    Профессионалы изучают документацию, а не книги. Да, конечно иногда выходят книги, которые являются невероятно полезными и прочитать которые просто обязанность уважающего себя разработчика, но такие книги появляются крайне редко.
    Поэтому, изучив одну из книг (Java 8. Полное руководство (Шилтд) , Философия Java (Эккель) или что-то подобное) приучайте себя изучать документацию. Сайты https://docs.oracle.com/javase/8/https://www.jcp.org/ должны стать для вас хранилищем знаний.
  2. Изучите, как работает JVM (Java Virtual Machine). Естественно, что изучать принцип работы желательно по спецификлации Oracle (Java Virtual Machine Specification).
  3. После основ языка приступайте к изучению основ баз данных и SQL.
    Здесь Вам крайне помогут всеразличные руководства (tutorials) и вот эта документация.
    Книга MySQL 5.0 (Виктор Гольцман) будет тоже полезной.

Далее можно следовать советам, которые приведены в ЭТОЙ СТАТЬЕ.

Все фреймворки также необходимо изучать по документации. Для каждого из них (я имею в виду действительно хорошие и широко применяемые) написана качественная документация.

Также не советую идти на различные курсы, в подавляющем большинстве случаев – это попытка срубить денег, а не дать знания.

А самое главное – изучайт код. Читайте много кода. Если Вас “не прёт” читать код, у меня для Вас  плохие новости – чтение кода – 70-80 процентов нашей работы. Без этого никуда.

Крайний совет – ходите на конференции, которые организовываются различными компаниями. Если есть возможность попасть на курсы в одну из компаний – “прогрызайте” себе путь на эти курсы. Это увеличит Ваши шансы дойти до цели в разы.

Мой маленький проект, который (как я надеюсь) поможет будущим разработчиком на стадии создания, поэтому, на данный момент я могу помочь Вам только моими статьями и туториалами.

Читайте, учите и будьте целеустремлёнными. Удачи Вам.

  • Володимир Запальський

    Для начинающих есть курс:
    http://javarush.ru/user/reference/74f5a9e1-e6f0-4da4-8c7e-f4c67990d7a1
    Там все понятно описывается от принципов программирования до изучения самого языка. А самое ГЛАВНОЕ – множество заданий для закрепления материала.

  • Andrey Bel

    Большое спасибо Евгений за Ваш труд и желание помочь новичкам!