| Please note extremely effective demonstration of "privilege". Two employee candidates interview successively. One is 25, the other 53. Both are comparably conversant in technology, evince comparable cognitive capability, are equivalently literate in the problem domain being tackled by the role they're interviewing for. Privilege: the 25 year old is not asked (overtly or subtextually) whether they "want to be doing this". It is simply assumed that the 25 year old's head is in the game. No demonstration of lifestyle commitment to the craft is required. Take the idea and turn it around in your hands for a little while. Try this: imagine that instead of software developers, these were master woodcrafters; luthiers, say. Notice how the subtext changes: age is an asset. A lifetime spent designing guitars is a signifier of passion and competence. Flip the switch back to development and notice how age suddenly connotes something else, like "career failure forcing person to retain technical role". You will get old someday, if you're lucky. But controlling for spectacularly unlikely values of "lucky", you are aren't going to strike gold in this field, such that you'll have no career concerns when you're 45-50. It is unfortunate that our field manages to devalue competence and experience that way it does; here's a second-time Rails gem author instead of a virtual memory system designer, see you at SXSW! |
More importantly, the culture and business of instrument-making is largely the same. You have a shop in your garage or basement, or in the back of your store. You make instruments by hand a few at a time and sell them, preferably for cash, to individual buyers. You learn by apprenticing with someone who knows, or reading books and practicing like crazy for decades. Maybe you'll scale up to a factory with a few dozen journeymen cranking out instruments… like Stradivari did, three hundred years ago.
The problem with programming is that it's unstable. And I contend that it isn't even the unstable languages and platforms that hurt (as everyone says, experience makes it easier to learn new languages). Nor is it the eternal brokenness and turnover of APIs. This is not a new problem, nor does the patience to deal with it necessarily decline with age. Indeed, to an extent the opposite is true: experience has taught me not to panic when my favorite API is shot out from under me. (The first time it happens is a really awful surprise and a test of your patience, but the fifth time it happens you're probably used to it.)
No, I think the real problem is the constant turnover in culture. Programming in the late 1980s, for example, was a completely different social universe than web consulting in PHP, or iOS development: Different typical org structure, different business model, different way of learning the trade, different communities and communications channels, different career tracks, different project management styles, different constraints, different everything.
Immersing yourself in a new culture is hard. You're going to get schooled by kindergarteners, so check your pride at the door. And you're going to have to relearn your whole approach to the business, not just a new syntax or a new set of APIs. You're even going to need to learn new jokes. And the biggest challenge of all is that your old culture rarely dies cleanly, so you're never quite sure if you're doing the right thing by becoming an expatriate. Why not just go home, where you have the seniority and the contacts, where you know the old stories and can visit the old hangouts? The old way is shrinking, but is it really time for the funeral?