> Я вообще ничего не смыслю так что готов начать с самых основ.
Книги для этого как раз не нужны, как по мне. Книги становятся актуальными тогда, когда все азы ты уже знаешь и начинаешь подбираться к профессиональному уровню. К этому моменту ты, уже наделённый определённым опытом, начнёшь задумываться о таких вещах как оптимизация, чистота кода, паттерны и т.д. — и вот тогда придётся обратиться к литературе.
Вот тут-то и встанет потребность в получении теоритической базы по алгоритмам и их видам, теории множеств, булевой алгебре, теории графов и прочим разделам математики.
А пока ты клепаешь "хеллоу-ворлды" на python или js, то никакие книжки не нужны. Открываешь любой бесплатный учебник (точнее, несколько понравившихся, т.к. обычно в каждом из них есть свои сильные и слабые стороны), stack overflow, примерчики на github и начинаешь пилить что тебе нравится: игру, полезный в быту скрипт, движок имиджборды, демку на демопати, etc. Скорее всего, проект ты в итоге забросишь, но это и не важно, а важны знания, которые ты получишь в процессе.
Боюсь, если ты первым делом начнёшь читать какой-нибудь фундаментальный труд вроде упомянутого выше Кнута, то очень быстро тебе станет скучно и ты потеряешь интерес. Потому что теория бесполезна без практики. Тебе нужно сначала самому столкнуться с какой-то проблемой, ощутить потребность в пополнении знаний — и только потом искать источник этих самых знаний. А не наоборот.
Всё это лишь моё мнение, разумеется.