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 am working on a project that will be acquiring four new Java developers (mid-to-senior level). They will be responsible for writing code for web services and an event-driven UI. This is a .NET project using C# and WPF.

We have ten weeks to create a substantial amount of new functionality. Project management has called our time line "aggressive but achievable." The new developers have limited to no experience in .NET.

Assuming the new developers are very-talented, how many weeks before they can begin contributing to the project? Or are we doomed?

I realize I'm giving very few details, but I would welcome even the roughest of estimates.

share|improve this question

migrated from stackoverflow.com Jan 25 '11 at 23:36

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

    
Sounds like you are getting set up for failure. Is this a winforms app or a webapp? –  Biff MaGriff Jan 25 '11 at 23:24
    
@BiffMaGriff: winforms. –  8kb Jan 25 '11 at 23:33
1  
Achievable with the caveat that it will be prototype throwaway code. Unless your Java devs have had extensive experience in C# their code will require significant input from other experienced devs to make it conform to the the C style. –  Loki Astari Jan 26 '11 at 0:48

6 Answers 6

up vote 2 down vote accepted

It's a difficult thing to gauge, because the answer is really dependent upon numerous factors, as you already pointed out.

1) the aptitude and flexibility of the developers in question 2) the difficulty of the project being undertaken 3) the management ability of the program managers (which is already in question, considering that they're hiring Java programmers to do .NET work)

With regards to point #1 -- I work in a corporation that has an IT department of Java developers, another one of Coldfusion developers and another one of .NET developers. In my experience, dyed-in-the-wool Java programmers don't like to switch sides - they see it as some betrayal of their innermost values. However, if you're fortunate to find a developer that realizes both sides of the fence (being Java and .NET) have a lot to offer, then you're off to a very good start! But if you end up with a developer who is convinced that MS doesn't know their way around the block still, then you're likely to have a sub-par performance. Again, it comes down to individual aptitude and flexibility.

However, if I had to give a time estimate on how long I think it'd take a really good Java developer to pick up .NET then I'd say you shouldn't be looking at more than a week's time (assuming that you put in 40 hour weeks), and two weeks at most.

Also, Java developers going to C# seem to pick it up much quicker than Java developers going to VB... I think it has to do with the difference in syntax (ie - C# is much more similar to Java then VB is).

Don't forget that you're also going to need to allow time for setting up developer boxes that have .NET installed (patching them and whatever else), but .NET installs are pretty slick now and it shouldn't take but maybe a day for this.

share|improve this answer
3  
Sure you can pick up the syntax of the language in a week. That does not make you a proficient C# developer. –  Loki Astari Jan 26 '11 at 0:49
    
Come on: if you first just write Java using C# syntax and libraries you can already write reasonable code! IMO this will be proficient enough to get the job done. Of course to write really C# specific code you will need more than two weeks. –  Giorgio Jan 12 '12 at 6:52

Well, myself and five other Java developers were able to learn C# and write a small P2P networked game client in about 4 days when pressed. I personally don't think the switch is too hard.

share|improve this answer

In my last job I was primarily a Java programmer, but a new product was being developed on the side in .NET by one of our senior programmers (ASP.NET MVC more precisely). I had never done it before by the way.

At one point I was told to join this project to pick it up so we have more than one person who knows it. So I started by teaching myself C# via the MS tutorials sites.

Anyway, it went like this: "picking up C#" itself was laughably quick and easy. I already knew Visual Studio very well however (doing MFC for years previously). ASP.NET MVC was a different story though.

I would put it like this: just picking up C# itself should be the easiest bit. Learning the ins and outs of the platform may be a bigger time waster. Knowing lots of the little quirks of .NET and even Visual Studio makes one much more productive after than before.

All that said, this sounds doable. Really depends how polished that "substantial" amount of new functionality has to be though.

share|improve this answer

The answer is person related, I, myself, needed like a couple of days to switch the IDE. MS IDE was quite bad back in the time (~2005). Java and C# are practically the same, minus the libraries but that's getting learned on the fly.

share|improve this answer
    
MS dev was bad? compared to what? (/currently banging head on Eclipse...) –  mummey Jan 26 '11 at 0:36

WinForms will be much easier for your team to adjust to than WebForms.

As long as you don't do anything too fancy it should be OK. I'd focus on code reviews and code refactoring to reduce spaghetti code once you start developing.

Your greatest stumbling block will be from not having existing code to work with as this helps a lot when dealing with an unfamiliar technology. If possible see if you can steal a .Net dev to develop some skeleton code to get started.

As always, google searches in the format <JavaFunction> in C# will be the most help to your team.

Good luck!

share|improve this answer

I agree with bestsss about the answer differing from person to person. Eight months ago I was hired at a company where everything was .NET but all I had ever worked with was Java. It should take time but I think the deadline is reasonable. Personally I recommend this book:

Microsoft Visual C# 2010 by John Sharp

The first 8-10 (don't remember exactly) chapters should be a breeze for Java developers and the then the book will go into some of the introductory C# concepts that will be different coming from Java.

Hope this helps.

share|improve this answer

Your Answer

 
discard

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.