views:

2859

answers:

11

What are your favorite code kata?

  • What do you do to practice software development?
  • Where do you go to find new small projects to practice?

We already know Jeff's answers.

+1  A: 

I found a link to Project Euler last night through XKCD's blag [sic]. I like his suggestion that:

"it’s a great way to learn a language; I started picking up Python last year by doing the first couple dozen Project Euler problems in it." source

I'm trying to work through them from a Test Driven Development perspective myself, as a way of reinforcing the fundamentals.

Bill
+5  A: 

Etudes for Programmers is quite outdated, and the etudes may be too large to be "kata", but its Russian translation was quite an inspiration for me when I was learning to code.

Arkadiy
I loved that book when I started programming.
Kwang Mark Eleven
+18  A: 

I pick up some excercises from Project Euler when I can:

Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.

http://projecteuler.net/

amrox
I don't agree. PE is **far** more about the math than it is about programming. It definitely hones your math and algorithm design skills, but they aren't really software engineering exercises.
Adam Jaskiewicz
+1  A: 

For pure problem-solving and algorithm skills, try the IOI problems - they're great fun, and come with some evil test data. If you catch it at the same time as the contest itself, they often hold an online contest where you can try the questions in more realistic conditions.

Note: the 2008 website is incredibly ropy, if you're after this year's questions.

Luke Halliwell
It takes some digging to get to the sites. You have to go to the end of the Wikipedia article, then look at the each ioi site, such as ioi2004.org, and then look around for the tasks.
Spencer K
A: 
  • What do you do to practice software development?

    Lead a team that builds real-world production software that are used by thousands everyday.

  • Where do you go to find new small projects to practice?

    My very own machine. Every now and then I find something on my machine that annoys me or requires a few steps to accomplish, I then set out to write a program that would deal with the annoyance and/or reduce steps to accomplish some tasks.
    .
    BATch files and powershell scripts are good "small project" practice from time to time as well as rolling/maintaining your own "AutoHotkey" scripts. And since I am a command line junkies, I have a lot of ideas for console applications as well.
    .
    And there are all the puzzles, just go to some online browser-game like Neopets and try to write a program that solves one of their minigames efficiently.

chakrit
+17  A: 

Take a look at Larry O'Brien's 15 Exercises to Know A Programming Language.

For example the first exercise is:

Write a program that takes as its first argument one of the words 'sum,' 'product,' 'mean,' or 'sqrt' and for further arguments a series of numbers. The program applies the appropriate function to the series.

Educational goals of exercise 1:

Requires basic control flow, basic operators, and the math library. (Complex numbers available?)
What are arrays like?
What about parsing / implicit conversion?
Are functions first-class (availability of Map() and Apply())?
Error handling: What happens on invalid data?

The exercises often build on themselves and use code or data from previous tasks. The exercises in general tend to be much more practical and less "puzzley" than Project Euler

slm
Your links don't work anymore. Use this: http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-1/
Joe W.
+4  A: 

Well, I'm biased, but I like my http://codingkata.org *g*

stephanos
+2  A: 

My favorite is definitely CodingBat.

Sean O'Hollaren
A: 

best kata is fizzbuzz! to solve in 15minutes with OCP rules

A: 

Topcoder practice rooms and challenges

Andre Holzner