В данной дискуссии несколько линий (и пару гадостных замечаний на которые в целом следовало бы ответить...).
По главной линии...
Как алгоритмист, имеющий продвинутую степень и по компьютерам и по науке, скажу для расширения горизонтов, чтение Кнута, как рекомедация, мало полезны: до него надо созреть самому, иначе это будет пустая трата времени. Для иллюстрации скажу, что это примерно тоже что считать Страуструпа - первым в жизни учебником по C++: он что угодно, но не это. Это беседы о C++ с очень умным и интересным собеседником, приводящим аргументы в спорах, вопросы которых вам непонятны, до которых вы возможно еще не дозрели. Там очень много полезного, но никакой дидактики.
Тоже с Кнутом: очень много вглубь, но часто малопонятно почему здесь а не чуть в сторону. Знать то о чем он говорит, на глубину которую он достигает, невредно, на мало необходимо. Для полудосужего чтения рекомендовал бы скорее CLR (Кормана): там больше вширь чем слишком глубоко вглубь --- это значительно расширит пространство идей и даст базис при необходимости капать вглубь уже на полную необходимую глубину (т.е. по статьям, обзорам и монографиям, а не учебникам)