views:

170

answers:

8

Lately I've been hearing many ideas that a good developer should venture into multiple technologies to keep being of value on the currently bad looking job market.

Although I in general agree to that I fail to see how it is possible.

Note: I do not talk about adjacent things. For example, for .NET world that would be WinForms, ASP.NET WebForms, maybe MVC, then HTML/CSS and all around .NET. That's conceivable in principle.

But what I really miss is that when someone says that we should be enaged both in Java and .NET development at the same time. How can it be possible to master both of them, be familiar with their entire ecosystems and keep oneself on track with both of them.

It takes a great deal of time to learn, practice, experiment, read blogs and forums, try out something on your own even with one technology. How can we do this with both?

I can certainly imagine consulting folks touching ten things at once, quickly learning and hacking something then leaving whatever came out in the hand of the customer and then running far far away to the next adventure. But these folks often do not care about what they do and how they do it. For them, it's the wide spectrum of projects, techologies, people, ultimately just fun. And it's only a job.

What about those who love what they do, have a passion for technology and wish to excel in one particular domain. Is it possible to live in both worlds? Like today I read all update in favourite blogs about .NET, MVS, jQuery etc. Tomorrow evening I learn what's new about Java, JSF, Eclipse etc. The day after that I go again on MS-controlled websites. And so on.

Is it possible to live double lives? Does it make sense at all?

What's your thoughts and experiences?

Especially would like to hear from those with a power to hire. Do you really expect to hire a good .NET guy only to tell him the next month "We will now be doing a project in JSP. Learn it quickly", the next month something like "We conceived a great project in PHP with out customers. Learn it quickly by the next Monday.".

Wouldn't a passionate .NET guy just become frustrated and leave?

+1  A: 

Dunno, ask Jon Skeet :)

EDIT Downvoted, but this was a semi-serious joke, he has gold badges for Java and C#. Works with Java, and is author of C# in Depth.

Benjol
A: 

I don't think it is possible to be all things to everyone. Not if you want any depth. But I also think it's important to avoid confusing your goals and needs with your employer's goals and needs. Employers will do their best to get you to confuse these because it's a good way to get more out of you, but when the chips are down very few of them will stand by you. I say this out of long sad experience. Save your passion for your own projects.

Ironically, being dispassionate often produces better results, because you make better decisions. And you're much more likely to go home at five, so you'll get enough sleep and you'll be clearer in the morning.

Peter Wone
+3  A: 

I think trying juggle keep active in 2 similar technologies is not easy but more importantly it's mostly useless unless you are going to be in a project where you need to combine a Java and .NET project.

It'd be a nice idea to stay good in "Cryptography" and ".NET" or "Networking in General" and "Java" or "Ruby" and "Usability" but not "Java" and ".NET" or "ASP" and "PHP". That's sort of pointless most of the time.

dr. evil
A: 

Hard to tell. If you are too focused on one stack, you will (no doubt) become narrow-minded. On the other side, it becomes confusing to work with similar technologies like Java and C# at the same time. Chances are, you won't be able to master any. I'd propose to switch technologies every 2-3 years; this will also allow you to catch up with the features of the stack. (People who always work with the same technology will likely always use it as they did in version 1.0, no matter which new features have arrived in the meantime)

ammoQ
+1  A: 

Focus on one stack, but learn some about multiple different technologies so you can decide on whats the best technology for the task at hand.

(Then, when you decide the "right tech" is not "your tech", let someone who knows the "right tech" do the job.)

Arjan Einbu
A: 

Focus mainly on one area, what ever is currently paying the bills. Then take the time to learn another area in some depth. For example focus on .net if that’s what your job is but make sure you understand the concepts and have some familiarity with Java, possibly with a non trivial personal project. Keep up on what other technologies are available, for example if you focus on Java and .net know that PHP and Ruby exist. A good way to learn the basic theory behind a lot of technologies and architecture concepts is to listen to the Software Engineering Radiopodcast.

Jared
A: 

Of course it's possible to be very good with multiple languages and development stacks. Many people are. It'll also probably make you a better programmer, since you'll have more exposure to different interesting ways of doing things.

As to whether you should do it, who knows. Judging by your question, you seem to be saying that you can't do it, in which case you probably shouldn't do it.

I think your anecdote at the end is strange. I don't think I am alone in saying that a job where I got to use different development stacks on different projects would provide some interesting variety. The only frustration would be if my boss had unrealistic expectations about how much I could get done and how quickly.

mquander
A: 

I think there's plenty of technologies (and jobs) in the .Net world such that I stay busy enough without even thinking about Java. The 'adjacent' technologies you wanted to disregard really should be your focus on growth, as you can leverage them in the context that you use your existing skills.

Look at job descriptions, do you ever something where they want someone who is a strong PHP and ASP.NET developer? Not very much. Do you often see listings where they want ASP.NET+MSSQL or PHP+MySQL? Yep, those combinations occur all the time. That will tell you what employers are looking for.

Frank Schwieterman