Here's some free advice, though it's worth about the price you're paying.

If you want to do work for yourself on the web, target your first professional position to involve "Free" support techs if at all possible. I'm a pretty good programmer, but having used ASP 3/MS-SQL Server almost exclusively for the first two years of my professional career (and continued to use them ever since), there are still some things I know how to do at the drop of a hat that, though I have a leg up on newbie programmers simply by knowing what needs to be done, I have to waste hours digging through when learning techs that are new to me. Let's say PHP, as an example, which I'm slogging through now.

Those years of on-the-job training with Microsoft techs translate quite well into VB.NET and ASP.NET. I've also been using Java, first at home and then on the job when appropriate, for years as well. Java has helped me with C# (combined with VB background) and, of course, with JSP. Luckily, if you'll learn ANSI SQL and a good, multi-rdbms isql client, you can have a pretty nice database background no matter the backend, which has allowed my SQL Server T-SQL skills to extend to Oracle, Sybase, MySQL, and Postgres easily throughout my career -- up until a point. Heck, it's even easier for me to find answers to ASP questions than php, as I've been doing the former longer.

Can I administer Apache like I can IIS? MySQL like I can MS-SQL or Oracle? Php like I can ASP? Nope, nope, nope. My original job choice (and those that have come after) has (have) me favoring my original skill sets, just as MS wanted (cue manical laughter). It's not a big deal, and I've gotten some pretty high-end BLOB work into my latest php site, but I know I've lost a significant amount of time teaching myself the PHP-way of doing what I could have done in ASP in a flash (not that I know Flash).

If you feel you'll want to start your own company and create your own products, MySQL, php, Java (via Tomcat), Postgres, Perl, C/C++, even Python (ick!) are your friends. If you can get your first few employers to pay to train you in those skills whose hosts don't require constrictive licenses, consider it. If you want to learn to program quickly in a well-supported environment and prefer to grow within others' companies, making [lots of] safe money all the while, then using Microsoft's offerings aren't a bad way to go at all. In fact, I'd highly recommend them.

So I guess the end lesson is this: If you have an inkling how you'd like your career to turn out, don't discount the importance of the skills you learn at your first few jobs, and plan accordingly!

Here endeth the worthless lesson. All the best, etc.