ASP is more of an all you can eat fast food deal while php is more of a home cooked meal. ASP like RAILS is an all in one deal with the whole bells and whistles that you may need. Php doesn't encompass that much aside from basic need functions that are faster when implemented in pure C then in php. If you look at ASP.NET which is a framework build on C# and Visual Basic it has so many different built in features like master pages(very useful I might add), custom controls that map to custom markup,uneditable content via master page declarations, buttons, fully OOP, etc...Php doesn't have that and thats why so many people turn to the all in ones like ASP.NET and RAILS because they can't code an algorithm to save their life and need an out of the box solution. I'd say pick PHP for the middle level coding experience or if you use .NET use C# so you get some idea of strong types and could progress to system level coding easier and other C like languages. ASP.NET may be semi faster just because the code is compiled before its ran and not just turned to byte code at run time like php. I agree with Lionaneesh though coding should be done because you love it with getting paid to code being a bonus. I will stress the importance though of learning middle or low level coding so you actually understand whats really going on. Also the basics, those are all important, if you know the basics then you can learn any language. In my book if you want faster development and turn around then use .NET, but if you want fully control(not stuck using built in components), and a better understanding of coding then use PHP. Not to say that using C# wouldn't get you good with mid level its just you'd probably opt for using built in components and controls versus in Php writing your own.