I work as a programmer (.NET WPF), but I feel that I often do not have enough knowledge of programming fundamentals (basic algorithms, data structures, etc), those things that people usually learn in schools. My major wasn't programming, so none of these options is studied. I would like yourself to fill these gaps.
What materials do you recommend to study? Sites, books, sites, puzzles, etc.
p.s. (The existence of the work of Knuth of course, I also know what else besides him? :)