I came across these tests and was wondering what level you would rate these at, would any C++ job position candidate be easily expected to roll through these?
I came across these tests and was wondering what level you would rate these at, would any C++ job position candidate be easily expected to roll through these?
I would say it really depends on what you'd define as 'roll through'. From the few I looked at, I think many candidates would have their answers be marked as incorrect. They're quite full of small gotchas, instead of really testing someone's programming skills.
(But hey, that may just be my disappointment speaking )
That said, I'd be much more interested in why the candidate gave that answer. If a candidate knows what a reference, copy constructor, initialization list, etc. is, but just overlooked some small issue, I'd still would want to hire them.
Example: one of the tests checks if you know what happens if a local functor has the same name as a function and you call f(..). I don't care: anyone who programs something like that will be close to be fired on the spot or at least have a good talking to...
So as a test, I don't think these are particularly good. As a starting point for a technical discussion, they're quite nice.
Well, I consider myself a C++ expert, but I just took their C++ test #1, spent ~1:30 on each question, thinking "this is a stupid test, badly written and checking for esoteric quirks that only experts will know"... and apparently I took it too quickly because I missed subtle details on each one and got all 5 questions wrong. Taking it again and reading more carefully I found all my mistakes
So... I don't think I'd use that test to screen candidates
As DaBono, they'd probably be more interesting as interview discussion topics, so you can see how well they can explain why different answers would be generated.
I really don't like these kind of tests. Yes, they are called "c++ tests", but what is really tested here is specialized knowledge of a few very specific langauge concepts probably containing more than one gotcha. Almost like a trick question, and I don't like trick questions.
What I'd be more interested in a candidate is quickly grasping large-scale code structure, ability to visualize class dependencies, debugging, refactoring, all in all skills that are not bound to a specific language.
They should change the title of the test in "Horrible C++ nightmare program test". Seriously, if someone in real life codes like that, it should be fired.
They aren't too bad if you take it slow (I get most of the answers correct but if I rush it I miss a detail or two), and I do agree that they'd be better suited for discussion rather than as a strict test. And yes, no one would code like that, but I've taken C++ tests that have been written far worse and are loaded with more WTFs than these tests and these are more than reasonable in comparison.
I didn't get any correct answers. I'm not at all sure (from a production standpoint) what the intent of the testing really is. It's perhaps similar to cutting and pasting someone else's code and debugging it. But, if I were to do that (and, of course, I have), I wouldn't spend a lot of time determining why or how the code does what it does, I would concentrate more on why it doesn't do what I want it to do.
It may be a test along the lines of examining example code from Microsoft. Or, perhaps, the originators of the tests are cryptologists looking for people who are efficient at determining what purloined obfuscated code does.
Well, I consider myself a C++ expert, but I just took their C++ test #1, spent ~1:30 on each question, thinking "this is a stupid test, badly written and checking for esoteric quirks that only experts will know"... and apparently I took it too quickly because I missed subtle details on each one and got all 5 questions wrong. Taking it again and reading more carefully I found all my mistakes
So... I don't think I'd use that test to screen candidates
As DaBono, they'd probably be more interesting as interview discussion topics, so you can see how well they can explain why different answers would be generated.
You can also see some other examples of esoteric questions in my C++ quizzes as well. Honestly these are never things I would really ask an interviewee to take partly because A) they're online, easy enough to google the answers for, and B) the knowledge isn't that useful in many cases, because learning it briefly for a test will NOT cause it to stick with you and thus ensure you do not make the same mistakes later on.
I did the first test and took an average of 3 minutes per question and got 3/5 right, the mistakes I made were because I overlooked a few details. There were a few things that I feel like only an expert would know, but I don't think these tests are effective in measuring someone's level of expertise.
These kind of tests lack a programming goal, the code has no purpose. There's no context to place the code in, which sort of reduces the test to 'are you a good compiler?'. Programming is so much more than that.