LiveCoda, Real-Time Coding Competition
Robert Shelton points out this "debrief" from ESCI LiveCoda 2006, a live programming competition. From the article: "On Wednesday the 24th of May at Loop Bar in Melbourne (Australia) fourteen teams of programmers gathered for the first ESCI LiveCoda real-time programming competition. Possibly the first performance based real-time programming competition. Before a packed night club with live music, each team had just ten minutes to write a program which could correct a corrupted image." (Here's a mirror of the LiveCoda site).
Conventional wisdom has it that one can write code faster in a language like Python than in C for instance. The results of this competition don't seem to support that contention. Of course, it could have been that the weaker programmers would naturally choose Python ...
btw. I mostly use Python for my desktop apps and C or assembler for embedded work.
Set a simple task and see if the code performed that simple task.
Kind of like what they did here.
-30-
"someone who can hack up a correct program in 10 minutes stands a good chance of writing a correct, clear and maintainable program in an hour."
Patently false, for a number of human reasons:
1) Programmers are are fast are generally easilly bored. This leads to wandering focus.
2) Programmers who are fast often approach problems in a strange way. This can lead to convoluted and confusing implementations.
3) Programmers who are fast rarely see value in commenting. Why comment when I can rewrite faster than I can reuse?
4) Programmers who are fast are usually impatient, and don't work well with teams. I *like* this competition because it has some focus on teamwork, but I'm generalizing.
For such simple problems as are being solved in this competition most of these problems aren't problems. But all of these things will eventually lead to unstable, unmaintainable codebases. I'd prefer to have someone who is good at code re-use, who is good at seeing the complex parts of problems and who is good at getting the right architecture the first time. None of these things are tested in this competition.
Sorry. I can't agree.
Having spent 20 years in the programming profession, I've worked with a lot of programmers. The speedy ones are usually exceptionally smart, but their code is completely unmaintainable, no matter how much time they are given to write it. If you work any time in industry, you'll know that 90% of your life is maintaining or improving upon code that others have written, so the speedy ones actually hurt overall programmer productivity for the team.
I'll take a slow and methodical programmer over a Speedy Gonzales anyday.
And believe me, my friend, we are patient. It takes a lot of patience first to just practice on those contests. And it's not because you can code faster on certain occasion (this bug needs to be fixed before tomorrow morning) that you MUST do it everytime (ok I'll hack it up and comment it all tomorrow during the day).
Of Code And Men