Никлаус Вирт: "Систематическое программирование" и его же "Алгоритмы + Структуры Данных = Программы" - это классика!
У Станислава Окулова есть "Основы программирования", "Программирование в алгоритмах" и "Задачи по программированию".
И много ещё чего есть. Но кодировать задачи на ЭВМ лучше сразу начинать. И чем интереснее задачи - тем лучше!
По сишным языкам пара книги Стивена Праты (С и С++) - это хорошая подсказка! А по алгоритмам, что ближе к компьютерному программированию как к таковому, а не просто к изучению алгоритмических языков, так лучше "Фундаментальные алгоритмы на С++" Седжвика, например, хотя это и не совсем для начинающих, также как и Дональд Кнут, которого всё равно надо будет всего проштудировать...