Get Ready for For The 7th ICFP Programming Contest
nate writes "Convinced your favorite programming language provides unbeatable
productivity? Convinced you and your friends are world-class
programmers? If so, we're providing you the opportunity to prove it! We are
pleased to announce the 7th ICFP
Programming Contest to be held in conjunction with ICFP
2004. All programmers are invited to enter the contest, either
individually or in teams; we especially encourage students to enter.
You may use any programming language (or combination of languages) to
show your skill." Read on below for the details.
"On Friday, 4 June at 12:00 Noon (EDT), we will publish a challenge task on the Web site and by e-mail to the contest mailing list. Teams will have 72 hours until Monday, 7 June 12:00 Noon (EDT) to implement a program to perform this task and submit it to the contest judges. We have designed the contest for direct, head-to-head comparison of language technology and programming skill. We have a range of prizes including cash awards and, of course, unlimited bragging rights for the winners.
Previous contests included: 2003, 2002, 2001, 2000, 1999 and 1998."
I am sure this is a fine contest, and the programmer(s) that win will be better than most of the other programmers that entered. However, I do not see contests like this as a true measure of "a good programmer".
The measure of a good programmer is in the robustness of the solution, in how maintainable it is, and how well its architecture will support future changes.
A better competition would be a multi-phase one, where the programmers are given several tasks that each build upon the previous solution. Alternately, they could change the problem half way through the competition. Thus, the program (and programmers) would have to be flexible enough to change to meet changing requirements.
That is what programming is about in the real world, not figuring out an algorithm to find the shortest path between two nodes.
Most writers regard truth as their most valuable possession, and therefore are most economical in its use - Mark Twain
If a contest like this would exist, to win, you would have to produce unmaintainable code on phase 1. I don't like that. I prefer the idea of the top parent: Create code to accomplish a goal, and then ask to morph that code to accomplish another goal, which is related, yet very different. Yet, another option would be to make exactly the same thing as you mentioned (Phase 1,2,3,4) but use different teams for each phase. Thus, you would have to chose which phase you want when you suscribe, and then, the prize is divided in 4 parts. This way, a phase 1 guy would have no interest in producing unmaintainable code, because he would not be involved in other phases at all.
perception is reality