Мой совет, начни с изучения ООП, самая подходящая на мой взгляд для новичка книга -
Мэтт Вайсфельд "Объектно-ориентированное мышление".
После прочтения данной книги, советую определится с языком, на котором собираетесь программировать.
В случае с Java, могу посоветовать очень хорошую книгу, на которую я наткнулся совсем не давно -
Патрик Нимейер, Дэниэл Леук - "Программирование на Java. Исчерпывающие руководство для профессионалов 4-е издание".
Книга вышла не так давно, я её изучил на половину, на мой взгляд все очень хорошо и доступно описано, листинги из книги можно найти на GitHub, автор очень весело и наглядно описывает все нюансы разработки на Java!