Find a place.
Electricity and internet are all we need, but it never hurts to plan on feeding the code sprinters, also.
Find some people.
Some veteran programmers signed up before calling a sprint helps ensure that all issues can be handled. Ideally, someone with commit access to the project or projects that will be worked on should be present, or at least committed to work remotely.
Decide up front whether we want to teach people, or just patch code
A code sprint can be intended for experienced developers only, ready to dive in and write patches for the software. It can also be open for anyone to participate in any way they can.
It can be both, but we need to decide up front in order to set expectations and plan accordingly. At least one person must be planning to spend much of their time teaching rather than coding to make it a good event for beginners.
Coordinating with people at other locations
Traditionally at a code sprint people write issues down on a whiteboard... or a piece of paper.
Can post issues we're working online.
In addition to having a central location, it is usually best to have one person take primary responsibility for recording issues and who is working on them.
either a Drupal wiki page such as at groups.drupal.org, or in a real-time collaboration document such as Etherpad (available hosted at various places including http://piratepad.net/ )