Какие книги посоветуете почитать для освоения программирования с нуля?
Посоветовала бы Head First Java. Java - широко используемый язык. Не самый модный, но с модных начинать не стоит, потому что может быть сложно переучиваться. На примере Java как раз можно изучить основные понятия программирования - операторы, функции, ООП и т. д., -  а после Java уже можно посмотреть Python, JS и ещё что-нибудь. Зная более основательный язык, будет проще переключиться на языки, в которых что-то из Java не используется. А вот наоборот двигаться, на мой взгляд, сложнее и менее продуктивно.
Если не понравится Java, можно ещё посмотреть С# ("C Sharp"). Эти два языка я бы назвала классическими. Зная любой из них, можно быть востребованным.
С С++ или чистого С может быть сложнее начинать. Чтоб с ними работать, нужно лучше понимать, как происходит работа программ. Но если интересно и в сторону железа смотреть, то можно и с них попробовать начать. Параллельно изучая Таненбаума и Паттерсона или что-то вроде того. Если математика нравится, то как раз можно больше уйти в С и хардкорное программирование чего-то сложного.
Кстати, зная Java, можно стать разработчиком программ под Android. И ещё после Java есть больше возможностей работать в веб-проектах, заниматься бекэндом (то есть той логикой сайтов, что скрыта за их красивым видом).
А я сама начинала с книги Шилдта. Можно и с неё начать. Мне понравилось, что всё постепенно рассказывается. Хотя в книгах серии Head First (по С#, по С) подробностей для новичка больше.
И ещё добавлю, что по ходу чтения здорово практиковаться, то есть писать программы. Собственно создание программ происходит обычно с средах разработки. Полезно их установить и начинать программировать именно в них, потому как они во многом упрощают разработку, помогают быстрее понять, что к чему. Заодно и их изучите (их знание часто требуется на работе). Для всех С-языков стандартом является среда разработки Visual Studio, для Java я бы посоветовала IntelliJ IDEA.
И, кстати, рекомендую подкаст The art of programming. Правда, подкаст-терминал, где были выпуски, прикрыли, но советую поискать недавние выпуски подкастов замечательного человека с ником golodnyj. Благодаря ему я и начала двигаться в сторону программирования. :) А, и ещё один подкаст посоветую: Откровенно про IT-карьеризм.
Г. Шилдт "Базовый курс С++" . Задачи есть в книге, ПО доступно бесплатно