Master C++

Started by
13 comments, last by Trienco 18 years, 4 months ago
I see this requirement on job descriptions for game development. What does it mean? What kind of thigns should one know as a master of C++? I would like to aim for this. Any good must-have books to read to get to this state? Thanks.
Advertisement
I would think 4+ years of experience would be sufficient, provided you really know C++ well. Knoe what your best strengths and weaknesses are in the language, and be prepared to answer if they ask you this.

The problem with job requirements is that they are often written by HR people who don't know much about development technicalities. For example, back in 2001, I remember seeing job ads "requiring" 5+ years of Windows 2000 experience... you do the math on that one.
I'd phrase a "C++ Master" more in terms of more intangible things. Someone Advnaced in C++ would been to know pointers, memory, classes, templates, and all that. To get to "Master" I'd say it'd be more in conceptual things, like design: using RAII properly, knowing when to use run- or compile-time polymorphism, being able to limit physical dependances, decoupling components, ...
To add to what has been said above, you probably also ought to be proficient with a whole bunch of algorithms, so have a solid grounding in computer science theory. This is unqualified advice, but it's common sense.

Ideally, you're an entry level 20-yr-old programmer with a Ph.D. in Computer Sciene and 10+ years of work experience :-D
Quote:Original post by KnightBlade
Any good must-have books to read to get to this state?


Stroustrup - The C++ Programming Language, 3rd Ed.
Josuttis - The C++ Standard Library
Meyers - Effective C++, Effective STL
Alexandrescu - Modern C++ Design

Also, Herb Sutter's GOTW columns are an excellent resource.

The C++ FAQ has answers to almost every question you'll come across while learning C++.
Quote:Original post by acw83
I would think 4+ years of experience would be sufficient, provided you really know C++ well. Knoe what your best strengths and weaknesses are in the language, and be prepared to answer if they ask you this.

The problem with job requirements is that they are often written by HR people who don't know much about development technicalities. For example, back in 2001, I remember seeing job ads "requiring" 5+ years of Windows 2000 experience... you do the math on that one.


It is surprising how often you see stuff like that. I've seen ads that ask for people with 10 years .NET experience.
When I see nonsense like that I run the other way because the folks have no clue and when their HR is this messed up the rest isn't pretty either. Also, in terms of C++, nobody is a master because that lang. is unbounded. Meaning folks are doing things with it that the original author never have though of. However, even if by some miracle you managed to learn all there is about C++ you still have to develop algorithms in it. So who knows what they mean. Do they mean that you know C++ specs well or do they mean that you're good problem solver or both? Afterall, xlating your algos into other langs. isn't that big of a deal. Like wanting a DirectX expert and not realizing that an OpenGL expert is as good if not better because after all, technology is made from algos and if you know them then you can do them mostly in any modern lang.
i think when you understand what's exactly going on in the more wicked boost libraries and you'd be able to write that kind of quality code yourself you could think about using the term master. however i somewhat refrain from the term "master" as i think true masters of the c++ language are very rare... you can count them on a few hands.
definitely recommending the "c++ template metaprogramming - concepts, tools and techniques from boost and beyond" book by abrahams and gurtovoy.

that said, i don't believe that this is what the industry is seeking if looking for someone who's mastering c++... not to the extent of being a language guru. (i'm stil recommending the abrahams/gurtovoy book, though :) )

regards,
simon
Quote:Original post by JD
Also, in terms of C++, nobody is a master because that lang. is unbounded.


Maybe that's their trap? Remember that old greek guy knowing that he knows nothing? I found that many people claiming to have "mastered" C++ after just a few years or even months (meaning they probably just finished with "C++ in 21 days") are still far from the point of actually realizing just how much there is to know about C++. Oh, and I agree on that staying away thingy about companies asking for 10+ years of .NET experience. That's even worse than asking for knowledge in "the HTML programming language".
f@dzhttp://festini.device-zero.de
^ is HTML really a "programming" language?

i don't think so.

is it?

This topic is closed to new replies.

Advertisement