Ask Slashdot: Will Older Programmers Always Have a Harder Time Getting a Job?
Theseuss writes "Given the strong youth culture associated with the modern day Silicon Valley startup scene, many times it falls to the 40-year-old programmer to prove that he can still use the newest up-and-coming technology. Yet the rate at which the tech sector is growing suggests that in 20 years there will be a an order of magnitude more 'old-hat' programmers in the industry. As such, do you think the cultural bias towards young programmers will change in the near future?"
Ignore Silicon Valley.
50 years ago it used to be a hot-bed of science and technological innovation. Now it is a magnet for designer coffee-swigging social cloud blog web 2.0 get rich quick smartphone app hipsters.
Look for real companies designing and building real products for proper customers. Silicon Valley's day is gone.
Stick Men
False premise. Assumes a bias without providing evidence.
I personally believe that the experience older programmers provide over younger counterparts makes them a desirable hiring option. The catch is that the price has to be right. Some of the older developers demand two to three times the salary of younger programmers. When you do that, you have to ask yourself if you deliver quantity and/or quality two to three times greater than those younger programmers. If you honestly believe you do, then your next task is to prove that to prospective employers, but it's going to be a tough sell. It can take close to a year for someone to realize that they hired a fraud, so you're a more expensive gamble to that employer than a younger employee.
There are certainly older programmers who can produce much better software at faster rates than their younger counterparts, but it is difficult to prove and requires the employer to take a greater risk in hiring you.
Finally, is it me or was there no article at all? Seriously, Slashdot - WTF?
Its more about their attitude. There are some solid patterns and just software development knowledge that is great to have and haven't really changed regardless of the technology. I hired a guy at the end of his career (programming for 30 years, he worked with punch cards in college) he said he just wanted to program, he picked up everything easily, contributed to design and implementation with some JPA 2.0 db interfaces from an AngularJS front end. Unit testing, in memory databases and all sorts of stuff.
I have found that age doesn't matter, if you are going to be a stick in the mud and in my day type of person, I will never hire or want to work with you.
Some technology and syntax change...good designs and ability to learn and adapt don't.
I can say the difference between now and the last time I had to do this (~12 years) is stark.
Seriously...if I have to take another test checking my ability to O(N) a problem, I'm gonna scream. I've been living in ginormous game engines for 6 years, and the amount of times I've had to, in the span of a timed half an hour, optimize a routine to make sure it was running in the optimal time has been....zero.
I'm sure it comes up, and I'm sure it's useful, but this all reminds me of the older assembly guys who used to put in all kinds of wonky tricks that eventually got optimized out by the compiler. Bubblesort has been solved. If your company has to implement it again, you're doing it wrong. There's a routine lying around somewhere in the company. Really.
I don't know what the solution is for evaluating tech talent, but this doesn't seem like it.
Also, web guys...if you're really concerned about speed, maybe you should consider writing some of this code in a lower level language. Plus, if your ad server takes 5-10 seconds to respond, then all of your optimization is for nothing anyway. But hey, you got the O(log N) solution. Bully for you.
Yes, older programmers will always have a harder time getting a job, just like older people in all other professions. Age discrimination isn't just an computer industry problem.
The other advantage 20-year-olds have is they can give their life to the company. They don't care about having to work 60-hour weeks as long as there is foosball and free pizza. Why go home when 'work' is cool?
A 40 year old often has a spouse, kid or two and a dog they might like to take for a walk. They don't care about BS phrases like "Work hard play hard!"
Boy I remember the old days of writing web CGI apps in C, way back in the 1990s. People would look at me like I was insane if I were to suggest writing web apps in a language that compiles to machine code. There seems to be a whole industry dedicated to declaring native apps an evil that must be extinguished.
The world's burning. Moped Jesus spotted on I50. Details at 11.
There are certainly older programmers who can produce much better software at faster rates than their younger counterparts, but it is difficult to prove and requires the employer to take a greater risk in hiring you.
It isn't difficult at all. At my company, an "older programmer" solved a bug in code written by a younger fella by introducing a function that we all never knew about. This fella refactored code, cleaned up the mess we had in our AIX/DB2 system and saved my company lots of cash by single handedly writing code that verified that our data migration to PostgreSQL from the mentioned DB2 system was worthwhile.
Specifically, he wrote code that printed cheques the way we wanted (Numbers to words), in about 1/4 of the lines of code we had. All this by employing functions we never knew existed. Nothing can beat knowledge/experience. Nothing!
Not when 2038 approaches.
I eat only the real part of complex carbohydrates.
I've been living in ginormous game engines for 6 years, and the amount of times I've had to, in the span of a timed half an hour, optimize a routine to make sure it was running in the optimal time has been....zero.
Do you happen to work for EA? That would explain a lot...
today is spelling optional day.
Honestly, any programmer that is worth his or her salt is going to be employed no matter what their age. There are plenty of schools and non-profits looking for help. Of course they may not pay as much as the corporate office, but you'll be working. I also think you should start looking to strike out on your own as a contractor or freelancer soon after 45. I say this as a 52 year old who is exploring other options now. I'm writing some mobile apps for a local school district as part of my community service and I know from speaking with the administrator that I've got at least one way to earn should my company decide to push me out the door with my gold watch.
Sure, I used it. It totally has its uses. But I'm not being old fart about it. I actually love working in Python for many, many things. It just seems totally bizarre to me to be trying to cycle optimize what is ostensibly an interpreted language. It's kinda like hypermiling SUV hybrids.
But you're right, there's some fear of every writing compiled code these days. Heaven forbid you even directly interface with hardware, either.
As others have observed, older workers tend to want to be compensated for their experience... so they're more expensive.
In a rational hiring world, that might not matter much--they usually deliver greater value, too--but it's often not rational people (or, let's be polite and say, people who could be better-informed) that are making that decision--it's people who want to minimize costs no matter what.
Hire an expensive engineer who really understands the work? Or two young cheap ones who might not? The latter, of course--for the same reason that outsourcing to the third world is so popular despite the incredible hurdles of management and quality. And if the bet fails, and neither of the young'ns can get it done (despite the 80-hour weeks that they can deliver and have come to expect), well, you'll be off to another job by then anyway and no one will know.
It's a vicious cycle: VCs like start-ups that live on ramen noodles because they're cheap to fund, unlike ones that have a real staff and a real track record. And sure, some of those cheap ones will succeed, and they'll get the press (in no small part because they are young), and that will perpetuate the myth that only young folks can innovate, leading the VCs to believe in their own decisions.
I don't see the bias going away. As a general rule, young people are less expensive, more dedicated, more attractive, and just more fun than us old farts. The market want crap in a hurry, and this is one of the primary reasons they get it.
You might be able to surmise from my username that I could be about 3 years from retirement (as if I would -- I love what I'm doing)
I've always stayed current and learn something new every day. I have found it definitely does depend on the culture of the company you are dealing with but also on the nature of the work. For freelance work, just about everyone I deal with seems quite happy to depend on "the old guy" to get it done, especially if they would consider the project a grind. They know they will get a good result and I can tell it just feels like a safe bet to them.
It happens sometimes that after a few freelance projects a company will want to talk about hiring me full time. On the East/West coast is where I have encountered the "I'm young and smart so you must be old and dumb" attitude. I sure don't take it personally. And in the Midwest decades of experience still counts for plenty and they will wine & dine you to get you go full time.
"Age and treachery will always overcome youth and skill"
New programmers may have skills with new software, but they may not have skills and experience with organizational politics, system design, product architecture, code reviews, QA, all the rest of what makes great programmers great.
We have one guy that understands build processes. I have done any serious code in years, but some of the crappy code I've seen is pretty horrid.
Here's an example:
Just over a year ago we had some Java developers doing some web code. This was on a Linux/pSeries hardware. I.e., it's a Power chip, not Intel/AMD. I was asked to install the JVM software by the developers. They gave me an Intel binary. OK, no prob. I asked them to send me the Power installation package. They responded that it was Java and the underlying hardware didn't matter. Oh really? One of the developers actually got pissy and started trying to explain that he ran it on his Windows machine and another guy ran it on his Mac. Tried again to explain the difference between the jvm executable and the jar but then I realized that if he didn't understand that, it wouldn't be much point.
The guy we brought in knows that. Lots of other things too.
But I've been on 3 interviews so far where showing your work merited a "sorry, that's not fast enough" with nary a discussion on thought process, coding style, etc. I even explained my thinking with the dataset and worst cases.
It'd be one thing if it was used as a way to glean a thought process, but when the bottom line is merely O(n) vs. O(log n), you're not looking for candidates who can find a way through a problem. You're using specific knowledge as a sieve. And that's where the age bias comes in. The experienced programmer knows that the answer is rarely X or Y, it...depends. And sometimes that "depends" and the design around it is the key to scaling later or blowing your leg off. I'm not saying every experience programmer knows it, but the young ones rarely do. But they're sure up on their mergesort implementation.
I've yet to have someone give the version of that test where the hard coded array or hash is the solution, because that's what you get to from experience: knowing when to be fancy and when to be specific. The academic solution seems to be built in from the start. And that favors the recent grad, period.
No, it doesn't depend on management, it depends on ownership.
The instructions to management are now, "Get the youngest, cheapest, most scared". The last thing they want is someone experience enough to know when they're getting fucked.
You are welcome on my lawn.
My boss can hire two fresh-outs for what he pays me. He knows this. A short sighted person might think two fresh-outs are more effective than me. My boss knows better. I regularly deliver way more than two fresh-outs, and I show up on time every day, not hung over. No drama.
Not every boss is like mine. Many think that more cheap labor can get the job done. Good luck with that. You get what you pay for.
there are 3 kinds of people:
* those who can count
* those who can't
There's a job, if you're a COBOL programmer. In the last few months, I've had friends and relatives wishing they were proficient in COBOL or their company needed someone proficient in COBOL. I hear it pays $100K+.
Not true. Those resumes are often lies. I see a great resume that says someone can do the work. And yet they can't wrote up a very simple function on the board, the sort of thing they'd have to do every day on the job. Maybe searching for something in a list is inane, but you'd be surprised how many people with years of C experience on the resume can't actually do it. I feel stupid just asking some of these questions in an interview because they're so basic, but so many people just can't do the basic stuff. Now granted, maybe the recruiters are scraping the sides of the barrel to get these candidates (my theory is that with the current economy that the best engineers are staying put instead of changing jobs).
Ie, Joel on Software mentions some of this, saying that he expects that for the simple questions he would like to see the programers just start writing out the code without pause. And yet I have seen people pause because they can't remember whether to use '~' versus '!' and the like despite a resume that says they should know this completely. I have a really simple question which can be done with a one-line answer that 9 out of 10 candidates can't do.
And besides the programming examples aren't just for checking if someone knows the syntax. We also want to see how the candidate can think about a problem. I try to ask something that they would not know if they just crammed the night before so that it requires them to think. That's important to do on the job: thinking is an important part of the job, whereas bullshitting about what's on the resume is really only useful in the lunchroom. Can the candidate think logically about the problem, or are they flailing about?
Believe me, someone can spend 30 years in the industry and still be clueless. Quite a lot of programming jobs are very basic; in fact right now I think that most programming jobs require minimal thinking, they instead either require mostly gluing together different frameworks, or else making minor tweaks to a large existing body of code.
Where I work, we have several divisions.
One division trains firefighters and EMS. We have an incredible training facility, so not only do we teach Firefighter I, we also train veteran firefighters on extra-hazardous stuff like oil refinery fires. They also teach search and rescue in our rubble piles and collapsing buildings.
Another division trains cops, tactical drivers, etc. That division includes an on-staff sniper.
A third trains people to work on high voltage electric lines.
Then there is my division, "administration". We're the IT people, bookkeepers, etc who keep the agency running. Guess which division had the worst safety record last year. Yep, us nerds. For my employer, the people clicking a mouse had more injuries than the people putting out big fires, crawling under collapsed structures, or performing dynamic entries (seat raids).
Yes, we nerds are suitably embarrased by this fact.
that depends if management wants to waste time and money reworking mistakes that would have been avoided by someone with experience.
Today, the digital world is young and new
The managers are young, the employees are young, the customers are young
Once upon a time, the railroad was the hot new tech, then radio was, then tv..etc
Someday, software will be as mature, professional and boring as ball-bearing engineering
I suspect that ball-bearing engineers suffer no age discrimination
BTW..I am a 60 year old programmer who is turning away work. I work in the totally non-sexy world of embedded systems and industrial equipment
But it's not the *only* thing, and yeah, that's doable with some profiling. In that case, it's already screwed, and you're going in to optimize. That doesn't involved walking in in 2 seconds and seeing the solution. While companies want that, there's usually a reason the code got that crufty. The young bucks are the ones who walk in smashing everything in sight, assuming everyone is dumb but them, and when they remove the wrong strut and the whole room comes collapsing around them, that's when you wish you had someone with a bit of experience.
But explain how having an introvert stand at a white board and work on an algorithm in a vacuum is anywhere close to coding an optimal algorithm. We're not robbing banks here, we're writing code. We have a few minutes to check what has been done and why.
What old farts hear:
"You're not a good fit."
"You don't have the skills."
"The position has been closed or filled"
And one I actually got: "Your commute will be too long."
You see, people over 40 are a protected class in legal speak. What that means is if a company were stupid enough to say, "You're too old.", they just opened themselves up to an EEOC lawsuit.
Now, when I was volunteering as an IT guy at a free clinic, one of the guys there was a retired IT manager. And this is what he said, "When there's a choice between an older or younger candidate, the younger will be chosen. I'm not saying it's right, but it's the reality."
Working with retired IT/Development managers was a real eye opener. One actually said to leave IT.
I'm trying but starting over again is really hard because folks don't like hiring middle aged entry level people and they are quite incredulous that anyone would want to leave a lucrative career like software development.
It is VERY hard out there for folks who are unemployed. Just being unemployed is a black mark against you and the longer you're unemployed, the chances of getting employed again approach zero.
Freelance? Even worse.
Cisco is here for example, big, huge, thousands of jobs, and nothing whatsoever to do with startup culture or web apps.
And nothing whatsoever to do with real products either. Zing!
I see the glass as full with a FoS of 2.
I am a recruiter who recruits in the engineering spaces and in particular the Oil & Gas space in Australia.
So while not IT it probably crosses over in that we see a significant difference in attitude to years of experience between Australia and the US. For example a Senior Drilling Engineer with 20 years of experience can find it hard to get a job in the US. There seems to be a real preference for people with less experience ie younger.
In Australia the attitude is the opposite. Here the attitude is a 10 years of experience they haven't seen enough to know what not to do and that 20 is what you need to be useful.
Makes my life easier I guess, as we bring a load of skilled people over to Australia but the difference in attitude is interesting.
It's all related to the most profitable configuration for the company.
Most companies out there, especially the big ones, know pretty well what they are doing. Typically, a ratio of one as senior as possible resource for 20 juniors that don't have a clue. Shield this up with meticulously written contracts and a good team of lawyers and you end up making more profits than doing the right thing.
Everything I write is lies, read between the lines.
I'm 56, should I be forced to retire?
Programming is still something I do more or less 7 days a week because I like it, not to get rich or just because I'm paid to do so. When I started out this was pretty much the only way you could get into programming, i.e. my (technical) university didn't even offer an IT degree when I started there.
I've been programming since the seventies, I have written MBs of source code in many languages, but of course I'm getting about a year older every year. :-)
The main difference between today and 25-30 years ago is probably that now I'll spend a bit more time up front thinking about the problem _before_ I sit down to write the code. I've taken part in 3 of the 4 Facebook Hacker Cups that have been held so far and I've noticed that I get into trouble in the later rounds when time pressure becomes critical, but I like to think that I'm still coming up with good solutions even if it takes me more than 30-40 minutes to do so.
The international competitions that I've won have been for the fastest possible code but with some weeks to deliver the solution.
Terje
"almost all programming can be viewed as an exercise in caching"
It's all related to the most profitable configuration for the company.
The problem is, "profitable" usually actually means "what will get me (high-level exec) the most profit in the least time?" Often followed by "before I bail the ship I just helped sink."
Shore that up with bean-counter metrics, projections that fail to properly account for costs (especially intangible ones) and you can easily justify "saving" money by preferring the inexperienced. The only reason why anything has any quality anymore is that advanced manufacturing techniques and materials allows relatively incompetent and de-motivated employees to turn out items that exceed what was possible 50 years ago when low price and cheap junk were more obviously related. Software, however, isn't something that benefits much from microprocessor-controlled fabrication equipment, which is why cheap software is still cheap junk.
The old-time model of a corporation was based on the idea of a more or less permanent core population of differing levels of skill and experience. Since the 1980s the model has changed to the conceit that everyone is an interchangeable cog purchased at commodity prices, used up, and then discarded at will. Except senior management (who are obviously unique, indispensable and irreplaceable, thus mandating extreme compensation).