You'll find that in every industry everywhere though. While turning something you love into a job sounds great, theres always a few things that drag it down. I particularly hate working projects where the client is incapable of defining precisely what they want, and yet still wants it done to a strict deadline. That really bugs me.. And it seems to be happening more frequently.. Grr..
I'm going to learn Java (although I don't believe you can ever learn everything about java... there's too much) because it's so vast and diverse (and of course can be implemented on the web as applets). I'd take a short course with the Open University in here the UK so I can do it my spare time after work etc... I did the same thing for Client-side scripting and found it very useful. Then I understand that if I learn Java, C++ is reasonably easy to adapt.
I can also code in Perl for CGI and command line at the moment (not all that competently though)
I've roped in my first client. It's a nice easy one... just an entry-level type website, 6 pages for a small Acupuncture business.
It's like going fishing for the first time when your a kid and you catch your first ever little stickleback or something.... it's not an impressive catch but it's still exciting!
I'll keep getting little jobs like this and see how it goes before I do anything else.