I've been mulling this one for awhile. Where is a programmer more likely to be challenged, do great work, and feel fulfilled in what they do?
I used to think a good corporation offered the stability and environment to help a programmer hone his skills and have a sane workday. I still do think that to some extent. On the other hand, I've seen bright programmers getting relegated to unchallenging stuff.
At the same time, I'm seeing corporations continually shopping the cool, cutting edge stuff to outside agencies (iPhone, iPad, Android, etc.). The assumption is that the competency doesn't exist in house. On the other hand, I've seen agencies relegate programmers to dumb deadend projects because they're cash cows.
Where's an aggressive young programmer to point himself?