![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Boy, I have rather mixed feelings about this article. Summary: a 64-year-old software engineer, who interviewed with Google unsuccessfully several years ago, is trying to set up a class-action age-discrimination lawsuit against them.
Actually, no, that's not true -- my feelings really aren't mixed. Mind, I fall into the class in question: I'm 50, and I did interview unsuccessfully at Google back in 2012. But that had nothing to do with age -- AFAIK, that had to do with the fact that we were in the middle of the nymwars at the time, and I made it unambiguously clear that I was going to be a complete and deliberate pain in the ass about it if I was hired.
I won't claim that there's no age discrimination in the software industry, but I would bet there's a good deal less than many older engineers would like to believe. The reality is, it comes down to skills, because skills in the software industry rust *frighteningly* fast. I mean, the guy launching the suit was specifically looking for assignments in C++, Java and PHP. Of those three, the only one I consider *marginally* current is Java, and I would far rather see someone with C# experience. (Yes, yes, you can all read your anti-Microsoft bigotry in. The fact is, Java is only now catching up to where C# was ten years ago.) And I'd consider PHP on a resume to be a strong net negative.
I've known too many engineers who really believe that software was basically solved by Knuth, Dijkstra and company fifty years ago, and that getting up to date is simply a matter of learning the syntax of another language. That's bullshit -- it's never been true, and it's less true than ever now. The programming business has not only continued to evolve in recent decades, that evolution is *accelerating*.
That's happening at all levels. The languages are in the middle of another paradigm shift: if you're not comfortable with at least the core of functional programming (as well as OO), you are facing obsolescence. Software architecture has realigned almost out of recognition over the past five years: you need to be comfortable with scalable approaches, preferably including map-reduce approaches such as Hadoop / Spark / whatever, and ideally grokking the Actor model as well -- not to mention being completely solid on parallel programming. Even the *process* of software development has changed radically in the 15 years since Extreme Programming started the revolution -- while you need to take the trendy consultants with a grain of salt, you absolutely need to be comfortable with the core agile processes in order to be effective.
It's easy to believe that you're being discriminated against, when the truth is you're just *rusty*. Putting this in concrete terms: I spend an average of 30-60 minutes *per day* on self-education in the field. That takes many forms -- reading documentation on new tech, watching presentations, using new technologies in practice, and participating in the communities around that tech. I consider that to be part of my job, and I've never hidden it from employers -- if I'm going to stay sharp, I need to put in the time learning and exercising new skills, so that's part of what you're paying me for.
The lawsuit cites the low average age of Google employees as the basis for believing there is age discrimination. Even granting their numbers (which I don't -- they're based on self-reported data from Payscale, which I would bet skews young), I'm suspicious of the assumptions here. I *expect* any high-end software company to skew young -- not because of intentional discrimination (at this point, most sensible companies will hire any really good programmers they can find), but because there just aren't enough 50-year-olds who are willing to put in the work and discipline to stay sharp. If your skills aren't current, don't expect people to want to hire you.
The moral of all this is, as I've said many times: if you want to work in software, you need to focus on self-education, and make a lifelong habit of it. Several of my friends are professional veterinarians, and I've always found the mandatory continuing education requirements of that field to be intriguingly wise. I enjoy working in an unregulated field, and I suspect most other programmers do as well, but that just means that you have to take responsibility for that continuing education yourself. Expect that to be *hard* -- the world is constantly changing, and you are never going to get to stop and breathe. But it's necessary if you want to stay relevant, and if you embrace it whole-heartedly, it does keep things mighty interesting...
Actually, no, that's not true -- my feelings really aren't mixed. Mind, I fall into the class in question: I'm 50, and I did interview unsuccessfully at Google back in 2012. But that had nothing to do with age -- AFAIK, that had to do with the fact that we were in the middle of the nymwars at the time, and I made it unambiguously clear that I was going to be a complete and deliberate pain in the ass about it if I was hired.
I won't claim that there's no age discrimination in the software industry, but I would bet there's a good deal less than many older engineers would like to believe. The reality is, it comes down to skills, because skills in the software industry rust *frighteningly* fast. I mean, the guy launching the suit was specifically looking for assignments in C++, Java and PHP. Of those three, the only one I consider *marginally* current is Java, and I would far rather see someone with C# experience. (Yes, yes, you can all read your anti-Microsoft bigotry in. The fact is, Java is only now catching up to where C# was ten years ago.) And I'd consider PHP on a resume to be a strong net negative.
I've known too many engineers who really believe that software was basically solved by Knuth, Dijkstra and company fifty years ago, and that getting up to date is simply a matter of learning the syntax of another language. That's bullshit -- it's never been true, and it's less true than ever now. The programming business has not only continued to evolve in recent decades, that evolution is *accelerating*.
That's happening at all levels. The languages are in the middle of another paradigm shift: if you're not comfortable with at least the core of functional programming (as well as OO), you are facing obsolescence. Software architecture has realigned almost out of recognition over the past five years: you need to be comfortable with scalable approaches, preferably including map-reduce approaches such as Hadoop / Spark / whatever, and ideally grokking the Actor model as well -- not to mention being completely solid on parallel programming. Even the *process* of software development has changed radically in the 15 years since Extreme Programming started the revolution -- while you need to take the trendy consultants with a grain of salt, you absolutely need to be comfortable with the core agile processes in order to be effective.
It's easy to believe that you're being discriminated against, when the truth is you're just *rusty*. Putting this in concrete terms: I spend an average of 30-60 minutes *per day* on self-education in the field. That takes many forms -- reading documentation on new tech, watching presentations, using new technologies in practice, and participating in the communities around that tech. I consider that to be part of my job, and I've never hidden it from employers -- if I'm going to stay sharp, I need to put in the time learning and exercising new skills, so that's part of what you're paying me for.
The lawsuit cites the low average age of Google employees as the basis for believing there is age discrimination. Even granting their numbers (which I don't -- they're based on self-reported data from Payscale, which I would bet skews young), I'm suspicious of the assumptions here. I *expect* any high-end software company to skew young -- not because of intentional discrimination (at this point, most sensible companies will hire any really good programmers they can find), but because there just aren't enough 50-year-olds who are willing to put in the work and discipline to stay sharp. If your skills aren't current, don't expect people to want to hire you.
The moral of all this is, as I've said many times: if you want to work in software, you need to focus on self-education, and make a lifelong habit of it. Several of my friends are professional veterinarians, and I've always found the mandatory continuing education requirements of that field to be intriguingly wise. I enjoy working in an unregulated field, and I suspect most other programmers do as well, but that just means that you have to take responsibility for that continuing education yourself. Expect that to be *hard* -- the world is constantly changing, and you are never going to get to stop and breathe. But it's necessary if you want to stay relevant, and if you embrace it whole-heartedly, it does keep things mighty interesting...
(no subject)
Date: 2015-04-29 01:36 pm (UTC)I'm going to go with age-related discrimination as a systemic reason for so many companies ti skew young. Older workers are seen as expensive specialists unwilling or unable to learn new skills, all of which are to some extent true. But it may not be a reason to pass on such employees, and the numbers don't hold up if you look at all hires.
This stands against whether they provide organizational value commensurate with their cost. But profit drives companies to the cheapest, easiest-to-mold pieces of clay they can find...and then we end up with short-sighted software that encourages the worst in human interaction. Likewise, without a counterbalance people hire people who look like them, age especially included in that.
(no subject)
Date: 2015-04-29 02:12 pm (UTC)I have also worked with a considerable number of skilled older programmers -- but I've also observed a pretty clear bell-curve effect, with more and more of them ceasing to keep up with the times as they get older. I've always assumed this is part of why so many gradually move into management instead.
Keep in mind my viewpoint, as both an older programmer and someone who hopes to need to hire programmers. I care about this issue a *lot*. I think you underestimate the effect of, "unable to learn new skills". The sad truth is, *I* wouldn't hire the majority of programmers my age, because they have demonstrated that they are falling behind the times. It makes me tear my hair out, how many guys I've worked with who turned out to be less useful than an entry-level programmer, because at least the newbie *understands* the uphill road ahead of him.
(It's pretty much always guys, but that just reflects how few older female programmers there are. Interestingly, though, the few older female programmers I've worked with have been well above-average in terms of continuing to learn. I wonder whether there's an ego effect here -- whether the female programmers typically get less invested in believing that they know it all already.)
In my experience, it's a significant effect. I know a disappointing number of guys who, somewhere along the line, just kind of *relaxed*, stopped really learning, and never really figured out how to start again, much less catch up. If I'm running a serious software company, I absolutely do not want anyone like that in my engineering staff. Yes, they may be good guys, and they often make good managers, but they don't produce good up-to-date software.
It's not about age, it's about mindset -- I want to see a passionate and effective devotion to *learning* in all my engineers. In my experience, yes, that correlates significantly with youth. That's not causation: there are lots of older engineers who have kept their minds lively, and they are often the absolute best; I have hopes to remain in that category myself for another 15-20 years. But that takes serious effort, and I do think it accounts for at least much of what might appear on the surface to be age discrimination...
(no subject)
Date: 2015-04-29 03:16 pm (UTC)If the age-graph of trained and capable individuals available skews young... hiring patterns should match.
In parallel to that: while Justin's comments are cogent for HIS purposes, the field of computing and software engineering is now broad and deep enough that no one can pretend to know everything. For example, I can't touch his expertise in Scala, but he can't touch mine in the development of medical devices.
Are the specific skills and knowledge in software engineering that Google values most, equally distributed across the age spectrum?
Scala may be a good example - I certainly enjoyed learning it last year, and would love to continue using it, and expand my knowledge. But it has NOTHING to do with what my employer pays me for, and nothing to do with the work we do. I'd have to switch employers for the sake of that sort of skill-use: and my employment decision is based upon more than just "the neat new thing". (We are doing more functional programming, but not in Scala: our clients don't use it either.)
Is it discrimination if we don't know the age distribution of either software engineers, or the skill sets that Google most prizes?
(no subject)
Date: 2015-04-29 04:43 pm (UTC)Fair enough, although I'll point out that most of my discussion is quite relevant to a field next door to yours -- bioinformatics. I'm hearing an awful lot from that end of things in the Scala community right now, both on the back-end side (folks who care about scalability of data processing are getting seduced by Spark) and the front-end (a bunch of folks using Scala.js for knowledge-sharing with RDF, as well as visualization). It's a slow process, but definitely happening.
But yes, the core of your point is exactly right: it all comes down to the skills that given employers currently value. And the thing is, I believe those skill sets are, on average, evolving faster than most programmers realize. Trebly so at any of the cutting-edge Internet companies, many of which are not only *using* these new technologies, they're often deeply involved in *developing* them. (It is now trendy for Internet majors to be significant contributors to the open-source world; I applaud that trend, and am starting to play that game myself a bit.)
Hence, the excerpts given in the article (I haven't read the full complaint) sound like someone missing the point. If you're applying to Google, the skills you brag about should be, eg, Python, Go and MapReduce, not C++ and PHP. Indeed, from my experience of interviewing twice at Google, if you aren't comfortable with MapReduce-style approaches, you're basically a non-starter -- most of the interview questions I got expected you to be fluent in that mode of thinking...
(no subject)
Date: 2015-04-29 04:53 pm (UTC)If you lack the former, but your skills are not inappropriate, you can still compete with the latter.
This was certainly true with my experience in interviewing at Google, and at other "equivalent cutting edge" places. Mostly they liked to know you have some basic skills, and then they throw puzzles and questions at you, designed to elicit your intelligence, and to see if you can usefully integrate new ideas and knowledge into the conversation.
I know that when I interview people here, I try to do the same thing. Part of that is our consulting-based charter means that no matter your expertise, you'll be asked to inculcate new expertise all the time.
Mental flexibility and adaptability do tend to fade with age, especially when not constantly challenged. I certainly agree with you that the older people get, the less mental agility and skill-acquisition they demand of themselves.
But that doesn't mean Google "age discriminates". It means that what they look for (and what I look for) is more rare in older applicants. Age discrimination means "you would be perfect: but too old". (I recognize that you haven't made the claim that they do discriminate...)
(no subject)
Date: 2015-04-29 04:58 pm (UTC)