Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question already has an answer here:

I am an MCA fresher and will be working on dot Net for next few months (almost 10-12 months). After that I want to switch over to Java.

How is the possibility that I can switch over to it? What type of preparation I am supposed to do? I am also planning to appear for SCJP but don't have any knowledge how to get registered an registration fees.

Please also guide me what is company's approach towards the candidates switching their technologies. What are the things that companies look for?

share|improve this question

migrated from Jul 1 '11 at 8:44

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

marked as duplicate by MichaelT, gnat, Kilian Foth, GlenH7, Jalayn Apr 29 '13 at 14:35

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

It is like moving to another but close country, everything is different but the underlying mechanics of the society are very similar. Most of the concepts you know are there, but have different names and is used in a different way.

If you are good at C# you should be able to easily pick up Java. Start with the Oracle Java Tutorial -

share|improve this answer
And just like you know the roads, the supermarkets etc. in your neighborhood, you have to look around for all these in the nearby country. In other words: Learning the language is fast, but you also have to know the libraries which are there for you to use. This will take more time than learning the language. – Daniel Jul 1 '11 at 11:14

I started with Java, Switched to C#, and then switched back to Java again!

I like Java technologies better as there is more choice, more open-source software to utilize and support and a great community. As far as .NET is considered, I will admit that C# is a superior language and that Visual Studio is a GREAT IDE.

With that being said having EXPERIENCE in both looks impressive, and if you have practical experience in a number of different languages and technology stacks then you are well on your way to grooming yourself for a future architect position.

I switched to .NET when my company switched sides because of client pressure to ONLY support Microsoft technology. This is the best way. If this option isn't available to you then try learning the language on your own and see if you can contribute to open source projects for experience. Contribution to open source projects is a plus on a resume.

As far as the SCJP, I took and passed that several years ago and I don't think it helped me get a job in anyway. Companies in the United States don't really look at programming certifications anymore. I am NOT saying you SHOULD'NT take the SCJP, because it actually helped me memorize important parts of the common API and really understand Java at its deepest levels. I DID learn somethings when studying for the test so I would go for it as a learning exercise only.

share|improve this answer
Good advice. I'm in the same boat; .NET developer who thinks of switching to Java because, while C# and Visual Studio are better, the Java community seems more "entrenched" in good software design principles than .NET - the problem I personally have is no professional experience in Java, just in C#, so I get laughed at (not literally) when applying for Java jobs. – Wayne M Jul 1 '11 at 12:50
@Wayne, Learning C# and .NET from Java came so naturally to me. Everything about .NET was so similar that you would think Microsoft ripped off Java. Within months I was a more productive member of the team than people who had been coding C# since it was INVENTED. – maple_shaft Jul 1 '11 at 13:40
That gives me hope :) I can learn the Java syntax easy enough, it's the acronym soup that everyone wants that stumps me – Wayne M Jul 1 '11 at 13:44
... I do disagree with your comment about "entrenched in good software design principles than .NET". Software design is language-agnostic, and BAD DESIGN is just as common in Java. I have had 6 different jobs in my career and only ONE of them followed good design principles and good software development practices. From my experience more than 80% of software shops are miserable sweat shops, terribly mismanaged or drowning in the technical debt of past mistakes (most of the time all three). I would personally never discount a C# developer for not having direct Java experience. – maple_shaft Jul 1 '11 at 13:48
@Wayne, Most shops want to fill bodies that can become productive in a week. My team is an investment of time and effort that pays dividends. If Jeff Atwood came in my office for an interview I would be insane to turn him away because he doesn't have a buzz word on his resume. I would invest time and effort into him to get him up to speed on Java and be MUCH further ahead for it. – maple_shaft Jul 1 '11 at 14:27

If you keep your programming skills sharp, you won't have any issues with learning a new technology at any stage in your career. And companies don't mind hiring candidates having experience in a diverse set of technologies. In fact, many would prefer them, so don't worry about that. Good Luck!

share|improve this answer
Thanks also guide me for preparation for SCJP – Microsoft Developer Jul 1 '11 at 9:03

I went the other way actually, I’m a SCJP but currently working as a C# programmer.

It’s not a hard switch to do. Just read the API and language specification and you’ll be fine. When I took the SJCP exam I used this book: SCJP Sun Certified Programmer for Java 6. I liked it very much and I think you'll find it useful.

share|improve this answer

You would be working on C# for just about a year, i think you would be able to get some fundamentals right but also depending on the scope of work there would still be a lot you would have left to learn. I would suggest you to spend some considerable years(maybe 5) to get nice grip of C# and then move on to Java or probably you might be interested in learning something else during this course of time.

share|improve this answer

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