Java – Основы
Если еще нет опыта в программировании, то следующие бесплатные материалы рекомендованы к прохождению:

‣ Книга Якова Крамаренко: Введение в Разработку Программного Обеспечения (на примерах с HTML, CSS, JavaScript) и/або курс CS50 от Гарварда в переводе от JavaRush
‣ Курс от code-basics.com: Java для начинающих
‣ На английском – любой из курсов от edx или Udemy (1, 2, 3)

Если опыт в программировании есть, но не c Java, то можно быстро познакомиться с языком через:

‣ Быстрое введение в синтаксис языка: Learn X in Y minutes Where X=java (на английском)
‣ Интерактивные простые задачки по синтаксису в виде тестов: Java Koans

В оставшееся время, можно попрактиковаться на одном из следующих ресурсов:

exercism.io: Java Track
CodinGame
codewars

Также, тебе будет более удобно , если ты будешь сохранять версии своего кода для решения тех или иных задач – с помощью систем контроля версий. Я рекомендую использовать git и один из самых популярных серверов - github.com. Вот и бесплатное руководство по теме: Github - Hello World. А вот и бесплатный курс от hexlet.io: «Системы контроля версий (GIT)». А может тебе будет достаточно моего вступительного видео о гите на 50 минут.