Большая подборка книг, видео и статей для Java Middle
Java Middle – это соль земли от мира информационных технологий. В статье самые полезные материалы, которые помогут прокачать навыки.
Помните правило Парето? Так вот, Middle-разработчики – это люди, которые сделали те самые 20% усилий, и теперь имеют 80% результата. Это не переджуниоры и не недосеньоры. Это отдельная категория программистов.
☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»
Видео
Что должен знать Java Middle программист?
Начать нужно с анализа требований к мидлу. Для этого подойдет семинар от Александра Марченко. Тут хорошо разграничены требования к Middle и Junior. По-крайней мере, с наиболее распространенной точки зрения. Для самопроверки полезно познакомиться с рынком: посмотреть на требования в вакансиях Java Middle и походить на собеседования.
https://www.youtube.com/watch?v=liZwJ1-Pv98
Фреймворки
Очевидно, что Java Middle-разработчики используют какой-либо фреймворк. Например, Spring или что-то из Java EE. Полезно иметь свой pet project на непривычном для себя стеке и прокачиваться в нем.
Есть два шикарных канала, каждый из которых посвящен одному из этих фреймворков.
Spring
Микросервисы, SpringOne, облачные решения и многое другое в формате лекций, вебинаров и proof-of-concept-ов от лучших зарубежных разработчиков, команды SpringSourceDev.
https://www.youtube.com/watch?v=vZV2_9KVHJU&list=PLgGXSWYM2FpPw8rV0tZoMiJYSCiLhPnOc
Java EE
Канал от разработчика Adam Bien, который, согласно его блогу, является Java Champion, NetBeans Dream Team Founding Member, Oracle ACE Director, Java Developer of the Year 2010. Человек фрилансит на стеках Java EE с 1995-го года и до сих пор не уехал кукухой. Заслуживает уважения, тем более что и материал на его канале емкий и наглядный. Адам демонстрирует в формате скринкастов, каким симпатичным и легким для понимания может быть код на Java EE.
https://www.youtube.com/watch?v=0LcdDini73o&list=PLxU9yM-_yPs93z3kO_4A9mDk8lsTtwwDW
Hibernate и JPA
Взаимодействие с данными – важная область, в которой постоянно будет вариться любой Java Middle. Канал «Thoughts of Java» несколько раз в неделю публикует короткие видео. В каждом дается готовый рецепт по той или иной проблеме, связанной с persistence level вашего приложения. Как мапить “Y” и “N” в булевы значения в БД? Как запилить кастомный генератор идентификаторов? Можно ли распарсить EntityGraph из строкового представления? Все это и многое другое расширит опыт и пополнит ваш арсенал программиста трюками на каждый день.
https://www.youtube.com/watch?v=4deURytlQLI&list=PL50BZOuKafAbXxVJiD9csunZfQOJ5X7hP
Конференции
Чтобы постоянно качать свой скилл в программировании, нужно держать руку на пульсе. В этом помогут конференции. Они исключительно полезны и как источник знаний, и как компас в мире языка Java. Разработчик, который смотрит исключительно в свой проект, открытый в IDE на рабочем компьютере – умирает как профессионал.
https://www.youtube.com/watch?v=0H0mhiJLR7k&list=PLVe-2wcL84b_zMSFLOKrXFrG1p40IlBky
Есть также хорошие зарубежные каналы такой же тематики, один из лучших – Devoxxx.
🧩☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»
Книги
Как привести дела в порядок – Дэвид Аллен
Наша подборка для Java Middle начинается не с технической книги, а с классики тайм-менеджмента. Это неслучайно. На мидлов ложатся непривычные для них ранее обязанности, а справляться с ними они еще не привыкли. Поэтому создается лишний стресс, который легко может разрушить work-life баланс и привести к выгоранию.
Какой смысл в любых знаниях и навыках, если вы только и будете залипать в монитор, искать мотивацию и бороться с усталостью? Чтобы не столкнуться с выгоранием, нужно осваивать дисциплину и эффективно организовывать работу. К счастью, это обычная наука, такая же, как программирование. И эта книга поможет стартовать в нужном направлении.
Классика шаблонов проектирования от "банды четырех". Есть и другие отличные книги по паттернам, но эта - основной мастрид. Важно погружаться в подобные архитектурные штуки уже сейчас, потому что мидл – это самостоятельный программист. Ему рано или поздно придется писать что-то с нуля. И тогда навыки хорошего стиля в архитектуре поспособствуют более эффективной работе с полученным заданием.
Мифический человеко-месяц – Фредерик Брукс
Библия программной инженерии, книга от опытнейшего разработчика компании IBM. В ней в виде очерков раскрываются важные нюансы управления проектами. Это как "Совершенный код" Макконнела, только про проекты. И это куда важнее кода. Мидл-программист должен уметь трезво смотреть на окружение, в котором он работает. Потому что понимание процессов и проблем, с которыми сталкиваются команды разработчиков каждый день, позволит генерировать правильные идеи и стать ценным сотрудником.
Книги по сертификации
Сертификация Oracle – важный майлстоун для каждого Java Middle developer'а. Не потому, что важна какая-то корочка. На самом деле на нее редко кто смотрит, это скорее имиджевая штука. Хотя, бывает, без нее и на крутой проект не попасть. Но крайне редко.
Просто важно уметь аккумулировать знания и получать их объективную оценку. Да и книги, посвященные подготовке к сертификации, раскрывают важные нюансы Java Core. Ещё они предлагают практику в виде примеров тестов с разбором ошибок. На таком стыке углубленной теории и интересной практики изучение Java пойдет как по маслу. Ну и бумажку красивую получите, заламинируете и маме покажете :)
Книги: по Java 6, по Java 7, по Java 8
Многопоточность
Если вы Java Middle и конкретно встряли, то встряли вы на многопоточности – к гадалке не ходи. Если еще не встряли, то не мидл еще встрянете. Чтобы избежать таких неприятных ситуаций, нужно учить матчасть по многопоточности на берегу. Для этого пригодится любая специализированная книга по Java Concurrency. Наш выбор остановился на представленной, Java 9 Concurrency Cookbook от Хавьера Гонсалеса как на более свежей. Но можете обратиться и к классике.
Статьи
- Что такое микросервисная архитектура и когда ее применять. Обзорная статья по одной из самых хайповых технологий.
- Создаём приложение с чистой архитектурой на Java 11. Отличная статья по реализации архитектуры с нуля на самой свежей версии Java.
Ресурсы
- https://github.com/code-review-checklists/java-concurrency – чек-лист по многопоточности для ревью кодов. Отличный гайд с перечислением многих нюансов, про которые редко пишут в книгах.
- https://github.com/OWASP/CheatSheetSeries/tree/master/cheatsheets – гигантская и всеобъемлющая шпаргалка по безопасности приложений на Java. Мастрид для всех, кто не хочет стать жертвой скрипт-кидди.
- https://github.com/akullpp/awesome-java – подборка всякой всячины. Прежде чем приступить к велосипедостроению, просто загляните. Узнаете много нового.
- https://www.reddit.com/r/dailyprogrammer – канал на Reddit, в котором регулярно постятся интересные задачи для программистов разных уровней. Публикации призваны помочь попрактиковаться в решении нетривиальных задач и изучить что-то новое.
- JHipster – кодогенератор веб-сервисов на стеке Spring Boot + Angular/React. В отличие от остальных кодогенераторов создает экземпляр чистой и хорошей архитектуры. Скачиваем, генерируем, изучаем код для познания best practices.