There was a time I thought most of what I learned in university courses was useless--a lot of the material seemed to be either esoteric (e.g., automata theory) or obvious (e.g., databases). And then I was talking with a colleague about some design stuff, and he turns to me and says "the great thing about you, jcranmer, is that you've actually gone to school and learned all of this stuff." Since then, I have been continuously more surprised than I should be when I talk to other people and realize how much they haven't picked up on that I was taught in school courses.
I actually went back through my school notes and looked through all of the CS classes I took to see how many of those courses turned out to not be useful to me at some point in my career. The answer is "Natural Language Processing" and maybe some of the algorithms courses (although interestingly enough, not Advanced Algorithms [1]). Admittedly, this is probably partially due to working in compilers--which ends up being at the intersection of a lot of different fields--but I've still found reasons to apply learnings from ML, information visualization, or cryptography in my work.
So even if I would have been a good programmer without going to university, it's definitely the case that the CS degree has given me even more knowledge to become a better programmer.
[1] I've had to use Chernoff bounds once to bound a probability distribution.
I actually went back through my school notes and looked through all of the CS classes I took to see how many of those courses turned out to not be useful to me at some point in my career. The answer is "Natural Language Processing" and maybe some of the algorithms courses (although interestingly enough, not Advanced Algorithms [1]). Admittedly, this is probably partially due to working in compilers--which ends up being at the intersection of a lot of different fields--but I've still found reasons to apply learnings from ML, information visualization, or cryptography in my work.
So even if I would have been a good programmer without going to university, it's definitely the case that the CS degree has given me even more knowledge to become a better programmer.
[1] I've had to use Chernoff bounds once to bound a probability distribution.