Я тут посмотрел другие ваши вопросы. Они все связаны с одной и той же темой: в каком направлении начать изучение программирования, да в какой последовательности, да какой язык выбрать.
Вы слишком много сомневаетесь, пытаясь найти сразу самый лучший путь, и слишком боитесь ошибиться. Так можно бесконечно колебаться, не решаясь сделать первый шаг.
С моей точки зрения, вам стоит прямо сейчас, без дальнейших сомнений, взять какой-нибудь несложный язык программирования, - пусть Python, - и приняться за работу. Выберите себе какой-нибудь проект, который вам интересно было бы сделать. Да хоть возьмите задачки из "Конкретной математики", если она вам так нравится. Там уже в первой главе есть. И пишите, пишите, пишите код.
Да, он будет плохой. Да, будет много ошибок. Но вся жизнь программиста состоит в том, чтоб исправлять свои и чужие ошибки, это реальность. Программирование - это практическая деятельность. Невозможно научиться ей, лишь читая книжки.
Если знаете английский - есть видеокурсы по программированию на Python на Coursera, Udacity, codecademy, где там ещё, - много их. Если не знаете - есть переведённый на русский учебник за авторством Лутца. Но английский, вообще говоря, знать надо.
Теперь, что касается фундаментальных книг. Я сам читал "Конкретную математику", но продвинулся недалеко. Считаю, что у человека должен быть стимул и интерес изучать вещи; тогда лишь их изучение будет плодотворным. В обратном случае, даже если вы заучите что-то, мозг выбрасывает ненужную информацию.
Пишите код и много. Когда вы почувствуете, что не хватает знаний о красно-чёрных деревьях - возьмёте Кнута и прочтёте. Надоест динамическая типизация в Питоне - пойдёте штудировать C/C++. Захотите писать под микроконтроллёры - выучите ассемблер.
Короче говоря, не бойтесь начать.