Programming Challenges / Steven S. Skiena and Miguel A. Revilla Reviewed by Tal Cohen
Sunday, 03 December 2006
Skeina and Revilla's book is presented as a “trailing manual” for a contest: programming contests. There are in fact several such contests -- the International Olympiad in Informatics, the Topcoder Challenge, and the ACM ICPC.
I personally dislike the very notion of programming contests; and yet I like this book and very much enjoyed it. The problem with contests, in my view, is that they put too much focus on the very wrong thing, namely, fast coding. It is true that a programmer cannot win the competition if his program is wrong, but he can't win it if he's slow, either. And from my real-life experience, slowness can be a very important trait in a good programmer. Not slowness in the sense that makes him boring or dim-witted; rather, slowness in the sense of not rushing anywhere before beginning his work. Google for the term “good programmers are lazy” to see what I mean.
In other words, the competition setting encourages the contesters to rush ahead and code the first solution that comes to mind. While the first solution -- with good programmers -- is often right, it is rarely also the best solution. I personally find that after sleeping over the problem, or musing about it in the background while reading a good book about something totally unrelated, I am able to come up with a much better take on it. But clearly this is not possible when there's a stopwatch ticking in a referee's hand.
Still, even if I don't like programming challenges, I like Programming Challenges. After all, there is no time limit whatsoever when facing it at your own leisure. The book contains very good puzzles, from a simple Minesweeper-mapper to complex combinatorial and geometrical mind-benders, the book presents a lot of fun for the devoted reader. And every chapter is preceded by a good theoretical discussion of the issue at hand. I believe it really can, as the...
Please join StudyMode to read the full document