Someone at work noticed I was toting around a C# book lately and asked me “you're a VB guy, why the hell would you want to learn C#?”
Before I could answer, he continued... “case sensitive? ughh... semi-colons? no support for edit and continue? no constant compilation? etc...” (he went on a for a couple minutes)
To me, the answer was obvious. I'm learning C# for the same reason I learned VB.NET. Because I can. Because I don't want to limit myself to knowing a single language. (Even if I didn't learn C#, I wouldn't be guilty of only knowing a single language, but I digress.) Because Microsoft doesn't use VB in product development. If C# is good enough for Microsoft... certainly it's good enough for me.
Also, and I've said this before, learning C# is making me a better VB.NET programmer. By forcing myself to start at the beginning with C#, instead of just mentally converting everything into VB, I'm reading about new ways to look at things. When I go back to VB (remember, I'm doing VB.NET all day and C# at night) I find myself thinking about what I read or tried the night before.
Also, some may take this as heresy, but case-sensitive languages are your friend!! (I can hear the anguished souls crying out as I type this...) It's true though. Nothing is worse for learning than having an IDE that automagically fixes all your mistakes for you. C# forces me to get it right. Oh sure, the Intellisense kicks in now and then and helps out, but it's a lot less forgiving than VB.NET, which means I have to really think about what I'm doing.
Thinking about what you are doing is the first step to remembering what you did. Don't believe me? How many times have you driven home from work and have been unable to remember a single thing about the drive (unless something of particular interest happened along the way.) By forcing me to think about it and get it right (myself)instead of doing it all for me, I'm learning faster. When I go back to VB the next morning, I find myself more productive BECAUSE I'm thinking about what I'm doing and not relying on Intellisense to fix everything for me. (Don't misunderstand... I LOVE INTELLISENSE, but... I think it keeps Novice Programmers as Novice Programmers for far too long. I'm not one of these people who advocate turning it off altogether, that's just dumb.)
I still love VB, we've been together a lonnnng time (about 12 years now.) We fight a lot and I cheat on her now and then, but I always come back! I had a brief flirtation with Perl once, but it never really went anywhere. C#, on the other hand, could give her a run for her money.