When I started work many years ago, I started as a mainframe programmer and not especially good one really. The life of the programmer was really rather boring, we took designs and specifications from analysts and wrote code to do what was in the specification. I really was not cut out for it and gravitated to systems where it was a lot more immediate and a lot more varied on a day-to-day basis.
Now we talk about developers more often than programmers; it is an interesting change in terminology and focus. Developers appear to have a lot more freedom, certainly the Agile methodologies seem to have an immediacy that allows the developer to get feedback and a result a lot quicker than we used to. It seems a more interesting and varied proposition than it was back when I was cutting my teeth. I might not have made the change to Infrastructure (although anyone who had to maintain my code might disagree) if things had been different way back then.
It does make me wonder how we attract people into the Infrastructure side; DevOps not withstanding, there is still a role for the Infrastructure Specialist. The guys who really know how to put together a data-centre environment. It does appear to be getting incredibly hard to get entry-level interest, perhaps programming is just too much fun these days?