The first thing to learn is that you need to limit the amount of things you 'want' to add. Make a small list of features and try and accomplish them. In that way its easy to keep control of the amount of work you are adding to the program.