I was working as a Java Developer before and I have now finished my contract with my previous employer. But now, as I am looking for a new job, a lot of opportunities out there seem to not include Java as much as other languages. I really like Java and I have been using it since college. But it seems like I have to learn a new language so I can have a new job.

Learn as many languages as you can. A one trick pony cannot be a good programmer.
–
SK-logicJan 5 '12 at 10:39

3

Some employers don't particularly care if you have little to no experience with a language, as long as you can prove that you are a smart developer who can design and implement quality software solutions. This is how I had gotten a job in a .NET shop with most of my experience being Java, and they gave me a few months and learning materials to get caught up in C# and Visual Studio.
–
maple_shaft♦Jan 5 '12 at 11:54

@maple_shaft - have not found a company as such yet
–
Imran Omar BukhshJan 5 '12 at 12:25

1

@ImranOmarBukhsh Maybe this is much more common in USA. Developers are a lot more expensive in this country because of the cost of living, so many companies here are intently focused on finding smart, creative problem solvers first, then skill sets second. A smart creative developer can be 10 times more efficient than a bad developer, and a resume simply cannot tell you if someone is a bad developer. They could have 10 years of experience in Java and be outperformed by a fresher with 1 year experience in C#.
–
maple_shaft♦Jan 5 '12 at 12:50

3

Regarding learning languages, I really enjoyed the book 7 languages in 7 weeks which introduces you to multiple languages of multiple paradigms.
–
ftrJan 5 '12 at 12:54

8 Answers
8

I would advocate learning a new language often, as you will often pick up new concepts and skillsets from it. It goes back to the old adage "When you're a hammer, everything looks like a nail". Sometimes the language you are most proficient in may actually be a poor choice for a part of the job you're trying to accomplish. For example, I write embedded C/C++ most often, but I would choose Python to write build scripts, text processing, or debug scripts.

I think you will find that exploring your languages a little more will help you feel you are a Programmer, not just a Java Programmer. In truth, it is not hard to pick up a new language once you know how to program in one, and it will keep you from 'pigeon-holing' yourself into a single category and missing other opportunities.

+1 for C#. As a Java developer, I found C# incredibly easy to learn, the framework similarities and similar development issues really put things into perspective as well, making you a better developer in both languages. If you love Java, you will really love C# because it has a lot more really useful features that Java does not. Ultimately I feel it is a superior language, and while you may not have as many framework and libraries to choose from, the ones that exist tend to be high quality.
–
maple_shaft♦Jan 5 '12 at 11:58

I don't think C# will be much of a challenge for a Java programmer, I think C++ or even C might be a better choice, it'll introduce many new concepts that are hidden from Java programmers.
–
Mahmoud HossamJan 5 '12 at 13:35

There's nothing to be lost by adding additional skills to your CV anyway.

That being said, the headline of your question and content are different.

When is the best time - any time
What should you learn - well what do you want to do? I'm inclined to lean towards the Java and C#s, less towards the scripting languages although I have Python and Perl documentation to hand for purposes of looking around when I have time free.

C# is a good choice for you because more than half of your proficiency in Java could be thought of as counting as experience towards C#. So, there is a great likelihood that an employer who is looking for a C# programmer will agree to hire someone who has no work experience in C#, but has work experience in Java. (If the employer knows diddly squat about these matters.)

If you asking when is the right time to change programming language, I would say anytime. But I don't understand why you would want to learn new language just because want to got a new job? I thought Java is still widely use and Android itself using Java too...

About what language do you need to learn. I would say then find a language that you are most comfortable. Just as others have suggested C#. Also, as a Java lover, I think you would love a PHP Framework named Yii Framework too...

hey man, thanks for answering. it is kinda hard now as a java developer (in my case) because it looks like I am in an area where companies don't like free stuff. But yeah, java seems losing its popularity now as new programming languages arise.
–
niccolo m.Jan 5 '12 at 23:28

We all like to play the odds, but you only need to find one job. If java jobs are limited, so may developers with that skill in your area which is why many may not use it. Hard to say.

Decide what types of companies you prefer to work for and what types of development you want to do and work on that language. If all the software companies that build webs sites in your area use PHP, you don't have much choice if that's what you want.

Within reason, you should be able to find jobs in most languages if you are good enough. Otherwise, you may want consider relocating and go where the work is.