* If I don't like a situation, I will leave it. After all, the easiest way to change your environment is to escape it.
* Fear of failure is a great motivator. When you quit without having another opportunity already lined up, you have a lot of obvious motivation to find a new job since your income is $0. I've found it easier than lulling myself into complacency by continuing to get my income from the source I hate.
* Don't just zig, zag. I've been programming professionally for 12 years. Eventually I will stop, at the very least from being bored. Honestly, I want to work on Formula 1 cars, preferably before I'm 40. One day I'll stop building massive data engines for finance, and instead work on bleeding edge race car engines for racing teams. In the next 18 months I'm working on chasing another crazy dream successfully enough to have the option to walk away from big finance research.
It's difficult to describe my mindset about this, and being a ruthless, very self-critical perfectionist probably helps tremendously. I always joke that it's my mission in life to prove everyone else wrong.
The one that is hardest to follow is the first. For instance, I've never completely struck it out on my own, and have always worked for startups run by other people. My solution was to create a business that could be successfully run by myself, with no help from anyone. That's in the works... but in the meantime, I'm at another startup.