+1  A: 

yes. Learn the lifecycle of a asp.net web page (the events and ordering) first, then learn about user controls and server controls as needed; you can probably get the gist of it in a day or two and be useful very quickly

there is a lot to it, but you don't have to know everything all at once.

[and google, as always, is your friend - as is stackoverflow.com ;-)]

Steven A. Lowe
+2  A: 

If you have taught yourself PHP, I don't think you'll have any problem teaching yourself C#/ASP.NET. One of the great things about C# and ASP.NET is that there is a TON of information available online. From sites like MSDN, to stackoverflow, you can find just about anything (of course Google is the best starting place).

A good site to learn the basics (and more advanced features) of C# or ASP.NET is FunctionX. They have some great tutorials. Have fun!

mc2thaH
A: 

.NET is just another programming platform. There is a bit to learning .NET than just the syntax of whatever .NET programming language you choose to use; you need to learn how the CLR (Common Language Runtime) and the BCL (Base Class Library) but it is fairly straightforward. Although, you may want to be a bit more modest. :) Most people on this site probably were self-taught and have learned several languages. Anyway, good luck!

BobbyShaftoe
A: 

I'm not an expert .Net programmer, but what it really comes down to is learning the class libraries that relate to what you're trying to accomplish. If you're familiar with other languages that use a C-like syntax, you won't have any trouble picking up the C# syntax. The class libraries, however, are extensive. If you pick up a good reference on ASP.Net and skim through that to get familiar with what's available, it should be fairly easy for an experienced programmer to get started pretty quickly. If you use Visual Studio, all the better because of its IntelliSense system. The way ASP.Net handles forms and events is somewhat different from what you would find with languages such as PHP or ColdFusion, so that may take some learning as well (server-side events can be a pain to wrap your head around when getting started). If you're as kick-ass as you say you are, I'd say jump right in and test the waters with some of the sample code you can find all over the web and see how it goes.

Justin Scott
A: 

You are a self-learner, so you'll do it, there are plenty of resources around to get up and running in no so much time. You should spend time exploring the Framework and knowing the language that your team uses.

I always recommend this site:

There are tons of screencasts, tutorials and samples. I also recommend you to pick a good book to start knowing the Framework and the programming language.

CMS
A: 

There are 3 aspects involved in what you will need to learn:

  • .NET
  • C#
  • ASP.NET

The last one builds on top of the first two. For each one I would suggest finding a book or a site that describes the feature for a programmer. Books that do this (in my experience) are rare.

For C# I would suggest Programmers Introduction to C#. It teaches the features of C# without teaching you how to program (ex: tells the syntax for while, not why or when you should use it).

I am not sure about books like this for .NET and ASP.NET. The one for C# I mentioned above covers some .NET.

earlNameless
A: 

Why C# and not vb.net? If Erik had a c, c++ or java background then c# would make sense. It might make more sense learning vb.net it's a little more forgiving. You can easily make the transition to c# once you cut your teeth on the framework.

Cadoo
Why is vb.net more forgiving. I was a VB5/6 dev when .NET came out, I took one look at the mess that is VB.NET and enaged curly brackets.
Kev
It says he's got C++. C# is the natural evolution.
John Dunagan
A: 

I am also going through the same experience. I already know java/php and just started to learn .net and c#. I am finding it quite easy to understand .net/c# since there are lots of similarities.

Also you can find some info here @stackoverflow - Java and .net for PHP programmer

A: 

It will not be hard to do that, if you do your best.

Here's a little side story from my past to cheer you up.

I'm a self-taught software developer (graduated in administrative economics). 4 years ago, while working for some construction company during a summer in the USA, I've learned that they are looking for C#, ASP.NET, MS SQL Developer.

Well, I knew Delphi, Turbo Pascal, HTML and Interbase a little bit. So, I figured, it will not be hard to catch up with the Microsoft technologies within a month.

Absence of the computer around was a bit tricky, though. Learning how to program with a book on .NET, a sheet of paper and a pen in the evenings makes you regret that you didn't get CS.

But still, month later I did get the job.

PS: If somebody ever gets thoughts like "heh, how bad this software engineer could be", I humbly suggest them to check out my blog before saying that.

Rinat Abdullin
A: 

Yes, it should be straightforward. There's lots of help on the internet, lots of good books (I'd recommend Jeffery Richter's "Applied Microsoft® .NET Framework Programming"), and best of all, the IDE's Intellisense really helps you explore what each class can do. I learned enough C# to get cracking in a week or two, and I'm by no means a hotshot.

Dan
A: 

I concur with the 'yes' people. You know C++, so you've already got the underpinnings of C#. Get and install the latest Visual Studio Express SKU, and join the crowd...

Also, hit INETA.org and find the closest User Group to where you live. You'll get a ton of good help along the way.

John Dunagan