tags:

views:

143

answers:

5

Would you hire an experienced C++ programmer to do a C# project?

+2  A: 

Depends on the stage and projected duration of the project. If it's a long-term project (i.e. a couple of years or longer) in its beginning, then yes, if the C++ dev is good, I'd hire and train him. Overall programming prowess is more important than control of a single programming language / environment, with the caveat that there should be enough time to train the person in the new language / environment.

If the project is in maintenance and new features are due next month, then probably not.

Eli Bendersky
As an experienced C++ programmer would you apply for a C# job?
bobofky
@bobofky: of course, and I did that in the past (and was accepted). An experienced programmer with a few years of C++ can pick up solid-level C# in quite a short time, I think
Eli Bendersky
+4  A: 

If he's a good C++ programmer, then no... he'll probably hate C#.

I'd say this generalization is subjective and impossible to apply to everyone.
Reinderien
I actually voted this up - while it's superficially inflammatory. I am an experienced C++ programmer, and I detest the hoops I have to jump through to avoid bugs with the garbage collector. Of course, this is in a project that bridges managed and unmanaged code quite heavily.
MadKeithV
And of course, you're one person. I would be interested in a poll to see how often your sentiment is echoed in others, though.
Reinderien
@Reinderien: so? If only 30% of _good_ C++ programmers feel that way, that's still a 30% risk that he or she's saying yes because they need a job right now, but won't be happy. And there are legitimate justifications for a C++ programmer disliking C++... don't paint it as all prejudice and attitude or MS bashing. JAVA was, during its initial rush to fame, retargetted and marketed as a crippled C++ so that beginning to average C++ programmers could have more predictable productivity and less total stuff-ups at the cost of great programmer's productivity and performance.
@Reinderien : Only if the poll requires that the responders know about disposing, finalizers, and the fun you can have with wrapped native functions with side-effects in the presence of an aggressive garbage collector. Or in other words: I think gc.KeepAlive() (or whatever the exact syntax is) is a *hack*
MadKeithV
C# started because Microsoft got a spanking for trying to subvert the portability of Java with their own platform specific extensions. It's not a good beginning from which to impress a C++ programmer.
A: 

It really depends on the complexity of the C# project. If it's relatively straightforward, then yes. However, if it's highly complex, then probably not. While C# has many similarities to C++, it also has many differences. If you've written any personal projects in C++, I would recommend porting some of them to C# using Visual Studio Express. That would be a good way to start giving you a feel for the language, and it would allow you to say that you have had some experience with C#. When asked at an interview you can launch into describing what you have done and what you found interesting as you engaged in the learning experience.

Jim Fell
A: 

Experienced? No - at least not as the main criterion.

Good? Yes.

A good programmer is a good programmer in pretty much any language, especially ones that are quite close in paradigm like C++ and C#.

You'll have to spend some time teaching the C++ developer about the tricks and pitfalls of garbage collection though.

MadKeithV
A: 

A bit vague. If they wrote device drivers in C++ all their life and the current project called for a nice GUI in WPF, then maybe not.

Generally speaking, though, if you are proficient in one language and the general concepts of software development, you can pick up a new language in ~1 week or less. I did ASP.NET/C# for four years and then out of nowhere got thrown into writing a Flex application; after a brief period of adjustment, I was fine.

pjabbott