The other thing that's helped me is realizing that anything worthwhile is hard. If you want to stick with a project until it's done, you're going to get bored, you're going to run into roadblocks, and you want to cultivate a sense of "this is what I want to do, and that is just a temporary issue that I will work through".
Last thing that's helped me is finding a support group. I use irc, specifically I hang out on irc.darwin.network (shameless plug, I kinda co-run it), there I can chat with people about what I'm working on, they can ask cool questions, etc, keeps the juices flowing and reminds me why a project is worth sticking to.