"Tak jsem se dozvěděl, že důležitou vlastností programátora je znalost teoretického programování. A z toho jsou prý nejdůležitější knihy o algoritmech a práce s daty."
Důležitou možná, ale jsou i důležitější. Všechny běžně nebo alespoň občas se vyskytující problémy jsou už vyřešeny. Na tobě je jen najít to správné řešení, tedy najít patřičnou knihovnu, framework apod.
Programátor musí umět hlavně programovat objěktově, znát a umět používat návrhové vzory, rychle vyhledat řešení problému a teprve až potom když nenajde co potřebuje přichází na řadu samotné algoritmování.