5 ms·
I think this is cute but I would think hard about the kinds of questions you develop for this. Coming from the perspective of someone working for a big company
by cf2000 17y ago
I think this is cute but I would think hard about the kinds of questions you develop for this. Coming from the perspective of someone working for a big company with a ton of software people that is not a tech company, I could use something like this in general. But, the question you asked is the kind of thing I ask CS undergrads (almost exactly, in fact) because it allows for clever solutions without actually requiring someone to be a particularly good programmer. I can work through it with them and if the basic solution is easy, prompt them to give me something more clever, so I know how they think, which is good when you're looking at an inexperienced developer. However, for an experienced developer that I want to hire to churn out Java code, the difference to me between a correct but simple O(n^2) solution vs a clever O(n) is not terribly meaningful for determining whether they can actually do what I want them to do. I want something that requires people to write more than a handful of lines and demonstrates an ability to keep track of a few more variables correctly, and honestly I don't care all that much about their algorithmic complexity (although I might care a great deal about their space usage, usage of external resources, etc).
So, if this is the audience you are looking to attract, consider thinking about this as a screening tool for people outside of the startup world that actually need "knows how to really do shit in language X" more than "knows how to write clever algorithm,"
- jakacki 17y agoI don't think Codility checks whether one knows how to write clever algorithm. Look at tasks from ACM Collegiate Programming Competitions, they require clever algorithms. Codility deliberately focuses on very fundamental tasks. Also it does not pretend to be a final sign-off, it merely tells you which candidates to reject due to lack of rudimentary programming skills. It's not that surgeons make injections that often in their daily practice, yet I would not trust a surgeon who doesn't know how to make an injection.
- charger 17y agoI like this comment. A typical surgeon earns a bachelors degree, then attends medical school, before finally spending three to six years in a residency program (in the United States). This is before becoming a practicing surgeon. Unfortunately, there is nothing similar (in the United States) that is related to software engineering -- though many here would like to see something similar to an engineering license for technology professionals; there is nothing currently on the horizon (that I know of). In some ways, I think that Codility can help with this state of affairs. This is particularly interesting when we consider comparing metrics for education and experience; and perhaps 'real-world' success. The Codility statistical comparison, taking these factors into account, would be very interesting indeed. And could possibly result in data that furthers the state of the art in general.
- ununoctio 17y ago{In Pascal Language+Assembly} {$ASMMODE INTEL} function equi (A : Array of longint; n : longint ) : longint; var c:Longint; label noOverflow1; label noOverflow2; label ciclo; label fine; label Over; label tot; Begin Asm DEC n JS over XOR ECX, ECX {Somma1} XOR EDI, EDI {Somma2} XOR EAX, EAX MOV c, EDI MOV ESI, n tot: MOV EDX, A MOV EDX, [EDX+ESI*4] PUSH EDX ADD ECX, EDX JNO nooverflow1 ADD c, ECX nooverflow1: DEC ESI JNS tot; SUB ECX, c SUB EDI, c ciclo: POP EDX SUB ECX, EDX CMP ECX, EDI JE fine ADD EDI, EDX JNO nooverflow2 DEC EDI nooverflow2: CMP EAX, n JA over INC EAX JMP ciclo over: MOV EAX, -1 fine: end; End;
- junkeater 17y agolol I got 101 on the test.