Select all of the following which manage the lifetime of an object:
shared_ptr
unique_ptr
raw pointer
Or:
Assuming foo() prints "foo" and bar() prints "bar" and both return false, what would be printed from the following expression?
if(foo() && bar()) {std::cout << "baz";}
So, basic modern C++ knowledge. I'm not testing their recall of header signatures, I'm testing if they can read code and if they would be able to Google the right terms to find what they need.
Plus 2 small algorithm problems that can each be solved in 5 lines of simple code, which they have 15 minutes each to do (top candidates take under 5 mins). The environment gives them a place to write tests (with some basic tests already written) and lets them compile their code and run tests as much as they want before they submit, with normal compiler messages if it fails to compile and also any debugging messages they put in their code printed. There is also a tutorial that they can repeat as many times as they want before starting the main test.
In later interviews I have mentioned to candidates that others couldn't solve the pre-screen problems, and they are always surprised that people so unqualified are applying for the job.
Software engineering has huge skill variability. C++ is particularly difficult IMO.
I've seen such a large difference in ability on the interviewer side. In a three tier interview process per 100 people:
60 fail the 15 minute phone screen. Just voice, no programming, just describe some OO concepts like encapsulation, interfaces and inheritance.
30 fail the first in house test. This is writing a for loop to reverse a string and describing at a high level how to sort a 2gb file with 1gb of ram. Most fail at the string reversal.
8 fail the second in house test. You draw up an architecture of a basic app. It's open ended.
For every 100 developers about 2 know their stuff well enough to write decent software.
Select all of the following which manage the lifetime of an object:
Or:Assuming foo() prints "foo" and bar() prints "bar" and both return false, what would be printed from the following expression?
So, basic modern C++ knowledge. I'm not testing their recall of header signatures, I'm testing if they can read code and if they would be able to Google the right terms to find what they need.Plus 2 small algorithm problems that can each be solved in 5 lines of simple code, which they have 15 minutes each to do (top candidates take under 5 mins). The environment gives them a place to write tests (with some basic tests already written) and lets them compile their code and run tests as much as they want before they submit, with normal compiler messages if it fails to compile and also any debugging messages they put in their code printed. There is also a tutorial that they can repeat as many times as they want before starting the main test.
In later interviews I have mentioned to candidates that others couldn't solve the pre-screen problems, and they are always surprised that people so unqualified are applying for the job.