views:

629

answers:

7

I have enjoyed a long career in C++ development, across several sectors and am now at a senior level. I am thinking of moving on from my current employer.

However, the world seems to have moved on. Two years ago I saw a 50/50 split in C++ vs C# roles, today it's more like 20/80 in C#'s favour.

Do any SOers have advice on how to make a C++ CV grab the attention of a C# recruiter? Did you make the transition by changing job or in-house? Does the experience and expertise of software engineering count for nothing compared to "2 years C# experience"?

+10  A: 

Embrace C# before you apply for C# jobs. Make sure you can actually do it - otherwise you'll be asked technical questions which you may well stumble on.

Ideally, get some experience in an open source project (whether a big one that you do a bit on, or a small one which is "all you") - that way the companies can see your code before you get as far as an interview.

To be honest though, what I look for in a developer goes beyond one language or another. I look for passion. If you can demonstrate passion and talk sensibly about the values that drive your code, relative lack of experience shouldn't be too much of a problem, at least if you can get past the HR department. Just don't try to pretend you know more C# than you really do.

Jon Skeet
+2  A: 

Does the experience and expertise of software engineering count for nothing compared to "2 years C# experience"?

It counts, but more important is the stuff you've been doing in C++. And a wider perspective: your experience in design, design patterns, your knowledge about current SW development trends (TDD, IoC/DI, AOP, to name just some...)

Igor Brejc
+5  A: 

For tech interview purpose, I would recommend two books.

C# in depth.

CLR via C#

J.W.
I've been reading CLR via C#, it's really informative
Andy White
Reading Jon Skeet is as well ;)
CheGueVerra
+3  A: 

As an employer, I would highly value the C++ experience. I would definitely let you get through the first round of filtering and probably give you an interview.

However, C# is a very different animal than C++... There are many similarities, but there are also significant, fundimental differences. Since you have no professional experience with C#, from the sounds of it, I would probably tailor the interview more towards making sure you understand the "C# way" of handling certain situations, particularly when they differ from common patterns and practices in C++.

That being said, if you know C#, and really understand it, I wouldn't think you would have problems. Understanding programming, and the fundimentals behind how things work, and also having the right attitude is much more important than any specific tools/skills/etc. The tools and skills and libraries change much faster than my employees - I'd rather hire somebody with good fundimentals who is excited about learning than somebody with a specific level of experience.

I'd also say - any employer who disregards years of experience in any language is probably not somebody I would be happy working with over time.

Reed Copsey
+4  A: 

In my opinion, your heavy background in C++ will only yield you more respect and more serious attitude in the eyes of good employers. There was somewhere an article on JoelOnSoftware about how bad it is that students are now taught Java instead of a low-level C++ so that they have no good understanding of what is happening behind the scenes.

It is like a swim moving to C# after C++ since you (supposedly) already know how to design software and will avoid traps built by a high-level language.

Can recommend this book. I myself learnt C#/.NET after years of C++ with it.

C# and the .NET Platform, Second Edition

And - yes - I just dropped one job then had a break for six months while reading the book at the time. This gap is marked in my CV just for what it is - "Migration from system to applied development, mastering .NET/C#" or something like that.

Read it for a couple of months, try doing some simple projects, maybe not installable but web application if you'd like to get into it, then try applying for a job.

Anyone can learn Java or C#, but not everyone will be able to write quality applications in them.

User
+1  A: 

Try to find C++/CLI employer ;) Of course, you should study its (C++/CLI) features. This language has unique field of use in .Net programming. And skills level of such developer must be high (and salary must be high respectively)

macropas
A: 

Focus on the elements that transcend the languages: object oriented design, threading, exception handling, design patterns, etc. The ability to demonstrate a strong basis in these elements will get you the attention you seek regardless of which language you are most familiar with.

In the end, it will come down to what the employer is looking for. If it is a short term commitment with well understood needs, you probably won't get the much attention. Longer term engagements seeking a seasoned vet that will provide input on design and implementation choices will need you.

JadeMason