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, no registration required.

Right now I have been working on language X for the last 2 years. I am very good at it, but language X is not popular so jobs are not readily available for it. Consequently, I am thinking to change from language X to language Y. But that means I'll be a fresher again. Is making the change worth it? Even if it means losing all the experience I have in the other language?

share|improve this question
2  
I've edited the question to make it read a little better. Hope that's OK. –  Gary Rowe Dec 11 '10 at 23:16
    
@Gray Thank you so much.. –  krunal shah Dec 11 '10 at 23:35
1  
You really need to dispense with the idea that you'll lose experience, that's frankly ridiculous. If you find a route on a map, and then later figure another one, do you suddenly forget how to travel the old route? Of course not. It's a bit like saying if you learn to drive a car you'll forget how to ride a bike. Snap out of it. –  Slomojo Nov 7 '11 at 4:03
add comment

5 Answers 5

up vote 19 down vote accepted

You make the false assumption that the experience you have on language x will be lost. Ever heard of the learn a new language a year motto? It is based around the idea that learning new languages will result in useful experiences you can bring back to your "primary" (let's call it) language.

Your second false assumption, which results from the first one, is that you are very good at language x. Are you? Ever heard of the humble programmer? Question yourself. I suggest that knowing how to program is not simply knowing a language's syntax or some of its libraries. If you knew language x really well, that would mean you would understand its core concepts and therefore be able to reuse that understanding with language y.

After carefully reasoning about this, you may realize you need to start at the beginning of understanding programming itself. In which case I recommend reading Structure and Interpretation of Computer Programs.

Ever heard of using the right tool for the job? Why do you assume that you have to choose language x or language y, instead of using them as tools under your belt.

C'mon, if you want to be a good programmer, be serious about it.

share|improve this answer
2  
+1; harsh, but true. –  greyfade Dec 11 '10 at 23:33
2  
@greyfade: Well, it's a harsh step from unconscious incompetence to conscious incompetence. But definitely a necessary one. –  val Dec 11 '10 at 23:50
1  
To extend on this point, knowing programming goes beyond understanding the syntax and idiosyncrasies of a particular language. The programming mindset is developed over time, and changing the language every so often actually forces your mind to 'wake from slumber' and make the exercise of learning. You'll find new ways of solving old problems, and be a better programmer for it. –  xorbyte Dec 12 '10 at 3:03
1  
I like to call it cross-pollination or cross-fertilization, and it tends not to just be limited to learning programming languages, you get useful/interesting crossover between many different disciplines. But without doubt, learning other programming languages will give you benefits in all the languages you know and additionally to your general programming perspective and techniques. –  Slomojo Nov 7 '11 at 4:01
add comment

I don't understand what's the problem. You will still be proficient in it while learning a new language (which can only be taken as an advantage).

share|improve this answer
add comment

You won't lose "all the experience". Don't be afraid to dive into more languages. Sure, libraries, idioms, etc. will be different -- don't get me wrong, you will have to learn these and that will take more longer than a few minutes -- but unless you're out to learn a "vastly different from everything else" language (say, Haskell), many of the concepts that take beginners days to grok and weeks or months to get comfortable with are the same in the new language and the language(s) you already know. Flow control, algorithms, data strucutres, etc. are 95% language-agnostic. You won't be writing great Y programs after two days, but it won't take anywhere as long as becoming a decent programmer in the first place. On the other hand, unless X and Y are extremely similar (say, Java and C# (ignoring all the neat non-OO stuff added to C# during the last versions)), you get to learn new language-agnostic concepts that can be used in other languages as well. For example, learning Haskell made me get used to recursion and recursive data structures (read: trees) - and now I'm processing XML (trees!) with Python.

Even if there were tons of great jobs for language X, you should learn more languages. As they say, when all you have is a hammer, everything looks like a nail. I.e. know many tools so you know which one is right for the job.

share|improve this answer
add comment

I'm going to assume you meant career. A carrier is either someone who carries things(e.g., a mule), or a phone company... A good career move would be to spruce up your English...anyway...

Typically learning more programming languages helps you think in principles instead of language.

It's better to be a software engineer than a "X programmer". Labor-wise, the statistics indicate "X Programmer" positions are decreasing and are less well paid than software engineers.

X programmers have a reputation for being bad outside of X.

For a given value of X

share|improve this answer
add comment

I'd question why you are taking this perspective. Learning a new language and advancing how things are done is par for the course, in my opinion. Your experience with language X can still be quite valuable as some of what you learned is probably transferable as things like problem solving may still use some of the same steps,e.g. figuring out what is cause of the issue and knowing how to use various resources around you, which can still be worth something.

While there may be a change in salary, it isn't the end of the world is it?

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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