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 learned and used Java in college. After graduating, I got a job in C#. Two years after, there are a lot more positions in Java. Would I have a good chance to be hired as a Java programmer? What interview questions would I be asked?

Update (07/10/2012):
Thank you for all your answers and comments. I really appreciate it.
I had a chance to work on a Java project for 9 months. It was with a mix of Perl because we were trying to migrate from Perl to Java. Eclipse has definitely improved a lot. I used Maven and Spring MVC. Pretty fun.
So, after the project ended, I did Ruby on Rails. That was a year-long fun project also.
Two years later, I am back to .NET.
Overall, being a programmer has been very sweet. Wouldn't trade it for anything else!

share|improve this question

closed as not constructive by gnat, Kilian Foth, Bart van Ingen Schenau, GlenH7, Robert Harvey May 30 '13 at 17:56

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

@Nathan Taylor Once you see Java platform API documentation, you might see that C# world has still something to learn. JavaDoc format is simply superior to the documentation offered for the .NET framework. Whenever I need to find out which classes a class extends or which interfaces it implements, I hope I had the same kind of documentation as Java has. –  Carlos Sep 15 '10 at 20:41
@Nathan: Because the light of C# is a dark deep hole. @Carlos: I believe that the Java Documentation to be the most complete and helpful documentation I've ever used. It even surpasses CodeIgniter, and that guy will write a page for every line of code. –  Josh K Sep 23 '10 at 18:19
@Anonymous Type I am. But so far I have not been able to come up with a good way to find out eg what is the relationship between IList and IOrderedEnumerable. If VS can tell me that, that's great, but I don't know how. –  Carlos Sep 27 '10 at 9:18
Hope you guys are kidding. Finding relationships between classes, interfaces etc couldn't be any simpler and intuitive in Visual Studio. If you can't figure it out, probably you're just thinking in an old fashioned way. Object explorer and the command "Navigate to -> Derived symbols" are just examples of how easy it is. And as I recall, java has nothing of the sort. –  Matteo Mosca Oct 11 '10 at 10:00
I'd never hire a C# developer to do Java work. They spend half their time moaning about how primitive Java is. The rest of the time they spend looking for ways to use Visual Studio for Java coding. ( Kidding :-) ) –  Stephen C Oct 11 '10 at 11:03

8 Answers 8

up vote 16 down vote accepted

By and large, C# and Java are interchangeable to the point that a Java engineer could make it with C# and vice-versa. Obviously, there are some unique and important differences between the two, but at the syntax-level they are nearly identical; transitioning from one to the other is relatively painless.

So long as your resume highlights the fact that you do have Java experience- even if it was in school- you shouldn't have much trouble switching from a C# position to a Java position.

Most companies prize real world development experience over experience in a specific language, so that alone will likely get your resume at least looked at it. The fact that you've spent considerable time working with Java in school is a bonus.

The only problem area I see is if the job in question asks for experience with specific Java technologies. Many of the companies that use Java stick to some specific set of tools or frameworks in their projects (think Spring, JSP EL, etc...). If you keep an eye out for these specific requirements on job descriptions you shouldn't have too much difficulty finding a Java position that suits you.

share|improve this answer
Absolutely. I was taught Java at university and after a transition period I was able to pick up C# fairly easily and code at the same level as I was before after a few weeks. I even wrote a search engine for my final-year project in C#, much to the horror of my lecturers who believe that all MS technology is evil. –  Mike B Sep 10 '10 at 9:34
@EnderMB Microsoft is obviously evil compared to the peaceful and freedom-loving Oracle- as they sue Google over open source software.... :p –  Nathan Taylor Sep 10 '10 at 19:28
That's one reason why I am re-thinking my stance on Java now that Sun has been bought by Oracle. I don't exactly trust them with the platform. Oracle does love their convoluted licensing schemes, after all. –  Adam Paynter Sep 10 '10 at 22:55
Oddly, my university was always obsessed with pushing MySQL as the "moral database of choice". They've yet to change their stance since it became part of the Oracle empire. –  Mike B Sep 18 '10 at 15:43
@EnderMB. MySQL isn't part of the Oracle empire. The primary contributors have abandoned Oracle, and have forked development. At this point, it's mostly a question of which fork will settle down as the successor to the MySQL name. –  Ken Bloom Oct 11 '10 at 18:54

TomWij, it depends on the potential employer. If the employer understand the interchangeability of knowledge among engineers, it should not be a problem. Unfortunately, most aren't like that. In fact, I only know of one employer in the commercial sector that does that. Government agencies and defense contractors are usually much better at this. That is, they give you a chance to apply for a job on X technology provided that you can demonstrate proficiency in a similar technology (or that you have very strong engineering skills.)

My suggestion to you is not to worry about interview questions. It is a hit and miss. Either you get an interview with silly language questions that you can pass just by looking at the Javadocs (if you are good enough.) Or you get hammered with a real interview that you cannot possibly answer without having actual work experience.

For the later, the reason being is that in Java development, it is a lot more than just knowing the language. You have to be proficient in the JEE architecture stack (sometimes down to the database/Java interoperability... typically Oracle or MySQL); you need to know either the standards (EJB 3.x, JSF, JPA) or alternate stacks (Spring, etc.)

I have no doubt that if you are good in C# you would have no problem doing well in Java. The problem is convincing employers that you are good without having experience. It is the stupid chicken-n-egg problem that plagues everybody in the software industry, not just us Java and C# developers.

If you feel that you really need to switch to Java, but have a hard time getting a break w/o work experience because employers are simply too stupid to give you one, I'd suggest you work on becoming a Sun certified Professional.

I'd suggest you work your way through the following, at a minimum:

Sun Certified Java Programmer (SCJP) Sun Certified Web Component Developer (SCWCD) Sun Certified Developer for Java Web Services (SCDJWS)

These three should start helping you a bit. However, I would strongly suggest you go for the following as well:

Sun Certified Business Component Developer (SCBCD) Sun Certified Enterprise Architect (SCEA)

It is not a guarantee, but it will improve your odds. Taking the first 3 should take about a year. All five should take about 2. So you have to look at it as a mid-term investment. Even if you land a Java job without completing these, I'd suggest you do.

You can always try with defense contractors looking for Java developers (Lockheed Martin, General Dynamics, Northon Grumman, Honeywell, Harris) or with government agencies (DOD, DOE, DOT, which you canfind at usajobs.gov... if you are in the USA, though.). They'll be far more willing to take a good C# programmer for a Java position than a commercial entity.

Then, you earn your bones on the Java field and you are in.

I do wish you luck you get a chance to work on Java. Although the JVM and .NET have a lot in c

share|improve this answer
"not a guarantee"? if you had that you would have no problem at all. –  Morgan Herlocker Oct 13 '10 at 4:24
Exactly, but good engineering practice calls to follow a statement, evaluation or recommendation with applicable caveats. Or not? If we rub a pair of neurons together, we also come to realize that some people would take my advice (or any advice for that matter) as an statement of guarantee. Since my purpose of expressing the aforementioned opinion is both informative and educational from one engineer to another, it follows then to express the caveat, even if it is trivially obvious to the laureated (or self-laureated) few. –  luis.espinal Oct 13 '10 at 11:37

How well do you know particular C# APIs and particular Java APIs? Though the languages are similar, I've found that it takes time to learn new APIs (in particular the Java XML APIs.)

share|improve this answer

If you made the java->C# switch, why couldn't you do the inverse?

Of course it's possible, C# and Java have many points in common, as well as many differences.

On a java-job interview, I would concentrate on what makes java stronger against, for example, C# or other similar languages.

share|improve this answer

I would definitely hire you to do Java work after coming from a C# background (I'll probably have to do the opposite for a project that's coming up since only Java people are available). The question is: do you do OO coding? Java and C# are syntactically very similar.

If you manage to get an interview, you may want to express this concern at the interview, with the obvious defense that you've done your homework. You should be well-versed in the differences between the two. One example are the naming conventions and how they differ between the two. For instance, in C# methods are Method and in Java they are always method. Look at getters and setters, and how generics have been worked into both languages (IMHO, kind of sad how weird they are in Java). There are many other similar points, and a lot of great docs comparing the two.

share|improve this answer

I agree with opinions of everyone so far. I was trained as Java developer and I've working in java commerically. These days I working with C#. I'll go back to java if job is available. However .NET is a wonderful platform. Java and C# are interchangeable.

share|improve this answer

Absolutely not. We hate you.

Just kidding. C# and Java are very much alike and there's absolutely no reason why you wouldn't hire a C# programmer. Well, unless you are specifically looking for an experience Java programmer. But in general the transition is fairly easy and I think it is even easier from C# to Java since you basically just need to forget some of the more modern features of C# (introduced by C#1&2). Of course it takes some time to get familiar with the API, but that shouldn't be an issue.
I myself started as Java programmer and now I'm doing both. I find switching from language to another to be very easy.

share|improve this answer

In my opinion (and that's worth all of $0.02) if you can code in C# you can code in JAVA. Software is software to an extent, I don't want to bring in some GURU that claims to be a JAVA master but can't learn C# down the road.

What if we need to use a new framework or tool-kit down the road? I want someone that can pick up things on the fly if need be.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.