Quote:Original post by Prefect
This just goes to show, though, that the Codility test suffers from under-specification, and this type of number overflow is exactly the type of thing that might slip you up on the first run through. |
I agree. Especially since agile proponents evangelize sloppy programming that is then incrementally fixed. But someone who is capable of writing provably correct code will be able (might not like) to transition to different practices. The reverse isn't true.
Quote:I'd claim that even a really good programmer/debugger could slip up at that point (in fact, depending on how long long is defined, which I don't know precisely, it's quite possible that you cannot implement a perfect solution in C++ without rolling your own ad-hoc big number class, which would be just silly for that kind of test), but you would immediately know what to fix when you get a problem in the test results. |
Testing can only prove presence of a bug - it cannot prove absence of bugs.
Especially when coding in C or C++, knowing ranges of integers is very important.
Quote:So you risk losing pretty good candidates based on random chance. |
Employer gets all test results. They can choose whether numeric overflow matters to them. Many are likely to determine only perfect scores matter.
But the undertone of this statement is that programmers which will pass with 100% will be generally somehow inferior to those that scored just slightly less.
These are coding positions. Employers do not care about long-term viability, they need code written. Very few employers have long-term career development, and coder's tenure will likely be between 1 and 2 years. So they need the best programmers they can get and such test definitely beats the normal IT interviews.
In the end, it's up to employer. They see all the results, all the ratings and source code.
And while it may sound unfair, I have worked with programmers who write straight perfect code. No rewriting, no trial and error, no "it might work". And none of them was some nerdy shut-in. If anything, for them programming was more of a hobby while they moved upwards into fields like finance. Occasionally I felt really frustrated at how good they were and how easy it was for them.
But as a job seeker one must always remember that programming has zero barriers to entry. So until faced with such people it is indeed easy to imagine that just hacking something together is the best possible way.
Every year up to 1 million people graduate from CS. If only 1% of them are that good, that is a lot of competition. Just something for job seekers to consider. I mean *really* consider. And it will get much worse over the next 10 years.
Still, would you rather fail on programming test, where you can honestly improve even on your own or silently fail on Meyer-Briggs or MMPI2 evaluation due to some rating mismatch. Or be rejected due to imperfect credit rating.