Top CS schools don't teach programming, they teach Computer Science. CS students are very likely to become good programmers from side projects, but so can liberal arts students.
Maybe something different happens in the "top" top CS programs , but I sure as hell did a lot of programming during my CS curriculum. Some was for classes meant to explicitly make you better programmers (software engineering), and some was as a tool to learn/practice the theory. I certainly felt like I became a good programmer in part through my classes.
How much of your course load would you say was directly related to programming topics, not CS? It is not so much a question of you not learning programming skills in the program, so much as what it would take to learn the same outside of the program. One software engineering class and a bunch of practice doesn't seem particularly difficult to catch up on, and even surpass, in the same time frame if you place your focus squarely on that topic.