Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

877028 Posts in 32843 Topics- by 24284 Members - Latest Member: Arkantrus

May 18, 2013, 11:03:23 AM
TIGSource ForumsDeveloperTechnical (Moderators: Glaiel-Gamer, ThemsAllTook)Proficiency in C++
Pages: [1] 2 3 ... 5
Print
Author Topic: Proficiency in C++  (Read 4158 times)
paste
Level 6
*


BARF!

HeyIAintEddie
View Profile WWW
« on: March 02, 2012, 10:22:55 AM »

I was looking at what kind of requirements some game companies ask for when hiring programmers, and one thing I come across over and over is the nebulous idea of "proficiency in c++".  I was hoping people who actually know what this means or who have (preferably from experience) a good idea of what companies mean when they say this could expound on it.

I've also heard that some places will give impromptu quizzes to see how proficient candidates are, and if you could share some examples of that, that would be great, too.
Logged

PompiPompi
Level 10
*****



View Profile WWW
« Reply #1 on: March 02, 2012, 11:07:47 AM »

I was looking at what kind of requirements some game companies ask for when hiring programmers, and one thing I come across over and over is the nebulous idea of "proficiency in c++".  I was hoping people who actually know what this means or who have (preferably from experience) a good idea of what companies mean when they say this could expound on it.

I've also heard that some places will give impromptu quizzes to see how proficient candidates are, and if you could share some examples of that, that would be great, too.
Hmm, I don't know about game companies, but I had job interviews in GE and MS requiring C++. I suppose it is similar.
First of all, don't assume all interviews are the same, so no one can tell you how to be prepared to ALL interviews.
Secondly, I belive that the interview will be tailored for the job in question, and it will also depend on the skill of your interviewers. Interviews are also a good time to figure out if you want to work there.
In my MS interviews, the technical test part was to implement several multi threading related problems. Something like, if you have n threads, how are you gonna synch them(I got the MS job).
In GE the interview was a little different. At first they asked me some basic C++ questions, what is a virtual function, why do you need a virtual dtr.
After that they asked me some algorithm implementation question, but skipped it as they see I didn't solve it so quickly.
The most important part was, the "design question", They asked me how do I design my software\code and I didn't really know how to answer that. (Nowadays I know a lot better how to design software).
So perhaps, there are 3 different types of C++ questions I can think of. One is C++ language questions. Two is implementing algorithms with C++(mostly to see how you think, rather than test your proficiency with C++). And third are how to design a software in C++, which is what I think the most important questions when someone want to know how proficient you are in C++.

This is my humble experience. And as I said, I can't predict what company A or interviewer B will ask you.
(By the way, I didn't get the GE job, heh)

Edit: GE not GM XD
Logged


Kickstarter? no no no... it's Kicksucker...
Pirate Hearts
Level 5
*****


PostCount++;


View Profile WWW Email
« Reply #2 on: March 02, 2012, 12:38:24 PM »

I'm not sure how to answer this except in the form of a tautology. Having proficiency in C++ means you are proficient in C++. Shrug You should be completely comfortable writing C++ code and be able to speak knowledgeably about its features and limitations.

Most studios will send applicants a programmer test before proceeding to an interview, but the nature of the questions is usually similar. Most questions I've seen have dealt with data structures and algorithms, design patterns, 3D math, and yes, sometimes obscure C++ knowledge. (E.g., "Explain what the 'mutable' keyword does.")

Programmer tests might also have essay questions designed to get a sense of the applicant's personality and gauge his or her passion both for programming and for games.

In interviews, you'll sometimes get the Microsoft sort of questions that don't have correct answers and are just designed to show the interviewer your thought process, stuff like, "Calculate the number of telephone booths in London," or, "Describe how you would blow up the moon."
Logged

Klaim
Level 10
*****



View Profile WWW
« Reply #3 on: March 02, 2012, 01:51:04 PM »

Basically, it means you need to grok 5 things and know about a 6th thing:

 1. R.A.I.I.
 2. templates
 3. the Standard Library
 4. smart pointers
 5. object orientation (BUT DON'T USE IT EVERYWHERE)

and not so required

 6. meta-programming (through templates)


The 4 you have to 'grok', I'm using this word because just reading it isn't enough. You have understand, breath and easily manipulate those. In particular 1 so fundamental that any safe code just HAVE TO rely on it.

So, once you get so familiar with 1-4, 5 is good to know but should only be used in cases where there are clear benefits and accepted problems.


That said, as other already told you, it depends on the company and real context requirements. But to me, those are necessary for someone to be able to work with any C++ code. (including Boost implementation).

Also, old shops might not use or even know about the current state of the standard library (of their compilers) so they don't care about it and have custom code (that they only know well). That makes my advice really virtual and not always practical.


So, the real advice is this:


    You have to be able to express ideas by writing them in C++ in the same way you could in English or another lang you're at ease with.



Just make sure you're at ease with expressing anything in the asked language.
Logged

http://www.klaimsden.net | Game : NetRush | Digital Story-Telling Technologies : Art Of Sequence
ham and brie
Level 2
**



View Profile Email
« Reply #4 on: March 02, 2012, 02:18:24 PM »

Also, old shops might not use or even know about the current state of the standard library (of their compilers) so they don't care about it and have custom code (that they only know well). That makes my advice really virtual and not always practical.

Yes, certainly at interviews I've been to there was no interest in testing knowledge of the standard library and smart pointers, since they are not used in run time game code. Not a whole lot of interest in templates or RAII either, though those are things you have to deal with. Where I work, to some extent I think the people who do interviews would actually be nervous of someone who came across as keen on meta-programming...
Logged
Brian Lawson
Level 1
*



View Profile WWW
« Reply #5 on: March 02, 2012, 02:58:19 PM »

Yes, certainly at interviews I've been to there was no interest in testing knowledge of the standard library and smart pointers, since they are not used in run time game code. Not a whole lot of interest in templates or RAII either, though those are things you have to deal with. Where I work, to some extent I think the people who do interviews would actually be nervous of someone who came across as keen on meta-programming...

I'll second this. I'll also say that places I've actually worked at did not use any of the above.  And in some instances, even hinting at using STL in game code immediately got the wrong kind of attention. i.e. some places don't care about STL, don't want to care about it, and don't want it coming anywhere close to their code.  The same went for smart pointers and RTTI.  Templates to a lesser degree.
Logged

thatshelby
Level 10
*****



View Profile WWW
« Reply #6 on: March 02, 2012, 03:11:00 PM »

grok

grumble

i hate this word
Logged
Klaim
Level 10
*****



View Profile WWW
« Reply #7 on: March 02, 2012, 04:25:05 PM »

I don't have any feeling about this word but I find it good to explain the feeling.
Logged

http://www.klaimsden.net | Game : NetRush | Digital Story-Telling Technologies : Art Of Sequence
Pirate Hearts
Level 5
*****


PostCount++;


View Profile WWW Email
« Reply #8 on: March 02, 2012, 04:55:51 PM »

Grok is a perfectly cromulent word.
Logged

InfiniteStateMachine
Level 10
*****



View Profile WWW Email
« Reply #9 on: March 02, 2012, 06:53:26 PM »

^^^ hahahahahah



I go to school across the street from EA and the word is that C++ hires often get asked to do some c string manipulation on the whiteboard.
Logged

PompiPompi
Level 10
*****



View Profile WWW
« Reply #10 on: March 03, 2012, 12:18:33 AM »

Don't neglect learnning how to design programs in C++. I think in a senior position they would be more interested on how you design software. Of course this is not exclusive to C++, but even if you know all the features of C++ and can write complex algorithms, it won't help you in a game industry job where you need to write large software and work with a team of programmers.
For me being proficient in C++ is knowing how to write readable, maintainable and neatly designed software.
Even if they don't ask you about that, "sharing" your knowledge about software design would add you a lot of points. And it's something you should learn if you want to improve your coding SKILLZ.
Logged


Kickstarter? no no no... it's Kicksucker...
ntdb
Level 0
***



View Profile WWW Email
« Reply #11 on: March 03, 2012, 05:52:05 AM »

I've waded into C++ on a few occasions, thinking "well, it's industry standard so it must be worth my time." Interestingly, I've been told repeatedly to just not worry about it. "The language sucks," "it's falling out of use," and so on. Any thoughts on this?
Logged

rivon
Level 10
*****



View Profile
« Reply #12 on: March 03, 2012, 06:08:13 AM »

It won't be dissappearing from the game industry for the next few years for sure. But if you aren't interested in the game indutry then C++ isn't used much. Java and C# are the kings.
Logged
Brian Lawson
Level 1
*



View Profile WWW
« Reply #13 on: March 03, 2012, 06:14:31 AM »

C++ is going to be around for a lot longer than the "next few years".  This next generation of consoles which is still 1-2 years away will likely have a life cycle of a decade.  Those consoles will all be programmed using C++.  Not to mention C++ is evolving with a new standard.  Bottom line is--it ain't going anywhere.  And if you want mainstream industry work, you absolutely need know it and know it well.
Logged

ham and brie
Level 2
**



View Profile Email
« Reply #14 on: March 03, 2012, 06:19:25 AM »

Use of other languages is expanding, but C++ is not really falling out of use.
Logged
Pages: [1] 2 3 ... 5
Print
Jump to:  

Theme orange-lt created by panic