I probably swear more at my work computer than I do anywhere else. Being a professional programmer means I'm in a job where there's certain moments of satisfaction and certain moments of frustration that accompany the skill. When things go right, the job is very rewarding. Puzzle solving is its own reward, so to get paid to do it professionally is about as good as it can get. But of course those moments are tempered with the frustrations that come with not being able to find solutions or having to rework entire conceptual frameworks in order to solve the puzzle. So in that sense it can be a really frustrating and stressful job. Combine that with all the issues that come with development cycles, business requirements, testing, etc. and those moments of satisfaction can at times seem a distant memory.
My extended family often ask me about how I like my job. I say it is what it is, which probably says something about my communication skills more than my work. The truth is that at times I really like being a programmer, and I can't imagine a job I'd rather be doing. Perhaps a few more years of being in the industry will make me so jaded as to question just what I'm still doing, as seems inevitable with most programmers, but for now I still enjoy the job for the merits of the job. It's infuriating, frustrating, intolerable, and at times futile; but has the capacity to provide such satisfaction to keep it a desirable activity.