Добрый день, уважаемые читатели.
Данный обзор посвящен Java. Я намеренно не включал в дайджест общие вопросы: алгоритмы и структуры данных, ООП, шаблоны проектирования, указания на конкретные фреймворки, тестирование, continuous integration. Но, конечно, их знание необходимо.
Для начинающих
Java™: The Complete Reference. Вариант для «самых маленьких». Русскоязычную версию легко найти на рынке.
Core Java by Cay S. Horstmann and Gary Cornell. На мой взгляд, наиболее подходящая книга для начинающего.
Thinking in Java, Fourth Edition, Bruce Eckel. Очень хороша книга как для начинающих, так и для более опытных людей. Лучше читать в оригинале. Точно не помню чем, но русское издание мне показалось сильно урезанным.
Довольно простая статья про generics. Дженерики — довольно своеобразная тема: даже опытные люди в ней путаются. Глубокое понимание этой темы не обязательно, достаточно поверхностных знаний. Но попытки разобраться будут очень полезны, особенно для начинающего.
Средний уровень
Необходимо смотреть на разные стили программирования. На мой взгляд, довольно хороший пример — Guava.
Слушаем подкасты. Например, Разбор полетовили Java Posse.
Читаем профильные ресурсы. Например, Javalobby.
Изучаем новые вещи в jdk7и интересуемся новинками, которые будут в jdk8.
Сергей Куксенко и Алексей Шипилёв, Oracle — Через тернии к лямбдам часть 1 и часть 2. Просто и понятно о программировании в контексте Java8.
Dependency Injection, Dhanji R. Prasanna. Неплохая книга про DI. Также не надо забывать и про другие шаблоны проектирования.
The Java Specialists’ Newsletter. В общем, это больше для «продвинутого уровня», опубликовано во избежание таких вот инцидентов :)
Продвинутый уровень
mail.openjdk.java.net Mailing Lists. Список листов рассылки на любой вкус. lambda-dev был особо актуален, пока обсуждалась jdk8. У большинства популярных библиотек/фреймворков тоже есть свои листы рассылки.
Java Concurrency in Practice. Очень полезная книга. В современном мире понимание concurrency в контексте экосистемы, в который вы работаете, — это обязательное условия для того чтобы считаться специалистом выше среднего уровня.
Программировать на Java можно по-разному, и помимо мейнстрима есть много разных стилей. Некоторые пришли из JavaScript’а, некоторые скопированы из мира .Net.
RESTful Web Services by L. Richardson and S. Ruby. Современная Java — это во многом веб, поэтому нельзя игнорировать современные подходы к веб-разработке. Но REST — это не только способ организации фронт-энда, но и хороший архитектурный шаблон.
Независимо от уровня
Не забываем читать официальную документацию.
Cracking the Coding Interview. Задачи полезные не столько для прохождения интервью, сколько для того чтобы держать себя в тонусе.
Видео с различных конференций и юзер-групп: JavaZone, jug.ru, jeeconf, JavaOne.
Принимаем участие (по мере своих возможностей) в локальных jug-ах. Например, JUG KPI.
От редакции:
Этим выпуском мы открываем серию авторских дайджестов о технологиях. Такие обзоры помогут новичкам осваивать новое, а их опытным коллегам — углублять свои знания.
Приглашаем всех желающих стать авторами последующих выпусков. Тема свободная, вы можете писать о любых интересных вам самим технологиях.
Задать вопросы, скоординировать тему или присылать свои дайджесты — на valentina@dou.ua.