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.

One of the joys of programming is having the opportunity to always learn new things. However, as I'm becoming more senior, I'm noticing that its easy when you get 5-10 years of primarily C++ (or whatever) experience to find that most job opportunities available to you are C++ jobs. How does one break this mold? What strategies should one employ to jump the rails so-to-speak to a different area when one has spent a good bit of their profession career in one specific environment? Lower salary expectations? Find entry level jobs? Is that even an option when one already has a bunch of experience?

I have a feeling one answer will be to do a lot of self-study. Personal projects is definitely something that is on my resume. However I fear employers want to see the sustained, professional experience. Will the half-dozen python/C#/whatever projects I've done in my own time matter?

share|improve this question

9 Answers 9

up vote 21 down vote accepted

Contributing to open source software could be a good solution. That way you can gain experience in the new language in an quasi professional environment. At the end of the day you will also have something more substantial to show for you work than the random python tool you threw together with a couple weekends worth of work. Depending on the project you choose and your work, you might also come away with some valuable references who could speak on your behalf.

share|improve this answer
Hmmm ... I think a lot of professional open source developers would object to a blanket characterisation of their projects as "quasi-professional". –  Stephen C Oct 13 '11 at 3:21

I think one way forward is to find an employer who is using multiple technologies on the same project- which if you have C or C++ is quite plausible because that's often how bottlenecks are solved in scripting languages. That would make your existing skill set an asset but also mean that you would have the chance to diversify more in future.

If you explained your situation in an interview I think most employers would be fine with that.

share|improve this answer
I wish I could also accept this answer, as I think its equally valid. –  Doug T. Oct 22 '10 at 15:06

You could look at more senior roles - not necessarily management ones - where there is less emphasis on coding skills more on design and architecture.

These skills are to a large extent transferable between languages and environments, so your lack of experience in the new language shouldn't be such a great handicap.

If you can show familiarity with the language - which is where open source or your own project come in - then this will count in your favour too.

share|improve this answer

Some employers want to see proven ability with their language/domain.

Others are more interested in proven ability to think, work with large projects, adapt to changing language/environment/application requirements - the current language that you know or don't know isn't so important, since if you meet their general criteria, you can learn enough to get started in a few weeks. These are the employers that you are looking for.

Personal projects, involvement on online forums, open source, along with good career track record and references (not to mention a blog) are all positive contributing factors.

share|improve this answer

If you can do a worthwhile project in a new language, it will show competence. I recommend not to use multiple languages. It decreases efficiency. I was great in C++ several years ago but have C# since then.. if I were to keep C++ in my head it would just slow me down.

share|improve this answer
Curtis, I think you would find the opposite. Knowing a second language expands your horizons in such a way that it will make you better at your primary language. And a third will make you even better. The concepts start to overlap some, and you understand those concepts more thoroughly, so it's not like you run out of RAM. Yes, you might confuse some syntax at times, but the payoff of knowing new techniques and approaches from other langs that you can apply in this lang more than pays for it. (At least, that's how it works for me). –  Charlie Flowers Nov 23 '12 at 20:37

The best employers tend to be OK with you switching languages. Ultimately they want good people, and it's worth it to have a bit of downtime while someone ramps up to speed as long as they know they're ultimately getting good value for their money. So if I had to give specific tips:

  • Don't go for contract positions. They aren't interested in growing you.
  • It helps if you've been stable. If you jump every year then you're risky.
  • Apply for the jobs anyway. Make it clear that you don't know the language but learn fast

Companies do hire people that have never used their primarily language. I was hired for .NET work with only ASP experience back in the day, and just recently I moved to a place that only uses Java/C++ and my only recent primary experience is in C#.

share|improve this answer

If you have 5-10 years of C++ hands-on experience, switching to most other languages widely used in the industry should be a breeze.

share|improve this answer

Learn a new language yourself and then put it on your resume at the same rank as your first language. If you can't easily jump between languages of the same paradigm, you shouldn't call yourself a senior programmer.

share|improve this answer

If you've done a half-dozen personal projects in these other languages, write an article about each of them (CodeProject is a good place to publish these, if you don't have a blog), release a product (for cheap or free), put them on your resume, and apply. Learning new languages is easy, it's the frameworks and environment that have a significant learning curve. Published works (software, articles) demonstrates facility.

With these projects to reference, it will be much more difficult to question your qualifications. So go ahead and apply for the job you want!

share|improve this answer

Your Answer


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.