5. October 2010 15:47
I have been interviewing for a number of different positions in the company I work for and have begin to notice a number of core differences between “average” PHP and ASP.NET developers.
The positions in most cases are similar: front end web developer. In a nutshell, the following are some of my “hasty generalizations” from interviewing multiple developers from both camps.
- PHP developers tend to understand the basics of SEO (importance of URL structure, clean XHTML, importance of H1, H2…, meta description and keywords, etc).
- PHP developers understand how the Web in general works, they know what REST means and they know why REST is used.
- PHP developers aren’t too interested software patterns, architecture or software engineering in general…any good means to an end is justification enough.
- When you ask them about AJAX they say things like “JSON”, “DOM”, “$.ajax()”, and “XHR”
- Can hand code HTML
- Will tolerate embedded SQL in their pages
- Don’t unit test
- ASP.NET developers say that the know CSS, but they usually really don’t. The better one’s know that tables are evil and should be avoided at all costs, however some do not. Basically, CSS and HTML are the domain of the Web designer.
- ASP.NET Developers tend to not understand the basics of SEO; most ASP.NET developers work on intranet style projects or Web applications, not Web sites so they lack this important skill set.
- ASP.NET developers think that REST is a “buzzword” and therefore must gone on the resume, but they really don’t understand what it means: “Well, I don’t really know the theory, but I know how to Google really well!”.
- ASP.NET developers tend to know the basics of Agile processes (but often confuse it with any ad-hoc development) and software engineering in general. They tend to have a superficial understanding of patterns, but aren’t hell bent on the practice.
- When you ask them about AJAX they say “AJAX Toolkit” and “Update Panel”
- Think that an HTML is the result of dragging something from your toolbox of their IDE.
- Know Linq2Sql and have heard of the Entity Framework and NHibernate. In general understand the importance of layering applications.
- Don’t unit test….it takes too much time and is too hard, but they “have read about it” and agree it would be a good thing given they had the time.
Note that this does not apply to all developers; there are definitely some diamonds in the rough, but those are the exception. Also, note that if you are reading this you are probably the exception in that most developers do not read blogs; they reach into their bag of Google for answers and then find the search result that allows them to copy and paste the solution.