Если вы метите в джуниоры, то вам нужно несколько изменить порядок книг в вашей очереди.
Отложите алгоритмы и TDD на последнюю очередь -- это безусловно очень важные темы, но для вашей цели не первоочередные.
Познакомьтесь с паттернами (GoF) и "Рефакторингом" Фаулера.
Прочитайте вдумчиво английское издание Effective Java Джошуа Блоха. Не загромождайте (поначалу) голову паззлерами.
Ну и, наконец, сформируйте то, что нужно работодателю -- кругозор. Получите представление о вещах, вращающихся вокруг Java. Вот вам набор ключевых слов: Java Collections Framework, Java EE, Spring Framework, Maven, Glassfish, JDBC... Не нужно углубляться. Осознайте, что это такое. Изучите туториалы.
Я считаю, для поставленной цели этого достаточно.
Я в 20 лет уже подрабатывал админом на пол ставки в небольшой компании. Думается, что эта строчка в моем резюме потом очень сильно помогла в дальнейшем карьерном росте. Сколько будете зарабатывать - зависит от региона и специализации. Средний заработок нетрудно прикинуть по HeadHunter. Где-то 150 000 в России - это практически максимум для программиста. Я встречал людей, который зарабатывают и больше, но это, как правило, очень узкие специалисты. О том, с чего начать, какой язык выбрать и тп, см тут.
Я когда был студентом просто взял что знал (тогда это был C++ Builder) и стал лезть в проекты которые потенциально мог реализовать. Пара заказов взял и выполнил. В процессе выполнения одного пришлось полностью изучить FORTRAN. Было это правда лет 5-7 назад, сейчас конкуренция на фриланс-биржах жестче, но если демпинговать (а это придется делать не имея портфолио и рейтинга) то можно взять пару проектов
Все проще чем кажется - не думай, делай! Бери, изучай языки пиши простенькие проекты, сначала для сея а потом и на заказ. Первые задачи лучше придумать самому из разряда "для себя". Т.е. какую именно программу сам бы хотел иметь - очень поможет освоиться в програмировании. Потом можно брать заказы на фрилансбиржах. Вилка оплаты очень разнится. Например фронтенд разработка в вебе от 80 до 800р за час! Естественно начинаешь с маленьких сумм, с приобретением опыта увеличиваешь ставку.
Это не предел. Потом можно стать тимлидом и самому руководить разработкой какого-то проекта в какой-нибудь компании. Или набрать техже фрилансеров на крупный проект и организовать свое дело. Потолка по доходности просто нет.
Что касается сферы в которой следует развиваться - тут сложнее. Можно посмотреть в сторону веб - вроде как очень перспективные технологии там сейчас и большинство приложений переписываются именно на него.