This week, I had to learn C# and ASP to complete projects. C# was invented by Microsoft after they tried to work with Java but was not allowed certain freedom. Then, later C# was given to open source community. C# predominantly works in Windows environment. I learned C# in order to use ASP.NET, which is proprietary MS product for web development. Visual Basic was the alternative language I could learn in order to program ASP. Since I already know C , C++, and Java, it was easier to pick up C# because it follows similar syntax. Visual Basic is something I personally avoided because the syntax is totally different from the C's and appears to be oriented exclusively toward MS world, which from my experience, is not something I could trust. I prefer languages that are versatile enough so my skills can be versatile as well, ie work for different companies. C# is a combination of C++ and Java.