PS One other suggestion I have, although it has nothing to do with C++, is to pursue Java certification. The Sun Certified Java Programmer certification forces you to learn the language inside and out, which is a great way to establish a solid foundation. After that, you get to have real fun. :) There's the Sun Certified Java Developer certification that requires you to write a real application, submit it, take a test, etc. If you're willing to invest a few months of effort, a few hundred dollars in books, and $750 or so, you could pick up the SCJP, SCJD, and SCWCD (Web Component Developer) certifications. By the end of it all, I'll bet you that $750 that you'd be able to develop real applications. :) There are easier and less expensive ways, I guess, but the great thing about doing something like the above is that it's embarrassing to throw away $150 on the SCJP if you're not going to pass it. Having a stake in the outcome--especially a financial one--acts as a big motivator. :) And I have to say, especially coming from a C++ background, that Java is a really elegant language. C++ had to make a lot of compromises because it inherited a massive legacy code base written in C. With Java, they started afresh and it shows. The great irony about it is that it's much smaller than C++ and you can do much more with it. The certifications look great on a resume, they confer real knowledge, and you can get a lot of help doing them (see http://www.javaranch.com).