I find that there is a great deal I have left to learn. I have been lucky enough to attend Cornell. I participated in the Co-op program my Junior year working for Sentrana, Inc. in Washington, DC as a software engineer. Working as a co-op made me realize that I knew how to program to some extent but also that I still had so much to learn about how software is made as a product. I had a great mentor at Sentrana who still laughs at me as much as ever but taught me more about programming than I can ever thank him for. You can code projects for classes as much as you want but nothing will teach you about services and stack traces as much as being confronted with a 10,000 line code base whose main contributor has left the firm.
There was also the hipster systems engineer and sassy scientific computing specialist who left their respective marks filling in large gaps that my classroom education had left. My mother once gave me a book called an An Incomplete Education. The book tries to fill in some of the general knowledge gaps that the classroom never seemed to provide. Their is no substitute for working as a software engineer to complete a CS education.