Choose a job you love, and you will never have to work a day in your life.
Being a programmer/developer/software engineer is great. We get to do something we love in an industry that is only decades old. We can do things that very few people in on this planet can do and even fewer can do well. We get to be both artists and scientists. We get to create things that hundreds, thousands, or millions of people use. We get to solve problems that improve the lives of other people. We get to turn abstract thought into something concrete and usable.
All that being said, I'm constantly astonished at the number of posts online these days about developers who are unhappy at their job, truly unhappy. After reading some of the stories out there it's a wonder how some people keep from living in a constant state of depression. The fact that some managers and/or co-workers can manage to negatively affect the lives of their colleagues at such an extreme level boggles the mind.
And, even more astonishing is the fact that most of us (I've been there before also) put up with it! We feel like we are stuck where were are and there couldn't possibly be anything better out there for us. It's almost as if we've contracted some special strain of Programmer's Stockholm Syndrome.
So here's the deal, if you are unhappy at your job then leave, it's that simple. There are plenty of really excellent companies out there doing fantastic and exciting work that are just clamoring for someone talented like you.
When you are unhappy at your job, it affects your entire life. Strife at the workplace can impact your physical and emotional health, your ability to get passionate and excited about things (even outside of work), and worst of all, it can hurt your relationships with friends and family.
Life is way to short to get stuck doing something you don't enjoy. If you find your wellbeing negatively impacted by your job then it may be time to move on to something better. If you are at this point or at least think you are, I'd recommend that you find your quitting point and learn what other companies are looking for out of a candidate before taking the leap.