Original Post
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