Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Possible Duplicate:
Do Diversified Skills Foster or Hinder Specialization?

I am 27 years old and I've been working professionally as a developer for about 4 or 5 years now. I've worked mostly on Web based projects using either PHP or ASP.NET. Recently, I've been doing mobile development at work developing apps for iOS, Android and BlackBerry.

I've been bouncing back and forth between languages and technologies, but I feel like it would be hard to present myself to an employer as an expert or demigod in a particular thing. I'm sort of a jack-of-all trades kind of guy.

Lately, I've been thinking about specializing in LAMP (CodeIgniter as a framework) for the Web side of things and Android and BlackBerry on the Mobile side.

My question is should I be specializing at all? Or should I try to adopt which ever technology the company I'm working with takes on?

share|improve this question

migrated from stackoverflow.com Dec 20 '11 at 22:00

This question came from our site for professional and enthusiast programmers.

marked as duplicate by Mark Trapp Dec 20 '11 at 22:55

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

So you are asking a bunch of complete strangers what you should do with your life? I'm just sayin'.... –  Muad'Dib Dec 20 '11 at 21:53

3 Answers 3

Jack-of-all: You would have wide spread opportunity in many cities and getting a job in any one company of your choice is not difficult. Since you are not a specialist in any technology, your pay would be mediocre. Any topic, any one speaks, you will have something to talk about as you are jack-of-all. Without any travel, you can get a job in any city, may be where you live.

Specialist: If you have specialized in a niche area, your demand in that area (and only in that area) will be high. Your pay rate will go very high too, since there would be less competition. Your opportunity to get work in any one given company may not be very good, as what are the chances that they would need your specialized service? You may have to travel a lot to meet the specialized needs of your customer - but for good money.

Read: 80/20 by Richard Koch.

share|improve this answer

Do what you like doing.

If that means becoming a LAMP wizard, do it. If you'd rather be agile and switch languages a lot, do that. Both types are employable, but the latter can achieve the former with experience. You've got time.

share|improve this answer

My experience is that headhunters tend to pay an unreasonable amount of attention to previous experience. So, for example, someone may know C#, and they won't consider them for a Java job, even though by virtue of knowing C# one can definitely do Java, after a bit of acclimation. (Okay, the example might be a bit extreme, but you get my point.) Perhaps this happens because headhunters do not know the relationships between the different technologies, so it is mostly just keywords to them; or perhaps they do not understand that time wasted acclimating an engineer in a new environment is not the issue which makes or breaks projects or products; the issue is intelligence, (or lack thereof,) and that has nothing to do with the specific tools that the engineer worked with in the past. Or perhaps it does not suit them to grant anyone the ability to do anything, because then they would be admitting that their profession is kind of useless. Anyway, the result of this situation is that you will be more employable in the future if you are a jack-of-all-trades than if you specialize in something, because if you specialize then headhunters will only be considering you for jobs that pertain to the specific subject that you specialized on.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.