I've found it's easiest to plan what you want to do then break it down into smaller parts so you can learn as you go. You may have to go back and redo most of the initial code as you learn better ways of doing it, but its a great way of starting small and making constant progress to keep you encouraged.
If everything seems to be going well, you have obviously overlooked something.