We do it in the office. I call it the "Developer Club"
Usually problems of varying complexity arise and compete with each other.
At the end of this, we move on to our decisions, do code reviews and discussions, and then use test results or other people as a decisive factor for whoever wins.
As a rule, the loser should buy lunch for the winner :)
For ideas to do, try Top Coder material , stack overflow programming issues, or even simple crackme available on different programming sites.
The basic rules that you must adhere to include the following:
- Make it fun
- Make it educational
- Do it honestly
, , , , , , .