1. It needs to be divided into as many sections as possible. This will allow you to manage your expectations about how fast things can progress.
2. Each section should have a time added for testing, debugging, mistakes and delays.
3. A review period is essential after each new section to make sure you can actually understand what happened.
4. The project itself should really be as easy as possible. It might be tempting to shoot for something more complicated but the first one is really just to test your working relationship. If all goes well, there will be plenty time for more specs.
5. Establish payment milestones early. Even if you miss them its still good to do.
6. Ask for screencasts. This will give you something to review in your spare time and explain that you expect mistakes, searches, pauses etc. Its just to get an idea for how a more experienced programmer solves problems.
I'm sure more will occur to me as I progress but these are my first 6 takeaways.