1) taking instructions from someone else on exactly what to build, and how (choice of framework etc)
2) working backwards from someone else's code to figure out what they were thinking and how to modify it to the requirements/add a new feature/whatever
I got into programming because it was a great form of self-expression. I've had some great jobs that related to my interests, e.g. adding variants to Chess.com, but at the end of the day that was still someone else's project and I was just the guy they were getting to build it for them. The inherent satisfaction wasn't there. YMMV though obviously, but I like to use an art analogy: if you're a painter, you'll always be frustrated and demotivated painting portraits of people's pets -- even if it's for charity, or you like the person, or whatever.