I'm an experienced C# developer, what things should I know to code effectively in c/c++?

c, c#, c++

Solution

I have to disagree with a lot of the advice you've received. You should not concentrate on manual memory management. Manual memory management was/is difficult to avoid in C. Most C++ code, however, has little need to use manual memory management at all. Manual memory management is heavily overused in a great deal of code, leading to many problems that would have been easy to avoid.

The first and most important thing to study is the standard library. It's substantially different from .NET (to put it mildly). My immediate advice would be to pick up a copy of Accelerated C++, and work through it. It's designed for people in exactly your position (i.e. learning C++, but already have experience with at least one other language), and for that situation I'm pretty sure there's no better book available.

Edit: (mostly in respond to Kenny's comment) -- it's true that especially if you're maintaining existing code, there's a pretty good chance that you'll be stuck with learning about all manner of unpleasantness any sane person would probably rather avoid. Likewise, depending on the team you join, you might be stuck with ugliness even in new code. Unfortunately, without a fair amount of background and experience with the language, it might not be at all apparent what to look for.

Problem

I have a little bit of experience in c/c++ from college but have not worked in it for years. What sorts of things do I need to know to even be considered for a c/c++ job position?

Original source

Related problems