Implications of Specialization
The most obvious benefit of specialization is the potential of becoming an expert in the technology. If you become an expert, you can command higher pay and possibly get cooler projects to work on. It does take some time to get to the expert level, but even internal to your company you can become the “resident expert”. The “resident expert” is the person who knows the most about the technology and most likely to answer any questions. Specialization is also very helpful in the consulting field. When looking for consultants, many companies want to get the most experience for their dollar. So, they look for experts in specific technologies to fill roles on their projects. You also tend to learn things that some people will never need to know. If you like knowing the more esoteric aspects of a technology, then definitely become an expert.
Interviewing as a specialist is typically fairly easy. You are an expert in a technology, so you will not be asked questions on technologies that are not your focus. This is mostly a benefit, but in some environments especially more corporate environments, it can be a disadvantage. Product companies need specialists as they have very specific needs. Corporate environments need people who are good at multiple things. Even if you are mostly a JEE developer, you will still need to write some web pages because you are writing a web application. One major issue with specialization is knowing that one day your skills will be outdated. At that point you need to become an expert in some other technology.
Implications of Generalization
Depending on the position being pursued, interviewing is a mixed experience. Many companies will be looking for a JEE specialist, and you will flounder with some of the questions asked. In a company that is writing web applications, you might look like a rock star because there are not any technically detailed questions. The other major benefit to being a generalist is that you are already always learning. You need to constantly evaluate a technology to see if it fits with the technologies you are already using. This is extremely helpful if you ever change jobs.
Generalize or Specialize?
The question is really a personal preference. In my case, I need to generalize as I do not care as much about some of the detail needed to become a JEE expert. I would rather be able to write an entire web application in a short amount of time. Some people love the details, and I have some consulting friends who are becoming experts in a technology. When I need this level of knowledge they will be getting a call. One caveat to all of this is that the “benefits” depend on the environment you are currently in. I mentioned consulting in the specialization section, as many consultants do become specialists. There are many consulting firms that use more generalists because of the benefits to broad knowledge. Again, it is a matter of preference. More importantly, find out what you want to do and pursue it.
4 thoughts on “Should You Specialize in a Technology?”
If anyone in my family read that sentence, they’d think I was writing in a foreign language.
My brothers are only 2 and 4 years my junior, but neither are really computer literate beyond pc games and casual internet use. My parents are getting there with the internet, but it’s a struggle. And now my grandmother wants me to set her up on the internet. That’ll be fun.
Groovy is a dynamic language that runs in the JVM. Some call it a scripting language as well, but I am not sure. The idea is that it is similar to Ruby in some respects but has a syntax very similar to Java.
Regarding what your family thinks, my wife feels the same way. If I am reading a technical book, she just says that it looks like gibberish. Don’t get me started on being the family computer consultant! That is probably a full article itself.
The worst is my mother in law. She installs 300 programs in her toolbar and system tray and wonders why her computer that cost $2500 screeches to a halt. If I use her computer when we are visiting at the holidays, any problem that happens to it at any point thereafter is blamed on me.
The problem with specializing in one thing is that you become less needed. If you know a number of different languages / technologies you’ll always be needed. Lets say you specialize in something, and in 10 years that becomes obsolete. You now need to spend the time specializing in something else.
I prefer (and a number of employers I’ve talked to agree), that being a general developer is much better.
Comments are closed.