Ageism in IT?
Embedded Geek writes "It's hardly a new topic, but BBC is running a story about ageism hitting Gen-X, especially in IT. As a 34 year old coder, I was horrified to hear a quote from a *hiring manager*: 'In the IT sector (and coding in particular) younger minds generally work faster -- I would rather employ a keen teenager who code programs computers quickly than an older person.' It didn't help that the person is 32 years old. My kneejerk reaction, the same one anyone else over 30 would have, is that the guy is a buffoon (I'll withhold my preferred, spectacularly vulgar, term). The problem is that I do not believe his idiocy is unique - I have definitely felt the vibe when interviewing. It's frustrating, since Gen-X is finally shedding the media hyped 'slacker' stereotype only to run headlong into this garbage. Have any other Slashdot readers seen this? What is the youngest you can be before some PHB declares you fit for the scrap-heap? Other than stocking up on hair dye and botox, what steps can I take to prepare for the future? Share your war stories here." Ask Slashdot handled this topic over two years ago. Of course, this behavior could be explained away as economic concerns, as the decision to hire younger (and typically cheaper) employees can directly affect the bottom line. However, one has to wonder if the decision to go with less experienced programmers also affects software quality, in the long run. What are your thoughts on this subject?
Or a new bunch of people becoming old enough to experience it. I'd feel worse about it if the people who are starting to experience age-based discrimination weren't the ones benefitting from it a few years ago.
'I ain't a liar, baby, and I ain't proud I just want what I'm not allowed.' -- Violent Femmes, 36-24-36
Give me a seasoned vet who has the depth and breadth of experience to have learned all of those "only happens once every x years" type of lessons over some young, fast coder who has yet to learn these lessons.
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
Its easier to sqeeze 80+ hrs out of someone with out kids, house and a wife.
US Democracy:The best person for the job (among These pre-selected choices...)
I think what may really be happening is that younger people can devote themselves to a subject with an intensity that older people simply don't have to spare. I know I have often wished, in my studies, that I could be eighteen again and essentially have two-thirds of my time to waste totally, instead of squeezing dribbles of time out here and there for my own projects. I certainly know I spent a lot more time studying new technology back then.
"He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
As you get older, you need to make sure to hone your skillset so that younger, less experienced workers cannot do what you do; whether it's significant project management experience, teambuilding, extreme expertise in an area, or something else, you need to make sure you are uniquely valuable, and that your years of experience add to your value-for-the-money, not dilute it.
Managers look at ages 18 - 25 as people they can abuse. They are inexperienced so they won't stand up for themselves, and usually aren't married so they can work them 60 hours a week for low pay.
Religion is a gateway psychosis. -- Dave Foley
This is totally insane. I'd much rather have an older, _more experienced_ coder, who may be slower (tho I don't believe that to be true) than some fresh out of college coder.
As someone _in_ college, looking at the vast majority of my classmates (actually, as vain as it sounds, _all_ my classmates) people coming out of college don't have any business going anywhere near critical code. You don't become a good coder by going to school, after all, you become a good coder by writing a metric shitload of code and thus getting real-world experience.
I believe I'm so much better than my classmates because I've been doing this since I was 9, and have 11 years experience writing code. And no, I _don't_ spit out as much code as I did back when I was 10 or 11, and poured out code all day long to do whatever dumb little project I worked on then.
But you know what? I code less now, because I use my experience to sit back and think about what I'm going to code, and end up not only writing higher quality code, but less code to get the same job done, as I did back when I was a dumb little kid!
Bah, I'm just ranting now. Think I've made my point at least 3 times by now. ~,^
It all comes down to moola. You can have a well experienced older coder, and one a young kid that can code well....
First of all, the kid is probably half (or less) the cost of the older guy.
Second, you can try to lure the kid into staying in the project for a long time, thereby helping maintainability.
But on the other side of the fence, older coders don't want to be in management, so they'll always be your gruntwork force. If they wanted to be in management, they woulda tried a long time ago.
Surprisingly, though, most techies have no interest in going into management...
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
There are two sides to every coin. I'm a manager of five developers and six support staff.
In my experience, younger people tend to work like dogs until it stops being fun for them. They will pull all nighters all week when you're trying to launch a product, won't need to leave early for soccer and little league games, and won't get in trouble from their non-existant wife for leaving a few minutes late.
On the other hand, older coders tend to work at a more steady pace, have fewer errors, and spend their time thinking about something before they start jamming out code. They also are more reliable at showing up on time, not burning through vacation and sick time the second it becomes available, and following through with their committments.
It isn't really fair what that manager said, but I think they might have experienced some of what I just mentioned above. Although things like that generally aren't to be said "out loud" behind closed doors you'll hear many people talking about things they have observed managing people.
What's the best solution? A balance of both, in my experience. You need an effective mix, an although young people can be great coders and older people can be off sick, those are the general trends I've seen in seven years being a manager.
You have to remember that you are there to solve your employer's problems. If he's looking at someone to produce 1,000 lines of code per hour then you wouldn't be interested in the job anyway. You want to work somewhere focused on quality over quantity, and that is probably more biased to older more experienced developers in many cases than younger folks.
Case
While it may be true that people that learn the piano at a younger age are better that one who picks it up later in life, it is also true that a person who has been playing the piano all their life is better that a young person just starting out. I think the same holds true of software. In all the jobs I've worked at recently, the younger programmers are quick to take advantage of my experience, even if they are quite good themselves. I've been programming for 30 years and I've learned a thing or two in that period. Of course, old age and cunning will overcome youth and skill.
Today is an ephemeron, doomed to the crypt of yesterday.
Other than are you at least 18, employers shouldn't be allowed to ask my age. They can't ask about my sex, race, religion or ancestry except on an anonymous affirmitive action survey. Age should be no different.
How ya like dat?
When I was fresh out of college (a little while back) I ran into something related. My boss definitely preferred me for the fact I was youngest and he probably perceived my general energy as also being faster at programming. But I also ran into another problem. Here's an example:
It's a late Friday afternoon and we've got plenty to do, but with plenty of time. The boss tells me he wants the work done for Monday morning instead of the extra week we were originally told we had. The older developers with families told him they weren't staying late Friday, they were going home. I told him the same, but he replies, "Why? You don't have anything better to do." Apparently since I was young and didn't have any family I had no reason not to work more. I was fuming and I didn't work late. He tried to pull that crap a few more times after that.
So not only are younger minds quicker, but apparently they're also easier to manipulate and take advantage of.
Developers: We can use your help.
I'm a piano teacher, and a computer scientist.
For the most part younger kids learn piano better simply because they put in the time and are willing try new things. My adult students often progress much faster than my younger students. Its only that most adults also have complex lifes already and can't put in the time a little kid can. My adult students that have trouble tend to do so because they are afraid of the piano. I must admit, however, that some young minds can simply make unbelivable progress for no single reason other than natural talent.
I think the same thing transfers to Computer Science. For the most part if you have used computers for years you are not afraid to try things. Many adults are very afraid of computers. Kids simply explore and enjoy them.
I think Gen X'ers get the rotten deal in all of this. The generation before them WAS worse at computers at an old age. This is no longer true since many Gen X'ers have had computers since Commodore 64 or earlier. It will take another generation before this is ammended.
And for all of you programming divas just realize that programming isn't a "god given talent" and neither is piano. You simply put in the work, do what you love, and good things come from it. Don't think you are special for it, because no matter how good you are there will always be an 11 year old asian girl who is better than you'll ever be.
-Rob
When those young, fast and inexperienced coders give them brittle, unmaintainable code that soon collapses under it's own weight, they will call in us old seasoned consultants to fix the problems at a premium price.
A manager that can't distinguish quality of work from quantity has no business making hiring decisions in this industry.
Disclaimer:
What precedes is not meant to reflect generally on young programmers. There are both brilliant and useless coders at all ages.
Trouble making decisions? Just flip for it.
Senior members are far more respected in the field of law, because it is understood that the older a lawyer gets, the more experience they have; concordantly, the more experience they have, the better a lawyer they are.
What does a lawyer do? Pretty much the same thing as a programmer. A good, experienced lawyer will have a specialty area of law, but be able to learn about new legal arenas as the need arises; likewise, an experienced lawyer will know the ins-and-outs of a specific arena in the legal system, including exceptions and loopholes a younger, less experienced lawyer might miss.
Same goes for programmers. An older programmer, generally speaking, will be more sensitive to over-using resources, will have a better grasp of programming methodologies, and will know about many more former bugs and programming mishaps than a fresh-out-of-college CS grad.
--
I Hit the Karma Cap, and All I Got Was This Lousy
I've been in the consulting world since I was 22 (started working in IT when I turned 20). I'm now 27 and I find that age-ism is the worst form of discrimination, especially among consulting clients. Since I have a well-established beard, I usually pass for 35 and that seems to give my clients the impression that I'm better qualified than one of my peers, who is exactly at the same point in his career. All of my bosses during my consulting career have always told me never to tell my true age to the clients for fear of losing business. This is especially true since the dot-com bust when all of the "young dot-commers were shown to be the frauds they are." This deception sickens me, but I have truly seen a huge difference in terms of instant credibility and career progression when people think that I'm significantly older than I actually am. (I'm starting to get a few gray hairs, so most people now think I'm in my late 30's-early 40's. Also, I got married young and have 2 kids and this reinforces their beliefs.)
I guess the whole point of my commentary on my situation is that people do discriminate based on age and you can either play along and help yourself out (and sell out in the process) or show your true self to the detriment of your career (and possibly of your consulting company's, if you're in my shoes.) That may not be politically correct, but it's the way of the world. Also, I think that it's not as bad to play along with the game to your benefit, as long as you yourself don't start judging people based on age, picking up the habits of those around you.
Why do I h8 apple?
My intuition tells me that people looking to hire programmers for mission-critical applications (database, infrastructure, medical, etc.) are going to be far more interested in older, more experienced programmers than game companies or in-house applications.
:)
A young programmer might be cheaper, might have more energy and drive, and might in fact produce more code -- but they may not produce the right code for the task. If your requirements are to bang out a rendering engine so you can get your game to market before BubbaSoft, then you want cheap programmers who are desperate/naieve enough to work 90 hours a week, and if they make a few mistakes so you can see through the corners, or your weapon can be slighly embedded in a wall texture... it can be fixed in a patch, noone will care.
OTOH, if you're looking to upgrade the medical database that's been running on a VAX for 30 years, and you really need to move it to a linux/oracle system before your VMS tape gets eaten by mice... you might want someone who's been doing this for a while so the mistakes they make are less likely to cost you 5 years of records.
I'm 34 myself, and I remember the stuff I wrote when I was 24. Yes, I churned out a bit more code, but boy was it ugly by comparison. What managers should remember is that programming is like writing, or composing... the more experience you have, the more elegant solutions you can find, and the more naturally you can express them. Young people don't worry about things like maintainability, or how some other fellow is going to figure out what they did. Some do, but most don't.
Of course, that's my opinion, and being an Old Fart (TM), I might just be biased.... or maybe I just can't remember it right...
Why hire young?
Younger IT workers will often put in absurd unpaid overtime, where most older workers won't.
Younger workers just out of college will often take a job at a low salary for the experience. Older workers won't.
Younger workers are often have more exposure to cutting edge tech than older workers who cut their teeth on cobol, jcl and basic.
Younger workers have lower expectations about benefits, perks, salary, etc than older workers who can remember the 'good old days' of 5 years ago.
Older workers are more likely to have children, families, in short lives. Younger workers are more likely to drop everything and fix that server at 3:00 AM.
Older workers have seen many managers pull many tricks, know how to spot them and how to deal with them. Younger workers are generally more pliable.
=brian
Some of the bad thing that older engineers are guilty of (and please do not flame, I know I am generalizing):
Now for the handfull that feel offended by what I just said (and can back that up):
Younger minds work faster but older minds work smarter. I have both working for me and the young folks may be holding larger and more diverse constructs in their minds, but the older ones are holding well-tuned, more efficient constructs in theirs.
Programmers with experience in applied programming (multi-user online systems as opposed to single-user applications) have learned lessons and developed tricks that young minds haven't. Both types have their advantages, but there's no reason to discriminate against the 30-year Cobol vet just because he's not going to pick up Java as quick as the 2-year web-slinger. He'll show you a thing or two about efficient data processing once he figures out how to apply his knowledge to the new syntax.
They should be teamed together, if you really want to get anywhere -- the older players will want to retire eventually, and the young pups need to have a model and mentor to get their lessons in
Pianos haven't progressed to 2,000 1mm-wide keys, or introduced three-dimensional keyboards, or decided to have little-endian keyboards with the low notes beneath your right hand fingers, or added green keys above the white keys, or added a Dvorak mechanism placing the most commonly played notes beneath your fingers.
Composers haven't introduced new semi-tone notes, located between B and B-flat, or decided to portray their music to the pianist in XML format. They aren't asking pianists to play notes in 2400MHz tempo, or even to get those albums cranked out before they go home for the weekend.
My point is that computer technology has changed dramatically from the time I started learning it (1973.) And I mean really, truly changed. Yes, there are certainly technological advances in pianos, keyboards, music and notation, and I don't mean to slight the skills of any pianist regardless of whether or not they have learned new technologies. But very few of those changes really alter how a pianist plays. The changes in programming have been fundamental. Everything I learned back in the '70s has been almost completely thrown out or changed (except for one thing -- the keyboard.) If I never learned more than what I knew back then, if I didn't keep up with new technologies and new development methodologies and instead kept writing assembler code filled with GOTOs, I'd be almost useless. It's more likely that I'd be mopping floors for a living.
Younger minds may or may not absorb information quicker, but that's not really the point. If people don't keep learning in this business they quickly become irrelevant, regardless of age.
John
What you say is true -- on the average. However, individuals deviate from the curve.
Also, there is a fallacy there about the biological "fact" you cite. You give no numbers. You imply that after 35, a person's cognitive ability drops so dramatically, so quickly, that they are unemployable compared to the non-impaired yunguns.
Actually, on the average, cognitive ability drops in a slow, sloooowwwww curve that takes decades to really show a difference. The difference between a 20 year old coder and a 35 year old coder, brain-biologically speaking, is damned near non-existent. Actually, since the 35 year old has 15 more years of experience, his brain can smoke, char, flame, annihilate and flambe the 20 year old.
The real fact is that the 20 year old will never acknowledge that the Old Guy is smarter. The difference between the 20 and 35 year old is how each of them (and the management!) judges ability.
A 20 year old, to keep to the stereotype, judges acuity in the abilities to keep up with trends, chat, game, and all the other things that he finds important. Since those things are not important to the older person, they can never measure up.
The 35 year old, however, measures acuity in more than just being current. They have seasoned judgement, perspective, and have witnessed a lot more pain than the kid has.
When I was 20, I never would have believed any of this, but having gone thru the wringer, I do have the perspective to understand what is important, and what is trivial.
Back to point: your biological fact also omits that the decline after 35 is for the population as a whole. Fallacy. A person who thinks for a living keeps their faculties sharper longer. So a coding 35 year old is a lot sharper, in programming, anyway, than the average 35 year old is.
I think the idea that younger minds are better, faster, more flexable, etc., is simply a smoke screen. The issue I've run into is that I can't compete salary wise against younger kids. I need to make at least $4,000/month, but someone right out of college, with no wife and|or kids might be willing to work for $2,000/month.
-- Galen Rhodes grhodes@the-chatter-box.com Journal: http://journal.the-chatter-box.com/users/grhodes "Consistency
With all due respect to Andy Hertzfeld, he probably didn't have nearly as much to think about when he was younger. By the mid-40's, the average programmer probably has a family (with birthdays, soccer games, tuitions, recitals, etc.), 1 or more mortgages, a stock portfolio of some sort that's only now getting the attention it really deserves, some insights on those political issues that were so unimportant before, some project management and perhaps budgeting, a health condition or two just starting to require some real attention, etc.
What the average 40-something has to make up for all of that is some perspective on what makes the most efficient code and use of his/her time, a deliberate pace of work, 20 years of experience, less emotional drama, maturity, stability, etc.
I'm a flight instructor, and it's easy to see where the illusion that young people learn better/faster comes from. Despite the popular notion of today's youth, they're not as cynical or as questioning/probing of your instruction as adults are. As an example, if I tell a 16 year-old kid that when you bank the airplane to the right, there is an initial yaw to the left because of a phenomenon we call "adverse yaw," he'll probably say "OK" and correct for it on the controls. If I state it so simply to a 40 year-old student, he'll ask why. So who has learned it better? The kid is immediately compensating for its effects, and is flying the airplane properly a bit sooner; but does he know why he's doing so? The adult understands the reasons behind the correction; but has delayed implementing the knowledge because of the time spent questioning.
Over the course of learning any complex task, these moments add up to a perception that the adult isn't learning as fast or as well as the younger person. In fact, they are. You simply have to tailor your training and your expectations for the difference in approach.
Hot Damn! It's the Soggy Bottom Boys!
All I can say is - after ten+ years of programming experience (and that's just industry, not counting the stuff I did in college and before) I'm still telling some people what hashtables are. And they were around before I learned to program.
At the most basic level, programming is the same as it was thirty years ago. You can just do more with it, is all.
How programs interact is not even all that different, just mechanisms moved into different worlds.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
That's the only education aside from computer training listed on my resume.
;-)
My comeback when people ask about it is that I've never been to college, but I taught it for a few years. (true story)
Diplomas are nice, but when the rubber meets the road, they don't mean much. They're mostly a tool to see if you have any of the experience/ability you claim. Without it, there's other ways to demonstrate your ability.
Actually, any company that would toss a resume because it didn't list college experience isn't a place I'd want to work anyway- not sour grapes; it shows a fundemtally flawed methodology that probably permeates the entire organization, and it would be better not to be there, in my opinion.
We're still working with Von Newman machines, with (roughly) the same architecture that Charles Babbage described around 1850.
I've been programming since I was 8 years old (I'm 26 now, that's 18 years of experience), and I feel confident that I can program in any language, paradigm, or technology. And not because I know every technology out there, but because I finally grasped that programming has nothing to do with computers at all!
Programming is not about knowledge of a particular technology or set of algorithms. It has more to do with a particular form of abstractions you build in your mind.
Learning how to do that took me a long time (almost my whole life), and I still have lots to learn.
What you must find in a programmer is that ability to create an abstract representation of a complex problem.
A younger programmer might find it easier to write the code immediately, but probably he will produce twice the ammount of code necessary for the task, with at least twice as many bugs.
An experienced programmer foresees problems that lie ahead, that might pass unnoticed to the novice.
So, bottom-line, the secret of success lies in experience...
I'm not saying we don't employ an army of COBOL programmers to maintain our old stuff. We do, and many people still have those jobs. But COBOL programs themselves are being phased out as new technologies move in, and many of those COBOL programmers are now learning Java so they can maintain employment. The army is shrinking. I think COBOL programmers are now little more than niche programmers.
As a matter of fact a buddy I had lunch with today (a COBOL programmer turned Websphere developer) was complaining that he was one of only about five people in the company who still knew CLIST (a scripting language for TSO that was popular in the 80's.) I'll tell you right now that skill has no value: if no one was left to fix that CLIST, we'd just be writing a modern replacement. It's not worth learning or porting. Old software will die, and I think that as replacements become easier to develop the end will hasten accordingly.
So, we can sit here and complain that "kids these days don't even have to know hex in order to program," or we can recognize that the world is changing and keep up. I'm worth having around today because I've kept up, not because I've spent 30 years sharpening my mad assembler skillz. You can argue that underneath it all it's still just ones and zeros, but as an industry we've moved way past that.
John
... in the hiring managers statements is this:
- The salary demands of a younger employee is going to be proportionally less than the salary demands of a more experienced programmer. Therefore younger = lower cost
- The younger programmer will not at first bristle at demands to work unusually long hours to get a job done. The more experienced person will question the need for working longer hours.
For a quality product there is no substitute for experience. Companies now are not looking to produce a quality product, simply a cheaper one.
Believe in things of which no person has ever learned
Yes, yes, I can see you're very experienced in pushing bits through hardware. Fine. But can you sit down in a room with a bunch of whining user representatives with conflicting and incomplete requirements, a project sponsor with a too-tiny budget, a director who doesn't know the meaning of the word "no", a legacy code base written in the 1980s but bought three years ago because of the glossy brochure, while forty thousand client machines are grinding to a halt because some fool messed with the permissions setting on a database? All this and you want me to stop and babysit an entry-level CS grad while he HAND OPTIMIZES a graphics pipeline because our C++ compiler isn't generating good enough code for me?
Why? For God's sake, man, what makes you think I have the time or inclination to shave 20 cycles out of my already mostly idle processor? Why would I take a perfectly good programmer and have him sweat away a weeks' worth of work for something nobody in my industry even knows how to measure?
I don't want my CS-graduate developers hand optimizing anything. We're in business doing other bean-counting things. Saving 20 cycles is pretty irrelevant to our clients; especially when they have 266 million of them available every second. I know it's damn relevant to many groups including game developers, but for what I work on we are much better off saving billions of cycles by optimizing our flow to reduce time spent waiting for slow, stupid users.
High level languages, and analysis and development processes exist for a reason: less experienced developers get more and better work done. Don't get me completely wrong: I grew up learning both assemblers and HLLs on some pretty obscure CDC and UNIVAC mainframes in the 1970s. I've gone the hand optimizing route. I've gone the hand developing route. I've even still got a roll of red wire-wrap wire in my desk somewhere. I appreciate knowing what I know, and deep inside I agree with you in looking down on those who don't know yet, and probably never will. I still have to go to those CS grad's desks and show them what goes on in the code their compilers emit.
But I've also learned to leave turning code into useful instructions to the compiler vendor. That's their job. My job is to turn our users' activities into useful data. Count the beans, don't drop them. So I don't need the guy who knows all the grungy details of the inner workings of the CPU and compiler. As a matter of fact he'd be damned bored in our shop. I really need him someplace more useful, like working for the compiler vendor. What I need are people who can meet with the users and the analysts and still get code out that serves our business well. If a one-effing-mouse-button development environment makes that happen faster, I only see good come from it.
John