I ask because if knew nothing going in, you'd learn a fair bit in college.
With that said, I'd programmed since 3rd grade and still learned a fair bit in college that I use to this day. Of course, this was pre-internet, so I think it was generally hard to self-teach. But things I learned in college that I used professionally:
* Data structures. Before college I pretty much used primitives and arrays. In college I learned to make much better use of trees, graphs, sparse matrices.
* OOP. Although in fairness, OOP started to come to life when I was in college. There was no ANSI C at the time :-)
* Compilers. I've since built many compilers, but having taken the sequence certainly made it a lot easier.
* Databases. Never used a relational DB until college. I think it would be fair to say I've made millions off of them since. :-)
* Regular expressions and state machines. This is just ingrained now.
* Vi ... Used Vi exclusively for the first decade of my career.
* Unix ... Used various Unix variants in the first decade of my career as well. Learned most of it in college.
* Architecture and internals -- I've done a fair bit of work at the architectural level, and college is where I laid the foundation for understanding both the architecture (registers, cache, tlbs, pipelines, units, etc..) as well as basic EE. None of which I knew much about before college.
There are plenty more, but these are some examples. Probably my big weakness in going in to college is I did all game programming before college. I understood graphics really well and the game loop, But looking back at some of the code, and it was really horrible. You really shouldn't use arrays for everything :-)