I recently opened my Mini-Programming Competition #2 (not a plug, open to UWCS peoples only).

The challenge was made up about an hour before I announced it, and, as such, I didn't even try coding it before announcing it, I just "guestimated" the size of the problem, I think I did reasonably well, and I think this makes me a good programmer.

A few I have spoken to (especially among the non-hobby-programming crowd) have not been able to come up with a(ny) algorithm within a quarter of an hour or so, I didn't measure, but I guess I had a codeable solution within a minute of imagining the problem. I'd hope this makes me a good programmer.

As for solutions, I spent a reasonably amount of time coming up with a single (good) algorithm and have tried to "optimise" it, and port it to other languages, etc. Others have come up with many algorithms and trialed them. I have to admit that my solution was pretty poor, regardless of optimisations. The really interesting question here is, does this make me a better or worse programmer than the many-algorithm people?

Aside: Golf as a programming benchmark.

Golf, the art of writing short (by character) programs (as apposed to fast programs), is often sneered upon by programmers (especially the employed ones).

As I mentioned above, it's far more about algorithmics (an important skill, regardless of language or formatting) than the simple ability to delete whitespace and use short variable names (although being able to follow code in this form is a (useful?) skill). Alongside this, it's a great way to use language features you don't see very often (for instance, I now actually have experience programming with raw pointers :p).

My rules for the MPC are carefully chosen such that it doesn't matter if a language is "better" than another for writing short code in, although, obviously, points are awarded for the combined best choice of language and solution.

Commenting is disabled for this post.

Read more of Faux' blog