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.

I have a few years worth of C++ professional experience under my belt. Recently, I decided to look for a new job, and found out that find a C++ job is not as easy as it used to be.

Nearly all jobs posting and head hunters are in the market for Java/C# developers.
Event though I have a some experience with Java, it's not enough to make me interesting to any of the companies I applied for.

I've decided that after I get a new job (C++ as it appears) I must get my hands dirty with Java or C# .

Currently, my only possible plan is to either join or start my own open source project. But will it be enough? Can such a project replace 2-3 years of working in a commercial company?

Is there another way to make the transition?

share|improve this question

migrated from stackoverflow.com May 21 '11 at 6:52

This question came from our site for professional and enthusiast programmers.

4 Answers 4

You have to remember that being a programmer isn't about learning any specific language; if you pigeon hole yourself into a specific technology, chances are that eventually you will be out of the job or every few years you will become stressed out because you have to learn something new. Remember that the core concepts (OOP, data structures/algos, scripting vs compiled languages, database theory, etc) exist outside of the context of any programming language you want to apply it - just like the concept that 1 + 1 = 2 exists regardless of the fact that you speak English or French. So accept that you will always have to learn something new and approach this with an open mind and it will make your life as a programmer a lot easier.

Also, you might be looking at things in the wrong light. I think its a fair argument that someone with solid C++ experience would be just as strong of a candidate as a programmer with solid C#/Java experience. While you may not be familiar with all of the syntax and common tools/libraries to each environment, having experience with C++ means you've been dealing with memory management a lot more than someone used to a managed environment and so while someone used to programming in a strictly managed environment might not always think about what the garbage collector is doing or how the vtable works in the context of dynamic binding, having experience with pointers, destructors and virtual methods allows you to understand what is going on "under the hood" inside of the managed C# or Java environments.

I guess what I'm trying to say is that while working on open source projects would be a good use of your time, I wouldn't worry too much about not knowing C#/Java with respect to getting a job. By all means, explore and learn as much as you can; but any company willing to pass up a programmer with solid C++ experience simply because they don't have C#/Java experience really isn't managing their technical resources properly and probably isn't a good place for you to be.

share|improve this answer
That all sounds great to all of us developers out there in theory, but the reality is that the far majority of companies aren't managing their technical resources properly according to your definition. While I agree with some of your statements, the fact is companies don't even want people with experience in Java, they want experience in Spring, Hibernate, JEE, WebSphere and whatever other technologies they actually use. They don't want to teach all of these things to future employees (exception for junior positions) and in most cases, they don't need to. –  Robin Nov 19 '10 at 19:26

Personally, if I had a candidate with strong C++ experience, and a fairly active and successful Java based open source project, I would have no fear hiring him for Java development...

share|improve this answer

The first thing I advice is to read Java Developer Exam Guide, 2nd edition. In a week it will give you nearly all basic knowledge about java.

After it the participating in an opensource project will give you the great experience and the answers you will be questioned while examination for a new work.

Just remember that the world of java consists of a lot of technology and you would better choice what area you want to work with: web, standalone applications, mobile development or something else.

share|improve this answer

I think for starters, joining an open source project will be more beneficial than starting your own. Reading/understanding how others write code will give you the greatest educational liftoff at the moment.

share|improve this answer

Your Answer


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