The trick is for each new project to stretch yourself just a little beyond what you currently know how to do, but only a little.
If you don't stretch yourself at all, you'll never learn anything new. Plus half the fun of programming is the chance to learn new stuff!
But if you stretch yourself too far, you are unlikely to succeed at your final goal.
When you are planning a project, you should ask yourself, what percentage of the things needed for this do I already know how to do? If the answer is 100%, or even 90%, maybe you should try something more ambitious. But if the answer is just 10%, you should probably start with something a little easier.
XNA Framework Developer -
blog -
homepage