Skip to content
Peter Minten edited this page Apr 19, 2015 · 1 revision

Exercises can be divided roughly into three types, based on what they're trying to achieve.

Focus

Focus exercises are simple and intended to make the user familiar with specific features of a language. For example leap teaches people about if-statements or boolean logic (depending on how they implement it), Hamming is all about looping over a collection/string. The key point of a good focus exercise is that it steers the user in a particular direction and has little to distract from that.

Practice

Practice exercises take multiple concepts and let the user experiment with different approaches. Practice exercises are complex enough to enable multiple approaches but simple enough that the user doesn't have to think hard to find at least one possible approach. Bob is a good practice exercise, it involves conditionals and string operations and some fairly simple logic, but there are quite some different ways to implement it (regexes, splitting into different functions, etc).

Challenge

Challenge exercises go beyond practice exercises in that challenge exercises require the user to come up with a non-trivial algorithm or require the user to think of lots of edge cases. These are usually longer exercises, though I (@pminten) would rate prime-factors as challenge as well (since it's a bit tricky to do efficiently)

Clone this wiki locally