views:

487

answers:

10

I've been learning PHP for a few years now, and have come to a point where I can code just about anything using it. Next year I'll be out of high school and into University, but there's a problem: most (not all) of the courses are only offered in ASP.NET.

So my question is: should I be enhancing my skills in C# alongside my PHP skills so that I can use ASP.NET (I don't want to learn VB, as I already have some C# background) as well? Or is it better to just keep pushing forward with my stronger PHP skills?

I'm quite confused at this point, and would appreciate any advice from other web devs out there.

+4  A: 

It will definitely not hurt to learn ASP.NET. It's one of the best web development platforms, so you are not losing anything.

As for market value of PHP vs. ASP.NET it all depends on the region where you live or where you intend to work.

Developer Art
+1 Expanding your knowledge is always a good thing.
Randolph Potter
@Randolph Potter, not always but generally, sometimes focusing knowledge is better than expanding it.
Pop Catalin
ASP.NET being one of the best feels a bit disputed. At least if we're talking webforms.
svinto
Definitely not one of the worst.
Developer Art
+4  A: 

You need to improve the concepts behind programming (software engineering, algorythms, mathematics, design patterns, communication with the customers, project planning, etc...) if you really want a career here. The programming language is only the expression of your knowledge, and as such is not so crytical. I just switched from PHP to ASP.net and it was not so painful as you may think.

So, go to university and get as much software engineering courses as you can :)

Palantir
Alright... I shall look into taking more of those then. Thanks. :)
BraedenP
+6  A: 

Software development as a skill is largely independent of the languages used to accomplish its goals.

In other words, the skills you have learned in PHP (assuming you're doing PHP right and aren't one of the dime-a-dozen script kiddies) will translate to C# and ASP.NET smoothly. If they don't, you're doing something wrong.

The more languages you learn, the more you will notice the similarities between them. Acquiring guru-level knowledge of one language doesn't need to happen at the expense of learning others. There is no good software developer who only knows one language.

Welbog
I plan things out, use advised coding techniques, and I use OOP to organize and control the code itself. A couple years ago, probably, but I've been working on some bigger projects lately, and it's required me to sharpen up my skills, and also the way I do things.I've been working with my school and a few other clients on projects, and they're all running very smoothly at the moment, so I *think* I'm doing something right...
BraedenP
@lubos hasko: I didn't say it doesn't take years. I'm saying that learning one language shouldn't stop you from learning another. Do you disagree with that?
Welbog
+1 for language independence. Yes, every language has its own quirks but, for the most part, the concepts of OO programming are universal to OO languages. Same goes for functional programming. Learning multiple languages can also reinforce those concepts.
Rob Allen
sorry, I deleted my comment. you're right, you didn't say it.
lubos hasko
+9  A: 

Learning ASP.NET will statistically score you more income than PHP. I'm a PHP developer, who moonlighted as an ASP.NET developer for two years. Those two years generated more income than any PHP work I was doing at the time. That doesn't mean you cannot find a good-paying job doing PHP, I have.

If you are going to continue with PHP, I would suggest you abandon classic procedural code and migrate your focus to the MVC frameworks. They will greatly unite your experience with C#/.NET and PHP. When moving from PHP to .NET, the paradigm-shift alone can drive you nuts. You'll get frustrated that you can't include() your navigation bar, but instead have to declare a navigation object, etc. Using PHP in an more OO way will dilute your frustrations.

That being said. Learn both. Learn them thoroughly, and enjoy what you do. Use your experience with .NET to shape your habits with PHP, and vice-versa. This is web-development, it's fun, learn as much as you can!

Jonathan Sampson
I went from ASP classic to PHP to .Net. Mapping your skills to WebForms requires some ridiculous mental gymnastics. Maybe jumping into MVC will alleviate that.
Rob Allen
A: 

My suggestion is to familiarize yourself with ASP.NET / C# and to focus on core Web technologies like JavaScript/jQuery, HTML, and CSS. Always keep your knowledge / skills up to date. PHP and ASP.NET are both in demand today but that won't always be the case.

Your level of expertise with a given language won't me squat in the job market unless you have working experience - an open source project or maybe a job with the university would certainly serve as a starting point.

And the degree certainly helps - I've heard from plenty of talented/experienced professionals who are denied opportunities because they don't have a degree.

Mayo
+7  A: 

1) It does not hurt to learn ASP.NET. I'm unsure of its qualities, not being personally familiar, but as per previous comment it seems to be good - but regardless, knowing >1 platform/technology is good for your career, both in terms of learning new stuff/concepts, and in terms of looking good on a resume, and in terms of positions you will qualify for.

Pure PHP development positions are not as widespread as positions requiring variety of skills.

2) As for what to learn for a career in web developmernt in college, I would recommend the following (despite your question not actually asking for this :) :

Theory:

  • Usual CompSci fare (Algorithms, discreet math, logic)
  • User Interface Design class (essential to be a great webdev)
  • Databases class (any good web developer needs to know/understand how to deal with backend, and many web dev jobs may include designing databases and writing queries).

Practice (in class or out of it)

  • Java and JSP
  • Javascript, both raw language and main frameworks such as JQuery and YUI
  • AJAX
  • Database practice (different than what you learn in theory DB class)
DVK
Well PHP isn't the only language I know... My specialties are the usual combination that goes along with PHP... PHP, JS, and MySQL.I use AJAX extensively in my web apps, and nearly all of them consist and rely on databases.jQuery is also extensively used in my pages, simply to make things easier.
BraedenP
Add some "enterprise" DB, e.g. Sybase or Oracle. It'll open the field a lot wider than MySQL only. I know many shops in financial industry that do Perl/Sybase and servlets/JSP/Sybase.
DVK
Most definitely, but the syntax for queries in those DBs is relatively similar, so I can pick that up quite quickly. The organizational and management concepts transfer over from DB to DB, so I already have a lot of those skills built up as well.I will definitely learn ASP.NET, but I was basically wondering if I should start with it *before* university, and after your guys' advice, I decided that I will.
BraedenP
I'd put a note of caution that if the university courses are introductory then they may have you do things in ways you know aren't great but this is done as part of the course. A classic example being the calculation of a factorial through recursion. http://compsci.ca/blog/the-disadvantages-of-high-school-programming/ has some other tidbits that may be of interest to your case where you know some programming going into university and may or may not have an advantage.
JB King
A: 

a lot of common sense + knowledge of the technologies you use + knowledge of the latest trends

Natrium
A: 

As a self taught web developer. I was in the same situation as you were. I started young and developed during high school but instead of going to college, I got my PHP Certification from Zend and have not looked back. I have studied ASP.NET,C#, and done some programming with it. It never hurts to know other languages; this gives you a wider scope and allows you to use the best language for what you are doing. I have just come to find I prefer PHP and have gotten a lot of job offers because of my PHP Certification; plus sense I have done PHP send 3.0.5; companies like I can easily migrate code. Plus it did not hurt I was the second person in my state to get it.

I hope this helps you get some direction in college and best of luck with your career.

Also, the languages you know will dictate where you live.

David
A: 

I don't want to learn VB, as I already have some C# background

It sounds like you've already picked up an attitude towards VB. I would suggest learning VB in addition to refining your C#, knowing both will make you more marketable, some shops have lots of people working in VB, and there really is nothing wrong with the language. One big thing about both those languages is that the .NET framework is really what you need to learn, you can apply that knowledge amongst many languages. So if you learn .NET, it really doesn't matter what language you use to program against it.

Can't stress enough to learn OO. I was a PHP dev for several years, and found myself with lots of bad habits that I didn't know where bad until I learned a couple more languages.

zimmer62
A: 

Getting to grips with the .NET framework would be advantageous, but more important would be to get a good knowledge of Object Oriented Programming and the techniques involved, then you can apply these principles to any of the OO languages out there.