The question is how to succeed to escape from the job you are very good at.
I worked 12 years with the same language for 2 different companies.
The easiest for me is to search another company which is using that same language - again. But, what if you want to work in another environment? Even just another language ?
I find it very difficult to be "credible" for this new job where it is asked to have a strong experience in a language, that I never worked with on a professional scale. What would be one path to be able to switch ?
Any company that doesn't understand that a language is simply a tool for getting the job done isn't worth working for IMO. If they cannot see the value of experience programming, which goes so far beyond simply what language you use, are they really that great a company? The principles, experiences, practices you pick up are worth much more than simply knowing some syntax.
Languages are just a tool. The vast majority of a programmers core skills are language agnostic. I'd focus on those skills.
The clear-cut simple truth is that you shouldn't take a job you aren't qualified for. If you don't feel qualified, don't accept the position, for your own good and the good of the employer. If you've got 12 years in a language, seek out employment for that. If you want to explore other options, start to dabble in new technologies off-the-clock, and when you feel comfortable enough with them, either attempt to work them into your current environment, or seek employment where they are used.
Apparently most of those "strong experience in langauge X" statements are put there by HR people who know nothing about programming. Any decent programmer can pick up a new language in a paradigm that he/she is familiar with pretty quickly. If you use C++, for example, learning Java or C# or D or Python (enough to get the job done, not necessarily guru-level knowledge) should be a breeze. Unless I was bringing in a consultant to hit the ground running on a very short term basis, I would always hire for language agnostic skills rather than knowledge of a specific platform, language, framework, etc.
If you want to work in another environment or language then you may find yourself coming down a little on the career ladder,e.g. going from a Senior developer to an intermediate or junior developer. That's just how I'd see handling that. It isn't the end of the world if there are major environment changes that help improve your overall health, which includes physical and mental here.
As for credibility, there is the question of what level of coding is needed in a new position. If you are going to be mentoring intermediate developers that are expected to know the language, then there may be other knowledge you are expected to use in the position,e.g. knowing how to pair-program, run a Scrum, architect a solution, which design patterns may make sense, etc.
Last but not least is that in most large companies, chances are that the environment will be a mixed one and so it isn't like there is just one language that is used everywhere. Where I work we can run into any of JavaScript, C#, VBScript, or VB6 for the usual suspects but there is also MS-SQL Server and Oracle back-end parts that may give one the ability to pick up more of one if they want to use that skill possibly.
In my spare time I work on personal projects, trying new technologies. Hence I used C++ for 4 years before anyone paid me to code in it, and C# for two years. Look for positions that use both technologies --- They'll hire you to work on the legacy code, but if you demostrate you are good, you move to the new stuff soon enough.
I did exactly that. I spent a few years doing COM+ (VB) and the like. Then got a job using C# of which I minimal experience. It was my platform agnostic background and willingness to pick up any language required that they hired me for, not a particular language skill.
Their response to my saying 'Just to be clear, I don't know C#' was 'Oh, don't worry, you'll soon pick it up'. Which I did.
So, yes I'm lucky to find an employer who sees things as they should be, but it proves they do exist!
Hi Pierre,
You have a strong programming experience, and it has a great value.
I suggest you to do not be afraid of a change.
We love and admire people that is able to implement and create solutions using design patterns in a elegant and original new way. systems that reflect experiences from far away lands, like the VB, COBOL, ANSI C meadows. this could be very challenging you -in the good way ; )
I'm sure you will come with fresh solutions, that nobody else had even imagined -trust me.
So Yes you could : )
You do not specifically state whether you are currently employed.
If you are unemployed and you've bills to pay, you may have fewer choices than if you currently have a reasonably secure position.
Assuming you are currently employed, do you really need to leave your position? If there are features of your current position that you would like to change, have you tried working with your manager(s)? There's an old saying, sometimes true: "Better the devil that you know than the devil that you do not know".
So, it may be time for self assessment for you ... perhaps you'll already done that.
Next, is it the job you want to change or would a change in career bring you more happiness? You only live once. You may want to explore other career options.
As for languages, the more you know, the better. I've been programming for 40+ years and still consider myself a beginner in many ways. Our tools evolve constantly. When I started, c# did not exist. Fortunately there are similarites to languages I already knew. However, there are also differences, some subtle, some less subtle.
If you're going to pick a new language to make yourself more employable, you might want to look at what employers want. Another approach is to attempt to get ahead of the pack by adopting a new language early, for example, F# from Microsoft.
Unfortunately, language alone is not enough. Language is actual a very small part of a much bigger picture. For example, to become a web programmer using ASP.NET MVC, depending on your current background, in additon to learning c# (or vb), you may also need to learn HTML, XML, CSS, SQL, et cetera.
As for finding a new job, the reality is that know who often means as much or more than know how.
Whatever direction you take, it appears that you have many challenges ahead of you. I suggest that you embrace ongoing learning to get you to your destination. Good Luck!
Regards,
Gerry (Lowry)
We are not programmers because we know how to code in a given languaje. We are programmers because we know how to solve problems.
You can use this knowledge in every aspect in your life.
On way to do it is to work in a company that uses the language you are experienced in and where you would like to go. It is easier to show your value once in the door.
Additionally your domain knowledge is usually at least as important as language skills. Finance industry is classic example.
If you managed to become a guru once, there's no reason you could do it again.
Of course either you accept a job with a lower level of responsibilities to learn the langage and then quickly move up using your previous experiences, or you start learning this new langage on your own.
You can't really sell yourself as a "guru" if you don't know the langage or ways of working with it. But in the end langages come and go, what counts is the capacity to adapt, and that's what you'll need to explain to potential employers.
IMHO tech jobs are more about critical thought than specific languages. Sure there are tricks to learn about any given language that you can only learn over time and, in that light, some might see you as being 'behind' others. But that's really just a matter of semantics. It's less important that you know how to do foo in C++ than that you understand that foo needs to happen and have problem solving skills to achieve that end.
There are far too many languages/tools in this industry for you to be proficient at everything. If you love being challenged and aren't afraid of learning you will always succeed even if success means learning your limitations.
There are generally two kinds of programmers:
The vast majority of programmers I have met in my 20+ years writing code falls into category number 1. They are people I would never hire. They are the programing equivalent of guitar players who have learned Stairway to Heaven, but would never ever be able to just improvise a few notes that sound good.
People in the second category tend to be productive with any new programming language you throw at them in a few days. They are the programmers equivalent of guitar players who can jam along.
Just ask yourself, are yo a 1, or a 2? If the answer is 2, just go for it!