I have always worked on websphere commerce..and recently got an offer to work in a plain J2EE project. I am not sure if I should go ahead or not. Which is better in the long term?? staying in the technology you always worked on and mastering it or swapping technologies n languages every now and then. P.S. I have been around in this industry for just around 3 yrs..
views:
423answers:
10Learning numerous different technologies gives you more perspective on tech in general. If you only ever work in one language, everything you do will be focused on that one narrow part of the world. Learning different things can only help.
It depends.
If you are a young professional, you should stay ambivalent and flexible.
If you are already working for 30+ years, you may not need this flexibility anymore.
Learning new things is ALWAYS good, and diversifying your skillset can only help long-term. I'm not sure that switching from Websphere to plain J2EE really counts as "diversifying", but neither of those will be around forever, and it'll be nice ot be able to think out of the box when the time comes.
Staying on the same project forever can make your brain rot, not to mention make your job monotonous. Mix it up and switch!
They are offering you the chance to get experience - go for it. Who knows what the next job will want, even if it doesn't use j2ee you will learn new ways of doing something.
You are better off learning multiple technologies.
I'll even go out on a limb and say you cannot really master a given technology without trying others. If you only ever work within a given realm of possible expression, you will tend to limit the way you think about engineering problems to that realm.
Trying out other possible ways of expression will help you understand the limitations of the first set, and vice versa.
It is best for experience to be "T-shaped", meaning you should know a little bit about everything, but you have deep knowledge of some particular thing. The wide range of knowledge gives you the ability to do almost anything competently, but the deep knowledge is what makes you different from the millions of other developers who also know a little bit about everything.
I wouldn't hire a programmer who hasn't mastered something. Even if that thing has nothing to do with the position I'm hiring for, I want to know that the person is capable of delving deep.
But don't stake your career on any one technology. At best, you'll end up doing nothing but legacy maintenance, and at worst, you will have a skill nobody values.
I might interject that websphere and J2EE aren't very different, really, but what do I know?
In the long run you learn multiple things and keep learning, you simply don't have a choice (well unless you go into management, but we'll assume you like being a coder). I started on Fortran 77 and spent time angling to learn the shiny new C language. And now X years later I'm making my living on PHP and Python and angling find a project I can use Ruby for.
If you love coding it almost goes without saying you're a neophile anyway - how can you resist wanting to get your hands on new shiny things?
Looking at the answers I think I will accept the offer and move on. But as cristopher told about the ideal experience being "T-shaped" I think i should be doing something which has some relation to whatever I have been working on (For eg. ecommerce or retail since WCS is an ecommerce solution used mostly by B2C sites) or come back and work in the old domain once in a while...in short not to lose touch of my domain expertise
With any particular J2EE-dependent technology and "plain old" J2EE technologies, you're basically learning different positions in the same sport. In the specific case of your specific question, I would definitely branch out. Whether you want to learn a totally different technology -- for instance, learning to write apps for the iPhone -- is a different question. That would depend more on your personal preferences.