I've just read a great blog post by Josh Braegger. I highly recommend giving it a read.
5 Ways To Burn Out Programming
1. Think about your project and only the project
...You put off fun features for the sake of hitting a deadline...
...you started programming because you thought it was fun, why not keep programming because it's fun? Take that little extra time to put in a feature you want...
2. Have a negative attitude toward everything
...the best projects I've worked on worked out that way because we had a great, positive team. We enjoyed showing up every day to work, told each other when we did awesome things, held back heavy-handed criticism and phrased it in a productive manner.
3. Use the tools you know, because you're faster that way
...you should prototype, play around, and become an expert in new tech...
4. Switch jobs often
...Your career stagnates, you don't develop your skills as deeply (only breadth), people don't trust you'll stay employed for a while, and you're constantly having to prove yourself...
5. Work long hours, ignore your life
...you go die-hard to meet an impossible deadline. You delivered the project on time, with all the extra features you wanted. You are the hero. High fives all around. And if you're lucky, you'll get that bonus.
That's great the first time. But how about the second. And the third. It's a bomb, and you dont know how short the fuse is.
Source 5 Ways To Burn Out Programming