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?
closed as off-topic by Ixrec, durron597, user40980, Dan Pichelman, gnat Jun 1 '15 at 17:02
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions seeking career or education advice are off topic here. They are only meaningful to the asker and do not generate lasting value for the broader community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Ixrec, durron597, Community, Dan Pichelman, gnat
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.
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).
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.
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
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?