I agree. Though there are those magical universities out there (and who knows, maybe there are magical bootcamps too) that teach abstract thinking. My university unfortunately does not belong to them. In terms of programming, it's all rote-learning of the basics for the exams and shit ton of exercises supporting that rote learning.
I can pin-point some places where I did learn various aspects of abstract thinking. I learned it by reading. Books like "Gödel, Escher, Bach", books like "Structure and Interpretation of Computer Programs", or the Sequences by HN's 'Eliezer. I learned it by thinking about what I read, and also by starting hobby projects and thinking hard when doing them.
The universities, and maybe even bootcamps, may help a bit - but there's no learning of abstract thinking unless you yourself care.