Im not a professionaly programmer because... I don't have a job...
I've been taking a computer course for 1.5 years now and it is very very boring, and like scott I also have sometimes realised that I don't know everything... but only sometimes

. The main person i have learnt from is myself, reading tutorials and books.
My favourite language at the moment is none, but I am doing c++ and java right now, java for 1.5 years, c++ for 2 weeks.
And Scott, I would think that JAVA is more generic then C++... and maybe I have no clue (more than possible) but isn't the STL like the API for java?