It's fun to solve simple problems effortlessly. It's fun to solve hard problems after banging your head against the wall for a week
Simple problems that require a lot of code are not fun. Neither are medium problems that require a lot of code. Herd problems that require a lot of code fill me with joy.
Programming is like an abusive relationship. Mostly days it just hurts you. But when it's good it's great... It doesn't just give you the satisfaction of a job well done, it expands you mind
All my problems with programming stem from when I have to work with shitty specifications, bugfixes from bitchy QA people, and management. Alas, this pays the bills.
When I can do my own thing at my own leisure, against my own standards and unit and behavior tests of my own design, I am happy.