Freigeben über


Programming Exercises to Stay in Shape

Unless you are a very rare type of developer, you probably spend only a small percentage of your time on algorithmic development. Algorithms are one of the central topics in college education and interviews for developers tend to feature a lot of algorithmic questions. However, the bulk of producing a quality product is often not the algorithms but rather the time spent on design, testing, integration, documentation, and other issues. This can lead to an unexpected struggle at those times when algorithmic development is essential to completing a job.

Programming competitions are one way to keep sharp. There are programming competition sites that directly pit you against others but I don’t find those as helpful because they tend to over emphasize speed. In a work setting you’re often scored more on absolute performance rather than the number of minutes required to come up with the solution. Those exercises are still useful in an offline setting if the questions are well put together and scoring can be done outside the contest. There are also a number of programming sites that provide challenges at your own pace.

Three sites for programming exercises I recommend are:

  1. Project Euler- the problems here are generally mathematical and start insultingly easy while becoming quite hard. Checking solutions is particularly easy as the problems are designed to have short but unguessable output.
  2. ACM Contest Archives- this famous contest for college students doesn’t come with answers but is popular enough that you can probably find discussions for many of the problems. Each year’s problem set has a few that are of easy or medium difficulty and a few that are hard or very hard. Many of the problems are about selecting the correct data structures to model the solution.
  3. UVa Online Judge- an enormous number of problems of varying style and difficulty.

Comments

  • Anonymous
    June 08, 2009
    The comment has been removed