Уверен что нужно начинать с бесплатных ресурсов. Поэтому автору вопроса можно порекомендовать (учитывая что это его не первый яп) следующие ресурсы:
-лекции Головача Golovach Courses на youtube - он очень хорошо и подробно подал материал по core, многозадачности и проч.
-лекции Сергея Немчинского - хорошие лекции по шаблонам, рефакторингу и чистому коду (как помыть кота) и проч.
-лекции Николая Алеминкова и др.что бы уловить что такое tdd и что такое разработка через тестирование.
Для практической работы можно порекомендовать ресурсы типа
codingbat.com/java
www.codewars.com
и др.