Самостоятельное изучение это всегда медленее чем курсы. Если нет возможности пойти на очные курсы или за бесплатно, ради оптыта, устроиться в контору, самое оптимальное:
Философия Java - с выполнением всех упражнений
Если есть деньги - то javarush для механического запоминанния синтаксиса + для поверхностного знакомства с стеком технологий.
Если нету, то придумать свой проект и улудшать, улудшать его.