I graduated from a 3 year Software Eng degree 4 years ago, where I learnt the basic's of programming (using C, Java and SML). I had very little programming expereince before that, having only used Pascal while doing A-Level Computing, along with a couple of math's A-Levels.
During my time at uni, I also taught myself C++, OpenGL (we did have a course on OpenGL, though it was quite limited, so I had to learn more about it than I was taught) and DirectX, which I tended to work on in my spare time (mainly the summer holidays).
After I graduated, I got a job as an Xbox programmer, and learnt more in the two years that I was there than I ever did at University! Moving from there to PS2 and GameCube programming gave me the kind of education I could only get while working. I also attempted to do an Open University Maths degree, until I realised how much it was going to cost!
Thats the state of my 'education' as it stands, but as most people will say, you will learn new stuff everyday, so your education never really ends!