Что читать и смотреть начинающему инженеру Java?

Гуру Java c пятилетним опытом Алексей Конохов специально для Anywhere Club делится полезными источниками информации для тех, кто хочет стать Java-разработчиком. 

Все представленные материалы могут быть как на русском языке, так и на английском. Предполагается, что восприятие информации на английском не должно вызвать у вас проблем. Также при наличии варианта читать оригинал на английском или его перевод на русский, предпочтение стоит отдать первому варианту, — сразу предупреждает собеседник.

Алексей Конохов

Какие книги можно почитать?

Java: A Beginner’s Guide, или Java: The Complete Reference, или Thinking in Java, или Core Java, Volume 1: Fundamentals — это книги, с которых можно начать изучение языка, на случай если у вас ну совсем базовые представления о нем. Берите любую из них и начинайте читать: если нравится и заходит — продолжайте, если не понимаете или видите, что написано слишком сложно, берите другую.

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

Также хочу поделиться книгами для уже для чуть более продвинутых специалистов.

Java 8 in Action — здесь можно больше узнать про фичи, появившиеся в Java, начиная с 8-й версии. В целом, куда быстрее будет прочитать пару статей про фичи Java 8, но если вы подходите к этой теме очень основательно, то с этой книгой вы не заснете.

Effective Java — опять же классика из мира Java. Хорошо поможет вам расширить кругозор в Java и посмотреть на многие вещи немного с другой перспективы.

Head First Design Patterns — хорошо подойдет для того, чтобы улучшить знания паттернов программирования и ООП в целом, при этом все примеры в книге на Java.

— И еще тысяча книг по Java, которые можно загуглить и часть из которых я даже не читал, поэтому посоветовать не могу, — честно признается Алексей.

Что можно посмотреть по Java?

— Java Core и Junior Java Developer — в свое время эти видеокурсы ответили мне на очень большое количество вопросов по Java, а также сильно помогли углубить знания языка.

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

Более нишевые вещи — это официальные каналы больших конференций, где можно найти много полезного материала. Весь существующий там контент будет скорее рассчитан на более подкованную аудиторию, но раз уж заговорил про это, то вот ссылки:

Курсы/школы/сайты по Java?

— MJC School — на сайте школы обучающей информации нету совсем, поэтому особый интерес представляет именно GitHub репозиторий школы. Насколько я знаю, эта инициатива еще не до конца готова и “просто начать учиться” по имеющимся материалам не так просто. Но то, что уже есть, можно использовать для обучения, а заодно видеть, какой должна быть структура и последовательность того, что нужно учить.

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

Сайты, на которых можно больше узнать про Java, — не счесть. Я просто выделю 3, статьи на которых я время от времени почитываю: хабр, medium и dzone.

Еще есть сайты, где можно попрактиковать ваши знания языка на простых (и не очень) задачках, причем сделать это можно на очень многих языках - hackerrank, codewars и codingame.

Java комьюнити: куда присоединяться?

— Множество комьюнити представлено на сайте wearecommunity.io, среди них есть и MJC, к которому можно присоединиться и активнее участвовать и развиваться в мире Java разработки.

Есть еще множество локальных и глобальных комьюнити, возможно, даже в вашем городе ребята собираются и обсуждают Java, все это можно поискать и присоединиться. Я даже завидую вам, если вы еще не в них, — шутит Алексей.

Мотивационные советы от Алексея:

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

Строя свой план обучения, начните, конечно же, с самого языка и простейших алгоритмических задач, а потом переходите к более сложным концепциям, таким как ООП, паттерны и все остальное. После изучения самого языка и его стандартной библиотеки обязательно потратьте время на изучение смежных вещей, таких как система контроля версий, реляционные базы данных, основы web-разработки, алгоритмы и структуры данных.

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

  • Один из самых эффективных и быстрых вариантов изучения языка — это курсы, в которых у вас будет ментор или человек, который будет смотреть ваш код и говорить вам, что вы сделали правильно, а что требует дополнительной работы. Даже если вы самостоятельно учите язык, то постарайтесь найти хоть какой-нибудь канал коммуникации с более опытными коллегами, которых можно будет спросить о непонятных вещах.
  • Какой материал подойдет именно вам и какой вариант обучения для вас будет самым эффективным, — сказать сложно, при этом то, что работает для одного человека, может совсем не сработать для вас. Заручитесь правильной мотивацией для себя, выделите время для изучения и обязательно идите к своей цели: у вас все получится!


От имени Anywhere Club мы благодарим Алексея за гайд и счастливы сообщить, что Алексей Конохов стал первым гостем спецпроекта АйТиБорода Shorts: встречайте!

Еще больше подробностей о Java на нашем YouTube в программе «Аффтарпати».