Считаю, что любой самоучитель даёт больше, чем среднестатистическое учебное заведение. Тем более, что сейчас полным полно бесплатных онлайн-курсов. Смысл идти в учебное заведение есть только в том случае, если вам примерно 16-17 лет и нужно получить высшее образование.
На мой взгляд самый лучший путь, это взять какую-нибудь книгу для подготовки к экзамену от Oracle №1Z0-808, который называется "Java SE 8 Programmer I". Это самый простой экзамен на знание Java 8. Учите Java по этом самоучителю, попутно готовитесь к экзамену и в конце сдаете экзамен. Плюс в том, что ваше обучение не проходит бесследно и в конце вы получаете сертификат от Oracle котирующийся во всем мире.
До недавнего времени программы для андроида писали на языке Java, а для IOS - на Objective-C. Однако технологии не стоят на месте и вместе с развитием собственно железа для мобильных телефонов появилась возможность писать программы на многих других языках программирования. Для андроида и IOS сейчас наиболее популярны следующие языки - Javascript, Python и Ruby.
Java - это язык программирования, его в основном используют для программирования и создания программ для мобильных устройств, игр к мобильным устройствам и всему, что с этим связано. Этот язык программирования достаточно молод и развивается, кстати он очень перспективный для работы с ним.
Это хорошо что на java, в наши годы было все гораздо хуже. Главное тут понять, как устроено программирование, а язык не важен. Далее переучиться на требуемый язык уже будет легче, если будет в этом необходимость. В реальности java востребованный язык и на нем делают сайты, а также на нем сделана знаменитая игра Minecraft.
Наиболее полезным показался видео курс "Java для тестировщиков", вот ссылка на видео. Правда, смотреть его нужно уже после того, как сами попробуете сделать что-то "ручками". Курс для тех, кто обладает начальными знаниями, хоть и не обширными. В общем, советую посмотреть, думаю, не пожалеете потраченного времени.