solar_perplexus
solar_perplexus on Hacker News
The former is a much recommended book since it's very comprehensive and builds everything from the ground up and was the basis for the entire course. The latter is a beast of it's own and we simply covered what was effectively the first chapter as part of the course.
There is some level of cognitive maturity required to understand new ideas. I understood pointers somewhat from school, but it really made sense to me once I learned about computer architecture in more detail.
Sometimes you need to see the whole picture to understand why an element is present there and usually that happens only if you stay long enough with a problem/concept.
I found that studying specific topics (currently probability theory and statistics) helped me comprehend the field better and in ways that make it practical for my planned career.