Skip to main content
gamedev.net
🔒 Locked

Question for professional c++ developers

Started by chairthrower Feb 26, 2008 at 7:12 AM 1 replies 850+ views
Original Post
chairthrower
chairthrower
I would really like to try and get some sense - across the industry - about the skills of working c++ developers and about the use made of the c++ language by (games) companies that develop software. Admittedly this can probably only ever be achieved in an anecdotal fashion. Hopefully people might respond if this post is judged to be of sufficient general interest. My questions are not really specific questions but are more aimed at triggering any recollections or ideas if others might have considered the same issues themselves at any point. Any and all thoughts/insights/flames are appreciated !! - If your company uses c++ what is the level of - and how would you judge the - proficiency/abilities of fellow coworker c++ developers? Is it possible to say what an 'average' set of c++ skills would be? Is there a wide range of skills between different developers of varying ability all of whom work together - in seperate or the same sub/projects? How is c++ knowledge transmitted within the company? Do developers actively participate and discuss/share knowledge about c++ programming techniques? Do developers learn from each other - informally, say at coffee breaks/water fountain or at formal workshops or code review meetings. Do fellow programmers read code sites like gamedev.net - source of industry 'best practice' ;-). Do progammers change the way they code over time (gaining experience) or are the c++ idioms that will be used prescribed upfront by management or development leads? For people with the experience does any of this change between large and smaller development houses. How are tradeoffs made between c++ use decisions that affect the degree of complexity of c++ code when multiple progammers work on the same codebase. Do you find c++ devs are interested in learning new stuff # Possible skill/experience metrics (very vague ordering and lots of personal assumptions made): - c with classes type approach - raw pointers everywhere - use of c++ generic programming techniques (ie templates) - treatment of reference counted memory as idiomatic - use of stl - use of boost - use of functional programming style with stl containers (for_each) - use of functional style generally - (bind, currying, lambda in boost) - use of design patterns and implementation in c++ - level of knowledge of algorithms and data structures and how to implement and adapt in c++ - ability to write bindings for other languages boost::python/ atl/COM - interest in c++ or programming beyond purely job/work requirements
Antheus
Antheus
The answer to all of the above is depends, and depends on corporate policy.

Quote:
Do you find c++ devs are interested in learning new stuff
Do you find lion tamers are interested into learning new stuff?


An XYZ programmer is a grunt. A code monkey. A job that is rapidly getting outsourced, or in more cases, becomes obsolete entirely.

What is "a webmaster", how many do you know (as a job title)? What is a COBOL programmer? What is a calculator? (hint: these were the people employed to crunch numbers before computers appeared in 30s-60s, they literally calculated stuff using pen, paper and log slider).

Anything XYZ programmer doesn't add any value to either company, or project. They are there to type X kLOC code until functional requirements are met.

I'd expect any C++ programmer to have at least some useful skills. DX/COM/MFC/Windows networking, and several more, these are things worth money. Being able to shuffle keywords, and discussing STL iterators has absolutely zero marketable value.

And and all of the above criteria might benefit your project. Very rarely however they will provide you with competitive advantage.

Another problem is, in team environments, having programmers of different competence will lead to conflicts. The best will get bored, the worst won't be able to keep up.

After which point, you need to make the best one lead or manager of sorts, at which point they need to be able to apply their knowledge at a higher level. If they can't do that, they simply will not benefit the project.

But XYZ programmers, by very definition, do not provide feedback. They are told what to do, according to functional specifications. And that's it.

This is why everyone should be domain specialist, which is independent of language, and have solid background, which allows them to solve any arbitrary problem at adequate quality.

Here's a better analogy. When you need a surgeon, are you looking for a doctor, or scalpel wielder. Inevitable, a surgeon needs to know how to use a scalpel. But their value lies elsewhere. I can learn to wield a scalpel, but that doesn't mean I'm capable of performing endoscopic heart valve replacement.

It is very very very rarely that you will need the best scalpel wielder.
Telastyn
Telastyn
I don't work in gamedev, but we use c++ for about half of our production code on site.

Quote:
Original post by chairthrower
If your company uses c++ what is the level of - and how would you judge the - proficiency/abilities of fellow coworker c++ developers?


Poor at best.

Quote:

Is it possible to say what an 'average' set of c++ skills would be?


You could guess. At my workplace it's barely at simple STL usage. No boost, no even simple template usage. C with classes, and barely the classes.

Quote:

Is there a wide range of skills between different developers of varying ability all of whom work together - in seperate or the same sub/projects?


Absolutely.

Quote:

How is c++ knowledge transmitted within the company? Do developers actively participate and discuss/share knowledge about c++ programming techniques? Do developers learn from each other - informally, say at coffee breaks/water fountain or at formal workshops or code review meetings. Do fellow programmers read code sites like gamedev.net - source of industry 'best practice' ;-).


It's transmitted via informal discussion "hey Joe, how do I...?" and by maintaining code of someone else.

Quote:

Do progammers change the way they code over time (gaining experience) or are the c++ idioms that will be used prescribed upfront by management or development leads?


Everyone changes the way they code over time, either due to betterment of skill or a change in the environment (deadline/pressure/IDE/compiler/libraries).

Quote:

Do you find c++ devs are interested in learning new stuff


Sure, about half of the programmers on site do stuff in their spare time for the fun of it. But all of them are actually doing stuff, not delving into the dusty corners of a language being phased out as quickly as is practical.


At least at my shop, the programmers tend to fall into two camps. Ones that picked C++ up on the job and thus learned just enough to do the problem at hand, and the ones who haven't used it since college (MSVS 6.0 or before).

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.