Nowadays C# is unquestionably the place to start.
- VB.NET is not that bad of a language, but the syntax is so different from all other popular languages that skill don t transfer very well.
- Java is incredibly limited, both in its capabilities and in its ability to talk to other languages. It also requires you to use many "anti-patterns" when programming because it is missing fundamental features such as properties, delegates and true generics.
- Dynamic languages like Ruby, Python, or PHP are not as bad as Java, but will not help you learn many fundamental programming concepts as with C#, plus they are harder for a beginner to use because they don t have Intellisense, etc.
- Functional languages like ML, F# and Haskell are real mind-benders. They are good languages to learn to be well-rounded but are not for the faint of heart.
I would start by taking a C# class at your local community college, then picking up some books on it and reading for a while. This will give you familiarity with both the language and the NET Framework.
Once you have mastered the language itself and understand how to use some portions of the NET Framework, I would download the source code for some simple WPF (or Silverlight) applications and explore them to see how they work. WPF would be a better choice to start with than ASP.NET because ASP.NET introduces a ton of extra complexity in dealing with postbacks, HTML and JavaScript that don t exist at all in WPF. Also, it appears that the browser-base applications of the future will be Rich Internet Applications (RIAs), all of which use a mechanism much closer to WPF/Silverlight than ASP.NET. I would start with WPF before Silverlight simply because when you re unsandboxed you can learn the user interface technology by itself without having to learn all the complexities introduced by the sandbox and the need to access databases on the server.
Only after doing all of this would I dive into architecting an n-tiered application. Again I would look at many examples before doing one yourself. Pick simple ones and emulate those. Many you will find are far over-engineered.