Совершенно случайно наткнулся в интернете на курсы
TopJava, когда находился в самом начале пути изучения Java, и считаю, мне повезло, что нашёл их именно в тот момент. Я начал с курса
BaseJava и кратко опишу свои впечатления о нём. Итак, плюсы данного курса:
1) прежде всего, это практическая направленность. В процессе освоения каждого урока ты на практике приобретаешь те или иные навыки: работа с массивами, коллекциями, использование JUnit, Tomcat и т.д. Каждый новый урок построен на знаниях, полученных в предыдущем. Конечно, на первых порах совсем новичку в программировании придётся изучить очень много материала, в т.ч. теоретического, но данная база обязательна и необходима, без неё ты будешь не программировать, а просто "кодить" без понимания сути.
2) второй пункт вытекает из предыдущего: в конце курса ты будешь иметь готовое web-приложение, а не просто набор не связанных друг с другом выполненных заданий.
3) проверка ДЗ (code review) - бесспорно, огромный плюс. В отличие от JavaRush, здесь код проверяют кураторы и дают советы по тому, что именно нужно переделать. Стоит отметить, проверяют не только ошибки, но и твой стиль написания/оформления кода, вплоть до именования переменных/методов и соблюдения отступов. Это очень важно, т.к. ты учишься не только тому, ЧТО написать, но и КАК, т.е. учишься писать "хороший" во всех смыслах код. Есть возможность взять курс с проверкой ДЗ и без неё. Во втором случае ты просто смотришь по видео, как нужно было выполнить ДЗ. Конечно, рекомендую первое, поскольку одно дело - просто скопировать код, совсем другое - написать его самому, пусть даже неправильно, 10 раз ошибиться, несколько раз всё переписать, но в итоге ПОНЯТЬ, как и почему должно быть так, а не иначе.
4) в каждом уроке изучаемые темы, как правило, связаны друг с другом, и ДЗ даются на основе всего материала урока.
5) в каждом уроке есть видео от основателя курса Григория, который объясняет ту или иную тему и то, как нужно было выполнить ДЗ. Даже если у тебя курс с проверкой ДЗ, данные видео всё равно полезно потом посмотреть, (как минимум, узнаёшь другой взгляд на решение той же проблемы + Григорий всегда делится полезными знаниями/советами).
Курс не простой, но очень полезный. Если ты действительно хочешь научиться основам Java и изучить сопутствующие технологии, записывайся на данный курс. Конечно, для трудоустройства его прохождения будет недостаточно, но хорошую базу ты точно получишь.