Unfortunately, being a programmer is bit of a dead-end position in the commerical world. Many companies treat you like trained monkeys that can be shipped in and out.
That's because most programmers only want to act like trained monkeys, which is unfortunate for the rest. I encourage my programmers to something that lets them progress up the food chain; except they always come up with some whiny excuse to avoid being responsible for anything and insist on staying in their trained monkey role. And then they complain they're paid peanuts.
The other problem is a lot "programmers" produce horrible code but wave their fancy pieces of paper around.