Именно программирования, а не кодинга на модном языке?
Вирт, "Алгоритмы и структуры данных", последнее издание - для объяснения алгоритмов используется реальный язык программирования.
Кормен, "Алгоритмы. Вводный курс" - для объяснения алгоритмов используется псевдокод.
У них разный набор тем, так что имеет смысл прочитать обе книги.
Кнут, "Конкретная математика" - учебник математики, необходимой программисту.