One of the sharpest developers I have ever worked with -- was 63. He did only mobile development and only would agree to work 30 hours a week. When I pressed him on it, he explained that he liked to constantly be working on both Android and iOS projects, 30 hours a week each, and that kept his backlog of waiting clients happy.
EDIT: He completed the iOS application under budget with wonderful tests.
> EDIT: He completed the iOS application under budget with wonderful tests.
If you don't mind me asking, age aside, what tests qualified as wonderful? Coverage? Integration or unit? I am curious. Which framework? Also, was he one of those rare individuals who could make the app UI look beautiful on both iOS and Android?
At that age the rates are irrelevant compared to the health insurance compensation. Most people at that age would be willing to take a pay cut in exchange for generous health benefits and flexible hours.
He was in the US (Arizona if I remember correctly), and had been incorporated for a number of years... but I have no idea about his health care situation... the joy of contractors, I don't have to care. I give him $180 an hour for X hours, he gives me a wonderful product, everyone goes home happy.
Not really. If the contractor gets sick, it's still your problem.
I care for my contractors and always make sure they are paid enough to afford good medical care and a stable financial situation. It makes sense, even from a deeply selfish point of view - the less time they spend worrying about such things, the more they spend working.
First of all, I don't think it is my responsibility to ensure contractors are paid X, that is their responsibility, they set the rate. I decide if I think their skills match their rate. I can't decide what is "good" medical care for them, nor can I decide how much it costs (maybe he has a medical condition and needs 20k a month just for insurance). I can't decide what a stable financial situation is for someone either. The arrogance of someone who thinks they can baffles me. I might think 200k is plenty, but I have no idea about what contractor X consider "plenty" and to assume is simply projecting.
As for him being my problem. If a contractor can't work, you replace them, depending on how the contract was setup, you might collect some insurance to help get over the ugly transition.
Even if it's not your responsibility, it's your problem. Replacing a contractor is not like replacing a cog in a machine.
As for deciding what's enough for a stable financial condition, I can't. What you I do, as a manager is to pay attention for warning signs.
Years ago, I had a programmer, young and very bright, who kept entering lousy freelance projects on the side. He was under great pressure because he had financial problems. I didn't want to lose him, but burnout was already on the horizon. When performance review time came, I enrolled him on a personal finance course. Within six months, the freelance jobs went away, he started coming in earlier and the already good quality of his work improved further. He had more time to study, more time for his family and more attention for his work.
+1 investing constantly in education and learning new skills is the way to go!
I am 62 and I have been consulting for 15 years so age has not such an issue. Honestly, I can understand why a company might not want to hire an older software engineer but in my experience companies don't mind old consultants.
When asked for advice by people wanting to have a lifestyle (work on your own terms) consulting business, I suggest they, in addition to working, also invest time in writing a lot (blogging, books) and contributing to open source projects.
Exactly! Contribute, be visible and relevant. If you're not putting in the effort, at the end of the day, no one will hire you, old or young or whatever. It's a classic story of where circumstances are to blame in the case of you failing, and it's all you if you're "winning".
I didn't even assume to look at the alias, since in my mind there was no doubt a man was behind that statement... Fixed my comment :) and this made me want to read a blog post from MaggieL even more so!
As a guy in his 30's it would be interesting to read more on how you did this. Were you laid off at any point? Did you learn Scala on your own or through a previous employer, or a class? And finally, how hard was it for you to make your transition & land this job?
I find myself having to learn new skills with things changing every ~5yrs. Its scary, but also quite interesting to see things fork SO MUCH so fast lately. I feel its exponential...I'm basing this on only 2+ iterations, lets see how my 3rd ends up.
I've been in IT for ~20 years. I started in Unix systems programming, in C. in 2002, I shifted into Java/J2EE. Another decade later and I find myself shifting again, this time to modern lightweight systems (Rails, Node) and NoSQL (Neo4J). They're just languages, not that big a deal. What's more important is my ability to put problems in perspective.
I think that this article, though terse and generalistic, addresses a valid issue. However, I agree with many posters here in saying that it's not exclusively age that hampers older engineers, but an ossified skillset. Anyone who becomes entrenched in a nichey vocation then strikes out at 50+ to find new employment is going to suffer. The tech world worships youth and forgives hubris and foolishness, so it's especially unfertile ground.
That being said, as a serial startup founder, on a few occasions I've had developers working for me in their late fifties and even sixties. I was, in fact, in my mid to late twenties at the time, and I had great relationships with these guys. They had kept their skills up and their experience enabled them to sometimes do the work of ten people.
In my first company, I had a sixteen year old whiz kid who was possibly the most gifted hacker I've ever worked with, and we later hired a portly, bearded, late-fifties nudist Unix guy who balanced the youngster out quite nicely.
I'm now working in a startup where of the eleven of us, nine of us are in our forties, including three 40-something engineers. I've never worked with a better crew. And our stack is about as cutting-edge as would be responsible in a serious startup. Our VP of engineering literally helped invent Java at Sun, but moved on to new things later on instead of getting stuck.
I shit you not. He was a bona-fide nudist, though he preferred the term "naturist." And yes, he worked from home four days per week. He put some sweats and a t-shirt on when he came into the office, but I'm sure he was going commando.
I live in SV and am in my early 40s and can only comment on what I've seen firsthand or heard about secondhand. Based on that, I don't really see ageism. I work with people in their 20s, and I work with people in their 60s. It can be harder to find a new job at comparable pay as you get older, but it has a lot more to do with the following:
(1) Salary expectations. Somebody works at the same company for 20 years, gets an annual raise that's above the rate of inflation, and has an expectation that if they go someplace else, they're going to get as much or more money.
This might happen, but it's not guaranteed. I've worked at companies in other industries where it was common for people to work at those companies for 30+ years, then retire. These companies have different notions as far as annual raises and how generous the perqs and bonuses should be, because they expect people to be around for a long time.
Tech companies tend to be a lot more generous, because there are much higher turnover rates and they have to work harder to retain talent. The result is that after 10 or 20 years at a tech company, you may become accustomed to getting paid above your market value (I hope to have that problem someday :). This isn't always the case, but it does happen.
(2) Lack of relevant technical minutiae. Everybody loves to say things like, "it doesn't matter what you know, it's your capacity to learn!" Or, "my knowledge of abstract CS concepts means I can pick up the technical minutiae associated with a learning a new language/library/platform/etc. in no time!" All of these things are true to an extent, and you're not going to get very far without them. However, none of them have anything to do with actually accomplishing anything- they're all just modifiers to your ability to learn and adapt, prior to accomplishing anything.
Unfortunately, accomplishing anything requires technical minutiae. Some of it is more widely applicable stuff like programming in a particular language or using certain tools, but the stuff that makes you really really valuable to your current employer is more likely to be the niche that you carve out for yourself over the years. This means, knowledge of specific codebases, and domain-specific knowledge, some of which might be from other disciplines like math or finance or electrical engineering. When you go someplace new, your niche knowledge is either going to be invaluable (yay!) or meaningless (bummer :( ). Most of the time, it's the latter. So, again, this is a case where through no fault of their own, someone has ended up getting paid a lot of money for doing a great job, by acquiring lots of valuable skills that don't mean much outside of that company and position.
(3) Burnout. Sometimes people just get sick of spending so much time around computers after 20 or 30 years (or 5-10!). They lose their enthusiasm and aren't as motivated to keep up to date. If you're burned out on your profession, you will have a harder time finding new work, for any number of reasons. It's unfortunate but it happens to everyone at some point or another, maybe many times throughout their career. Some people find ways to renew their interest and get out of this mindset, some don't. Older people are more susceptible to this because they have more important things in their lives (like family).
TLDR: don't get frustrated, try to see things from a prospective employer's point of view in addition to your own POV, and keep your skills sharp and up to date. Don't coast. Stay curious and make sure you're still having fun doing what you do. If you're no longer curious or no longer enjoy it, see if you can come at it from a different angle and rejuvenate your interest. If not, you'd probably be happier taking a left turn in your career anyway, doing something completely different.
This isn't really new, nor is it specific to software engineering. "Line engineers" have always had a very hard time with employment as they age (not that it doesn't happen). The usual ways to avoid this are (in order of risk):
1) Get your MBA and go into management;
2) Start or join a consultancy;
3) Start a company.
My buddies in more traditional engineering fields (aerospace, chemical, etc) are all in the process of setting themselves up with exit options (we're all just around 30).
Much of my family are in chemical engineering, petroleum engineering, and similar engineering fields, and from what I can tell just about the opposite is true. The companies would much rather hire someone back out of retirement as a consultant at 3x their previous salary, than train up someone younger. They'll hire someone younger, but seemingly as a last resort. This seems most true in a few specific fields (e.g. metallurgy specialists), but also true for more common things like process engineers.
From my interactions with the O&G industry, primarily upstream, there is growing concern that the knowledge base is too old and that they are not getting enough young professionals into the pipeline to cover for the engineers who will, in the next 10 - 15 years, simply be too old to work. It is one of the big goals of the Society of Petroleum Engineers right now, and has quite a bit of support from Halliburton and Chevron.
I can’t really imagine that affecting people in traditional engineering fields all that much. My dad is a non-managing civil engineer (well, he is the boss of the one person water supply department – that consists only of himself – in the engineering firm he works for) and I feel like he has never been more in demand than now, in his late fifties.
Without ever doing anything he gets at least two calls a year from people looking to hire him away. (Though I guess the last thing he would want now is be flexible and move somewhere else or commute for hours. So in that sense he doesn’t have that many options should it ever not work out anymore with his current job – that he took right after college, by the way.)
That generally leaked in from other industries, but it seems to be going away. Since great developers are productivity multipliers ... companies are starting to understand that keeping them coding when they are 25x more productive than an average coder is worth more than having them manage 8 average developers.
There is a reason "developers" are getting hundreds of thousands of dollars in retainment packages to keep them from starting their own shops.
This is true in most fields. In the officer ranks of the military, you're generally forced into retirement if you're passed up for promotion twice. In many government jobs, you're forced out if one of your former subordinates is promoted past you.
Only twice? I've never know the ins and outs of the military (and ex-PFC Wintergreen is the closest I'll probably ever know to people being demoted or missing promotion) however this seems incredibly harsh.
It used to be, but the industry is changing. The status of programmers is going up and that of middle managers is going down. As Silicon Valley goes today, so goes BigCo tomorrow, and woe betide the BigCo that does not. That's the theory, anyway.
Someone in a subordinate role with little to no authority or autonomy. To me, it sounds like a subtly derogatory reference, meant to conjure up imagery of "line cooks" that spend their time cooking one thing and one thing only --eggs, bacon, patties, etc-- and sending it down the line to be finished by the actual "chefs."
"I know two or more engineers around the age of 60 that graduated from MIT or Stanford 35 years ago. Of those two or more, at least one has lost his job, and at least one is afraid of losing his job."
Here's what the article doesn't say: what field these engineers are in, whether or not they're good at their job, what company they work(ed) for, what they work on, how up-to-date their knowledge is, etc.
Maybe there is age discrimination in the engineering field, but you certainly can't infer that from this anecdote.
"""When not even a Stanford or MIT engineering degree is good enough to keep an engineer employed at 60, there is genuinely no market for engineers that age. Plan accordingly."""
Wait, what I did 40 years ago won't guarantee my employment now?!? What is this insanity, I thought once I got my degree in 1973 I was done with all this "learning" nonsense. How can I be expected to just keep updating my skills?
Why does Google still care about people's undergraduate GPAs from 25 years ago? When my friend interviewed at Google (they did hire him), the recruiter wanted to know how many hours per week he worked (to pay his tuition) at university 25 years ago to account for his "low" undergraduate GPA (3.0 - 3.5).
Undergraduate GPA is a great measure of how prepared you were for college and how certain you were in your major. And you know what? Maybe some people think its important to hire the kind of people who had everything figured out at 19. I'm not one of those people, and I think its bad as a recruiting tool, but I can see what would lead someone to ask that.
No, it's a Google thing. No American company has ever asked for my GPA, but the Google HR person next door said that if I wanted to interview for a job at Google, HR would demand my GPA (from decades ago!) and would not grant an interview unless it was above some (secret) threshold. If their recruiters reached out to me, HR would still require the GPA, but she said that the interviewers might not care about it.
What stage of interview? I have had two phone screens with Google recruiters, and one actual phone interview. Nobody ever asked for my GPA, and my degree is from a university most people here have probably never heard of (and is EE, to boot).
I've never understood why for many professions age/experience is coveted but engineers are assumed to have such a short shelf life. Nobody prefers a 30 year old lawyer or doctor over a more experienced one but an engineer of the same age needs to start planning a career transition...where is the logic in this?
Doctors and lawyers gain skill as they get older because the problems and solutions don't change quickly, and the fields have such depth that expertise takes decades to acquire. We work in an industry where the state-of-the-art is perpetually accessible to 20-somethings who haven't done anything, because the technology gets blown up once a decade (or so). Even if you stay up to date, why would anyone pay you a salary commensurate with your experience, when a total noob can do the same work for half as much?
For example, it's pretty embarrassing that we're re-inventing databases because today's generation of "experts" can't be bothered to understand SQL. And don't get me started on how an entire generation of coders will be able to work professionally without knowing how to manage memory. It isn't difficult to find examples of youth and exuberance trumping wisdom in this field -- I've already encountered working developers who are happy to tell me how technologies invented in the early part of this decade are "totally outdated".
I've written about this before. You're right, but I think you miss (or simply gloss over) something that is critically different in software -- abstraction and reusability.
The nature of SW is to create abstractions that are reusable. So if you've built a good reusable abstraction, no one needs to know what's "under the hood" except in rare circumstances.
Ask your frontend web dev to explain some differences between the x86 and ARM ISA. Most won't have clue. Even much higher up the stack, most probably couldn't explain how TCP/IP work. For the most part it's irrelevant.
Other fields don't/can't build on lower levels in such a way that practitioners never have to learn the lower levels at all. How many surgeons are there that don't know cell biology?
Your best hope is to either continuously churn with the latest trends. Or pick a part in the stack that is likely to not change, and be a niche expert (aka, a networking guru, or x86 god). Your job opportunities will be much smaller, but if you can find your team (e.g., compiler architect or processor performance analyst) you'll likely to have a job for as long as you like.
I think we are reaching the golden age of the older developer. Companies are learning how much more great developers are worth than poor ones. Retention bonuses have gone crazy (getting a 3 year / 250k bonus package isn't even that interesting).
The evergreen underpinnings, the basic knowledge of how to build systems floats through languages and technologies.
Agree with you about the value of older devs, but I wish I could say I saw "the industry" paying for experience. The examples of ridiculous grants I know about have all gone to people who are in their 20s and early 30s.
Granted, there's some selection bias going on: I don't see many 40-something programmers in SOMA. That said: I don't see many 40-something programmers in SOMA.
Rampant speculation, but while drinking me and some developer friends came up with a theory on this. There was a sweet spot, a golden age if you will where a lot of things came together for kids / young adults to drive them to be developers. They are 25 to 40 now.
Computers became cheap enough to have at home. BBSs and then the Internet took off. Computers were doing stuff -- but not common place yet. It was an odd window during a technologies birth that I think got people hooked in a way that is hard to emulate. Too early, you are on punch-cards and computers are rare. Too late, and you have app stores and iphones and stuff just generally works so it can be treated as a dumb tool. Sheer luck.
I'm 35. I started learning SQL, C, C++, memory management etc. many years ago when I was a teenager.
However, and I know that people will take the opportunity to disrespect me for this, but I realized, after playing around with 3d C++ graphics in college, that I wanted to build interactive desktop applications quickly. So I learned to use a very powerful tool called Visual Basic 6. Not because I didn't understand memory management or anything else, but because it was a better software engineering decision for most projects since it allowed me to not repeat solving the same problems that had already been solved.
I know people aren't going to be able to understand this because of the reputation that Visual Basic has, and they will lose respect for me, but I am going to go ahead and say it anyway. Visual Basic 6 was and still is a better software engineering tool than C++. Why? One of the core principles of software engineering is DRY. Manual memory management means you are repeating yourself. It also means you are doing the memory management yourself rather than letting the computer do it for you. Another reason why Visual Basic 6 is superior software engineering over C or C++ is the component models.
I eventually moved on to .NET and C# because of the stigma of VB and also because the new frameworks provided better tools.
Eventually I realized that the closed source world of desktop Microsoft development was outdated since it was tied to one platform and old-fashioned business models. So I moved into web development. The most practical tool for web development was PHP. It was the best software engineering decision to select PHP to build a web application. Because it allowed me to avoid solving the same problems that many other engineers had already been faced with and solved on their own. Something that many software engineers don't understand is that not only is it important not to repeat yourself in your own code, but not to repeat solving the same problems other people have already solved for you.
So then I wanted to build a realtime interactive collaborative software application in the web browser. Because that is the most compelling, useful, and challenging type of application. So I tried to do it with PHP. Very awkward. I tried to use another popular server-side tool, Python. Again it turned out to be very awkward to do realtime collaborative software applications with Python (using things like Twisted).
So I'm sorry, but if you're not adopting new programming languages, tools and frameworks, then I don't think you are a good software engineer. Because good software engineers only solve the problems that they have to, and don't continue to solve the same problems over and over.
"So I'm sorry, but if you're not adopting new programming languages, tools and frameworks, then I don't think you are a good software engineer. Because good software engineers only solve the problems that they have to, and don't continue to solve the same problems over and over."
Yes, and? You're arguing a straw man. I'm not claiming that things haven't changed for the better in 30+ years of coding, or that people should be writing web apps in FORTRAN, or that you shouldn't re-use code.
But you're being...imaginative...if you believe that the latest shiny webapp tool (e.g. Node.js) is actually as new and innovative as you're claiming it to be. Anyone who has been around long enough to have written early Windows or Mac apps will have a lot of experience with single-threaded, evented programming. (Certainly enough to know that Node.js is a wonky regurgitation of a very old idea.)
Same thing goes for your MongoDB apologetics: actually, no, the industry didn't settle on relational databases because "that was how you did it". They became widely adopted because they hit a sweet spot in terms of speed, reliability and flexibility (a spot that basically none of the current NoSQL products have yet to match).
In other words, even if you like new things, experience helps you know when the new thing you're evaluating is a pile of crap. And judicious decision-making is far more important than the latest shiny when it comes to being a good engineer.
So in your opinion Node.js and MongoDB are piles of crap?
Then, just curious, what system would you use to build the back end for a realtime collaborative web application, or an API that needs to hit several web APIs and do other IO to service each request?
And how do you recommend that we handle data storage for small business web applications? Really would like to know if there is something that is so much better than Mongo. You really think I should go back to building out fully normalized relational databases for small business web applications? What language/platform do you use, and how do you handle things like ORM?
I would like to know if you have ideas that are better. In my experience, Node.js and MongoDB (throw CoffeeScript in there too) are not crap, perform very well, reduce lines of code, and are better software engineering decisions in most cases. Have you actually tried building applications that way?
On thing to consider is that doctors and lawyers are members of professional associations that resemble cartels in many ways.
It could be that the powerful elder members of these groups ensure that their professions don't evolve in a way that would overly favor young people.
For instance, suppose that software engineers were required to hold S.D's (software doctorates, a three year professional doctoral degree that limits enrollment overall to ensure scarcity and severely limit the enrollment of international students). To get this this SJ, you are required to implement things in enterprise java, with massive amounts of complexity, in a way that is difficult to change. Also, scope is broad - making very minor changes to html code is ok for a para-software, but only under the supervision of a licensed member of the Software Bar. Anything involving "programming logic" counts as practicing software, and if you are not a member of the ASA and you do this, you can be imprisoned. In addition, suppose this group used influence over congress to place heavy and database requirements on the business world - in short, forcing them to spend a great deal of money on licensed members of the "American Software Association".
I suspect that under these circumstances, software wouldn't evolve quickly at all.
1) Doctors and lawyers are seen as exercising judgment, while engineers are seen as building things.
2) Training opportunities (in the "learn by doing" sense of "training") for doctors and lawyers are much harder to come by than for engineers. If you're looking for a lawyer who has taken half a dozen big commercial litigations through trial, you're probably looking for someone very old because there just aren't very many of those trials that happen. Same thing if you're looking for a doctor with half a dozen experiences treating a patient with aggressive cancer. But how hard is it to find a young software engineer with half a dozen big websites under his belt?
Now, I don't think either perception is completely true, in the sense that I think people underestimate how much judgment software engineers exercise and overestimate how quickly they can build up valuable experience.
I'll hit 40 this year, and have been in more demand in my last five years than I have earlier in my career. I think there are engineering areas & companies which really don't need anything more than a recent graduate. For those needs, it doesn't make sense to hire someone at higher salary and experience levels. However, there are technical areas that strongly benefit from experience. I can't really advise what those areas are exactly. It depends on your personal history and interests, and there are a lot of short sighted companies that don't value experience enough - to the detriment of their own efficiency.
Actually don't know if that's true. As a former physician myself, in many circumstances, I would prefer a younger (to a degree) physician to a much older one. Medical knowledge does change relatively quickly and standards of care change a lot.
For the same reason as engineers, it comes down to keeping up with the field. I don't know for a fact that an old physician hasn't kept up with the field, but I do know a younger one can only be so behind.
"Medical knowledge does change relatively quickly and standards of care change a lot."
You have to be clear about the relative rate of change, though: it's nothing like software, where technical knowledge from a decade ago is completely irrelevant today. Medical appointments are pretty much the same as when I was a kid.
The more important point, for me, is judgment: older doctors are far less goofy and spastic than younger ones. That means more conservative treatment, discretion, etc.
> Medical appointments are pretty much the same as when I was a kid.
I have a young child, and I have had enough conversations with doctors and nurses to see that standards for medical care _do_ change rapidly enough to matter. Some examples:
- At the hospital where my wife gave birth, the SOP is an epidural and continuous fetal monitoring. This means that very little equipment is available which supports mobility. The hospital staff had a hard time wrapping their heads around the idea _lying on your back is painful_ for someone in labor. The human body hasn't changed, but the medical practices are currently optimized around the assumption of an epidural and keeping to a schedule. Doctors who have let this assumption ossify will force the hands of patients who simply don't know otherwise.
- My pediatrician's practice currently recommends avoiding peanut butter until age... three? I think. However, there is recent research on some children of Jewish ancestry in the UK vs. Israel, suggesting that their very low rates of peanut butter allergy are probably due to environment rather than a genetic predisposition. If further studies confirm that finding, the AMA will probably revise its suggestions, causing all pediatricians to start offering the _opposite_ advice.
- Recent research (sorry, don't have the reference) showed higher rates of food-related allergies when children were exposed to solid foods earlier than 3 months.
> Look at your examples: in the first, you're talking about the difference between laying down and...not laying down. And how long have people been giving birth in hospitals?
In the U.S., we've been giving birth in a hospital under the supervision of a doctor for several generations now. When my grandparents were of childbearing age, there were some pretty horrific practices. Now they are recognized as such, but the turning point occurred during someone's lifetime. Likewise, it doesn't sound like a big deal, but the culture of "laying down" has a significant impact on how we as a culture have babies:
- The mother's position is not naturally conducive to popping a baby out. This adds difficulty to pushing.
- The mother's position puts all of the baby's weight onto her back, rather than on her legs. This causes more pain, which can lead to further medicinal intervention (e.g. epidurals or IIRC narcotics).
- Motion (walking, lunges, etc.) is helpful to get a fetus into the right position (head down, facing mother's back) and to advance its station. This benefit is lost while lying down.
- Gravity is not of assistance while lying down. It helps while squatting.
Etc. What sounds like such a little thing can end up making a world of difference. And today's ossified doctor who insists that the mother lay on her back is very similar to today's ossified developer who insists on using the Win32 C API for trivial data-entry UIs. Regardless of the rate of change of the field as a whole, ossification and inflexibility is problematic with whatever is changing right now.
As the human body hasn't changed much over time, I would expect an older doctor to be able to draw from experience and diagnose the underlying problem quicker. Ideally, for non-trivial issues, the older doctor would then refer the patient to a specialist in the field who keeps up-to-date.
IC's in all professions think their managers are idiots. I've heard it from lawyers, police officers, teachers, and sales people.
I think its just human nature that your boss (or management in general) is out of touch and an idiot. It's why politicians are clueless -- until you get elected and then you suddenly are viewed as clueless too.
Now that the issue of "discrimination" has reared its ugly head, no one can give a straight answer to your question.
By that I mean that any explanation of why people over 30 really are worse programmers, will be interpreted as "discrimination" and therefore wrong. Any explanation of why people over 30 are better programmers, will be taken as evidence that there must be a lot of discrimination since the older programmers are not only not worse, but better.
And engineer in his 60 will be worth his weight in gold just for knowing all the ways a project can fail and all the unknown unknowns that can bite you in the ass.
And with every 5 years adding adding another level of abstraction he can be invaluable for hard to debug things that need knowledge what goes where under the hood.
That was this guy - now in his late 50s who mentored me as a young whelp - I have seen him open a dump with a hex editor (not dissembler) while tracking a bug, saying - aha a pointer is not initializing correctly and fixing it. Will hire him in a second given the chance.
Whenever I read an article drawing conclusions about the world based on interviews with those attending a school reunion, I consider the inherent selection bias. If I'm an unemployed 60-something, I might consider a class reunion to be a great networking opportunity. And, of course, my time has a low opportunity cost. Conversely, am I willing to fly across the country for the weekend if I'm working a lot and need to be in the office on Monday morning? Also, those whose lives at age 60 aren't all that fulfilling professionally or otherwise might be more likely to attend a reunion where the could be reminded of better times. [I say this as someone excited to attend my 20 year high school reunion this summer.] A survey of Stanford engineering graduates done by random selection would be much more interesting.
I've witnessed the exact opposite. My father stayed an engineer when most of his peers became managers; many of them became unhappy over time, and quite a few died from heart attacks before reaching 60.
OTOH my father, now in retirement, still occasionally works as a freelancer, because he still enjoys the job, and his skill is in demand.
Right. The corporate system seems to be designed to make almost everyone miserable so the people at the bottom want the jobs above them. The problem is that it leads to pernicious and destructive internal competition, not excellence.
My philosophy: mentoring, coordination, and very occasional police work (against internal harassment and bad behavior) are the only valuable contributions of management. The rest of it is useless and should go away. It's outdated.
You spend a lot of time -- "a lot" is a pretty big understatement based on your online activity, blog etc. -- thinking and writing about how miserable being employed at companies X and Y made you. I'm really curious why. I've been miserable in a series of jobs before and the last thing I want to do is go back and wallow in it.
The problem with the career/work game is that when you get robbed (a) it's considered to be your fault, and (b) you never get back the time lost.
If there were a way to pop back into the state one should be at, at one's age, were it not for the robberies, then forgiveness would be possible. You'd just recover and forget. But this is a game where if you get screwed, your competition is out there getting better experience so you keep getting screwed in the future, and soon enough you're 40 years old and still a nobody. Fuck that.
Also, these problems that I'm attacking are huge problems. If I could, for one example, start a process that made it socially unacceptable for a company to run closed allocation and call itself a technology company, that'd easily add $10+ trillion in value to the world economy. That's just a massive effect. Obviously, one person can't cause that kind of change, but there's no reason not to try to start the process.
I don't really buy it, based on my personal experiences, which play out exactly opposite of what you're saying here. I think you're wrong. It's been very strange watching your evolution as an online persona.
I'm not buying it. I'm about to turn 50 - doing better work than ever and more in demand. The tools today are so good compared to 5-10 years ago. Now I have these awesome tools, and understand sales/marketing/management/finance.
ps - could I get a job as a developer? probably not. but there are other (better) alternatives.
I turn 41 next month and have been a developer for the two decades that I have been in IT. A 50 year old up to date on the latest tools seems to be the rare exception. The rule at my current employer seems to be after hitting 50-55 that they really have their eye set on retirement. Learning a new skillset has such low dividends that they don't believe it is worthwhile. They show up to work right on time at 8 am, they spend an hour getting their coffee, perhaps breakfast from the cafeteria, chatting with coworkers, etc. Then they stare at a mainframe screen full of Cobol code for an hour or two, take a 90 minute lunch, attend a few meetings in between staring at mainframe Cobol code and then leave at 5 on the dot.
They spend two weeks on changes like, "Modify program P90182 to set value 82 instead of value 81 in field CONVEXITY", dutifully put in their change request documents and then move on to the next change honestly believing they're earning their inflated salary.
Lots of generalizations there. Change '50 year old' to 'woman' and the thought-police will have your scalp. :-)
Yes of course there are lots of clock-punchers out there. We used to call that mentality 'terminate and stay resident'. (maybe only 50+ will get that reference...)
I suppose if I was employed by a large company, I might have grown cynical over time. But I'm working on my own stuff and having a lot of fun with it. The tools are so good I can do things that used to take a team to accomplish. And I can execute way better than I could earlier in my career, just by knowing how to shut down distractions and stay focused.
The problem with such people is their managers. It's the same problem of remote work -- don't blame the slackers that only deliver a couple hours of real work per day; blame managers and team leads who are too incompetent to evaluate actual performance, then reward engineers that deliver and get rid of those that don't.
Your stories of your 50-year-old colleagues match those of 18-19-year olds I've worked with in several different industries, except for the 'show up on time' thing. The only people I've ever seen expend more active effort to avoid doing work than the work itself actually required were people in this age group.
Once you have been in a job for a while it can be easy to stagnate because you end up spending most of your work time maintaining something that was written in ASP.Net or PHP4 or whatever and it doesn't make business sense to do a rewrite in something newer.
The alternatives are to job hop or to work somewhere that is constantly using or evaluating new tech. Or to spend your own time learning new skills , which you may have less of when you are older.
There's also the issue of deciding what to learn, since you can't realistically learn everything.
I've been burned in the past by spending time looking into various technologies that have never really gone anywhere. It's hard to make a bet like "Will I be more employable in 10 years time by learning node.js or go?"
I think the better course is to follow the Mr Money Mustache idea. Plan, save and invest on purpose, so that you can retire if you want to, or are forced to. Then do whatever you want. You don't have to retire, you can do exactly what you're doing now if you like. If no one wants what you do ... do something else, or "retire" (whatever that means to you).
Learn 'the next thing' and get jobs (or volunteer!) doing 'the next thing', mod customer needs, your career goals and your tolerance for risk and change. I've moved from Fortran to PL/1 to C to C++ to VB5/VB6 to ASP to PHP to ASP.NET to R. It isn't pretty, but I've stayed employed for 30 years now, mostly in places that suited my needs/goals. Smarter people with better goals should have better career histories than I.
I've grown my leadership skills. As much as I'd love to just code and keep my head down the simple reality is they expect me to step up and guide others. So I study management and process more than I study the latest techniques. Part of it bums me out but part of it is very exciting. I realize now at the latter end of two decades in this career that the true "big" problems in software are usually people or process related. If a project fails or succeeds depends much more on who does the work and how it gets planned and executed than what particular language or techniques you use.
So to sum it all up - I grow my leadership, management, and strategy skills.
Always do something newer at home than at work. This is really easy and cheap in CS/IT vs say chemistry or physics or medicine.
There's no need to have hardware at home faster than work. Software that's newer or more complicated than at work, sure.
Keep up with changes in the industry, just like any engineering career. I never fail to be amazed at meeting people who have no idea whats going on in tech outside their work department. They're doomed in the long run.
Coursera, Udacity etc are killer for this. Sure they're not work experience or academic credit but I've gotten positive comments "It shouldn't be a problem [that I didn't know their tech], you've picked up a lot of stuff". (Thinking about it now, I only assumed it included the Coursera work. But it can't have hurt.)
This article is incredibly terse and uninformative. Why are older engineers having such a hard time? Are they keeping up with new technologies to remain competitive? What kind of engineering are we even talking about?
The problem of ageism is pretty well documented in engineering, especially software engineering.
I'm in my 40s, and I've been programming my entire career. I'm trying to get into management so as to extend my career into my 50s and 60s. The realities are that I likely won't be able to compete against kids 1/2 to 1/3 my age in the next 15 years, so I need to use my experience to my advantage.
To be fair, this post is just rehashing the point that the blogger (Lion of the Blogosphere, formerly known as HalfSigma) has been making for 5+ years now.
He's a Manhattan-based lawyer who really doesn't like software developers, and is constantly warning his readers not to let their kids major in computer science. He cites outsourcing, stagnating wages, lack of long-term career development, and perceived low status as reasons why one should stay away from most things in tech, especially anything that could be conflated with "programming" or "IT" by people outside the tech world.
Then again, he doesn't offer any real alternative advice. It's usually some variation of "be rich and work at a non-profit".
Your upper management is playing with fire if the candidates were over forty (at least in the U.S. -- other countries probably vary). That's just as illegal as turning them down because they happened to be female or black.
People never talk about age at work. They talk about "graduation date". If you work in recruiting, you have companies asking that question all the time, "What's his graduation date?"
I wonder if there could be a boom, especially with the online options, in mid-40s programmers getting graduate degrees so as to jam the signals. That's what I'll do if I end up facing age discrimination, so long as I can solve the money problem.
I doubt it's legal across Europe either. Then again, turning down applicants with foreign-sounding names is illegal also, yet statistically you'd have at least 10:1 chance of getting called for interview with "native" name.
One of the best engineers I have worked with is on his 60's. When I worked with him, the rest of the engineering team had an average age of 23 or so (me being 32), but this guy could give everyone a run for their money.
This is not about age, but about staying current and sharp. Keep learning, and you won't have this issue.
Sure, a guy fresh out of school has a ton of energy and works crazy hours, but as an Engineering Manager and Product Manager I knew that if I needed something to be really done on time I could always trust the older (and quite frankly way smarter) guy.
This post is touching on two issues that are somewhat related but different:
1. Finding ANY job when you're 60 is hard;
2. Engineers (who are still engineers) at 40+ will often be passed over in favour of twentysomethings.
Engineering is such a young industry that I'm not sure we've really faced (1) yet (since the number of people who started engineering in the 70s is but a drop in the ocean compared to the number in the workforce today). It'll be interesting to see how the industry has evolved in 30 years.
(1) is a pretty strong driver for everyone having a long term plan to control your own fate, which means working for yourself. That is, if you're not in industry with inbuilt protections (eg teaching).
(2) is harder to pin down.
On the one hand, there is a certain (un)survivor bias in that many who started as engineers in their 20s are managers or the like by their 40s. So are those who remain in engineering a good sample?
Also, the older you get in general the more non-work priorities you have. Family, for example. This can reduce the amount of time you spend on self-improvement. This industry almost requires constant learning, reinvention and skill acquisition. Is it an example of ageism if someone who is 45 can't find a job when what they know is Ada, Cobol and Forth?
It's often said that a good technical foundation and education means you can pickup any language. This is true but picking up new skills is both a habit and a skill, one that atrophies if left untapped (IMHO). It's also a question of degree. Perl to Python? Not a big gap. Ada to Ruby? Well....
That all being said, there is age discrimination in this industry. I've personally witnessed someone say "I prefer new grads so I can mold them". That's fine and all but if you say that and don't hire a 50 year old programmer that's a good basis for an age discrimination suit because, well, it is age discrimination.
So yes, you either need to find a job that doesn't change (eg a plumber or a teacher) or you need to constantly battle to maintain relevancy in a fast-changing industry or you need to become master of your own fate.
If you don't hire someone because they know Ada instead of Ruby, the odds that you're profoundly shortsighted are extremely high.
I once worked at a startup whose cofounders told me that I was the oldest person in the office (having just turned 26) because "people over 30 don't get technology", meanwhile, they couldn't understand HTML, much less programming, and therefore had to hire me.
The very best programmer I know works primarily in Ada at his day job, whereas I know all the trendy web fads. If I had to choose him or me as an employee to write code, regardless of language, I'd choose him, objectively. If he starts working on whatever I'm working on, he'd almost certainly be better at it than me in a week. Whenever I have a difficult programming problem, I can struggle with it for hours (or days), and he can make it clear in minutes. He can look at my code in a language he's never seen before, for example, and solve my problem. It seems like a lot of companies are in the habit of hiring resumes instead of people.
The older you are, the more time you've had not only to gain concrete skills, but to learn to abstract your existing skills and knowledge to apply to other things.
Some of the seemingly widespread opinions in this industry (or at least among startup scene types) make me wonder how most of you manage not to drown when it rains. Some of the stuff I hear just makes no sense. It's not based in logic.
Fortunately for guys like my friend, defense contractors and other huge corporations will be hiring devastatingly skilled people who have "boring, obsolete" skillsets for the foreseeable future. They're probably too smart to work at our on-average-destined-to-fail startups anyway.
Contrary to popular belief, computer skills really don't decay that much. "New" things aren't really that new, they're almost always related to or based on something we've seen before, and if you're really any good at what you do, it won't take you long to get a grasp on it.
Analogy: If you wouldn't hire Bruce Lee because he doesn't know the latest direct-to-DVD self-defense technique by Generic UFC Guy (TM)... you're making a huge mistake.
tl;dr: make snap judgements and you're going to wind up sub-optimal employees.
>>The older you are, the more time you've had not only to gain concrete skills, but to learn to abstract your existing skills and knowledge to apply to other things.
Unfortunately the older your are, you are less flexible, less adjusting, running short of energy, you can't take risks as you have a family, you can't work too hard or push yourself too much because there are health risks associated with that. The list goes endless. Its not a very comfortable position to be in old age.
As some one who is in 20's and watching people in their 40's(My uncles) and my father(in his 60's) I can tell you the only chance we engineers have is to make loads of money, real estate and savings before we are 40-45. Else we are screwed. That unfortunately is the most blunt way to put it.
You may believe in whatever you may like about experience coming with old age, but your employers will take raw passion and energy over accumulated experience any day.
Your best bet is to make a lot of money and be safe or risk going through a lot of pain when you grow old.
I suspect this sort of thinking, which places tremendous pressure on youth, is one of the reasons young people are consistently more unhappy than older people. (1)
I don't spend as much time on work as I did when I was younger, but I get a lot more done. I have also learned a few things about how to motivate myself (eg, delayed gratification)
If you're trying to live a good life, your best bet is probably not to focus entirely on making a lot of money, but to find what makes you happy. As a physician, you get to meet old people. Now that I know some old investment bankers, I don't envy the ones who focused on making tons of money. They can't climb the stairs to their ocean view bedrooms, they can't fit into their British sports cars and they never have time to drive them. Managing the paperwork of their assets becomes their full time job.
My dad is a 68-year-old engineer, he seems happy, and making more than ever as a consultant. The fact that he likes restoring hot rods works well when the money guys find out and they can exchange pictures of Shelbys.
Best advice for growing old: buy a one-story house. You can get to your bedroom and your kitchen.
> As some one who is in 20's and watching people in their 40's(My uncles) and my father(in his 60's) I can tell you the only chance we engineers have is to make loads of money, real estate and savings before we are 40-45. Else we are screwed
Bull Shit. Stereotypes are just stereotypes. If you follow one you will be one. I am 41 year old engineer(programmer) & Entrepreneur. One project I am coding now has Java, C++, Go all together. The younger programmers in my team were sort of scared to touch C++ part. I am encouraging one of them to learn Go.
I do two projects at a time, one of my own and another for a client. Support the former a bit with the consulting money I get from the latter.
I wrote the above to counter your ageist myths. You are younger and I presume flexible enough to correct them :-)
> Is it an example of ageism if someone who is 45 can't find a job when what they know is Ada, Cobol and Forth?
Um, I'm 54 and the languages of my 20's were C, C++, etc.
I also fairly regularly get calls from recruiters.
> So yes, you either need to find a job that doesn't change (eg a plumber or a teacher) or you need to constantly battle to maintain relevancy in a fast-changing industry or you need to become master of your own fate.
Or, you can be a driver of this change yourself by developing a modern, advanced programming language.
> someone who is 45 can't find a job when what they know is Ada, Cobol and Forth?
One thing I've discovered is that knowing the new stuff in conjunction with some of the lost arts (messy old C builds, hardware-related mysteries, debugging without debuggers) gives me some skills that are not easy to come by, and that is a real advantage getting work. There will always be legacy systems that are 10-15 or more years out of date, and a market to keep them running.
The people capable of "Or, you can be a driver of this change yourself by developing a modern, advanced programming language." is probably farer and fewer between. How many are capable and how many advanced programming languages are needed?
I'm 42 and I did, working part-time at a bank during college. For 3 days, at least. Then I designed a DSL and wrote a C tool to generate the COBOL programs from templates and DSL files. Then my boss decided to never again let me near the mainframe and bank accounting systems. But many of my coworkers spent 3+ years entirely on COBOL.
Most of the org's original COBOL programmers are retirement age. So there's 60yo greybeards teaching COBOL to 20yos.
It's a weird time to be a mainframer. If you are an experienced specialist you can charge insane hourly rates. At the same time, some bigger orgs have started transitioning off the old stack because all the experts keep dying or retiring.
At some point mainframe specialist skills will go from insanely valuable to completely worthless.
In the late 1990s, I remember people there being recruitment efforts to find people with very little coding experience, teach them COBOL, and have them search for and fix Y2K bugs in COBOL code. I actually thought about doing that at the time, but ended up getting into Java. Even now, there is a lot of more COBOL out there that you'd think.
"Also, the older you get in general the more non-work priorities you have."
Why would you think so? I left home at age 18. My parents were 37 and 40 years old at the time. At that time and for many years after that, I had tons of non-work priorities, certainly more than my parents. And I don't think that's an exception. Most people never really make work their priority. Don't mistake that for an age related phenomenon.
"Is it an example of ageism if someone who is 45 can't find a job when what they know is Ada, Cobol and Forth?"
No. Is it an example of racism if you didn't want to hire a drug trafficking nigerian scammer and pedophile as a baby sitter for your 5 year old daughter?
The idea that these are even relevant examples is ageism or racism. I don't know a single 45 year old software engineer who knows Ada, Cobol and Forth. They didn't serve in Vietnam either.
Everyone knows they have to be up-to-date with current technologies and it becomes easier with age because many changes are very superficial to the point of being trivial.
While I agree, I'd go further and say the issue is not language as much as it is ecosystem. The ecosystems are changing more rapidly than they were 20 years ago. Or, at least, we learn about more of these changes faster than we did.
Ruby is Ruby, but do you use webrick? mongrel? thin? unicorn? passenger? Whoops! You chose what?! everyone knows that hasn't been supported for 6 months when the guy writing it quit supporting it because someone insulted him on a mailing list!
The stuff around a language is generally what changes more often than the language, and keeping up can be a challenge, regardless of age.
When your kids move out--which is likely to be when you are in your mid-40s to mid-50s--then your non-work priorities are going diminish some. For that matter, when the youngest kid gets a drivers license this starts to happen.
>>"Engineering is such a young industry that I'm not sure we've really faced (1) yet (since the number of people who started engineering in the 70s is but a drop in the ocean compared to the number in the workforce today). It'll be interesting to see how the industry has evolved in 30 years."
Do you mean 'software' engineering? Given its about a 40th reunion, it's likely the comment was about a more established field of engineering.
If anything I would have thought there would be more 40-60 year olds in the work force than 20-40 year olds (or at least a close number). So either some of them have to move into management of non technical staff or you end up with a very top heavy management structure.
Tech companies seem to prefer a flatter management structure to avoid too much bureaucracy.
I think you have a pretty bad view of managers. There are plenty of management positions that are a) necessary, b) challenging, and c) very technical.
"Moving to management" doesn't mean you suddenly just create Powerpoints all day. If you're a good technical manager you can suddenly use your skills to multiply your contributions far beyond what you'd be able to do as a single person.
Let's start with the common premise that a good programmer is 10x better than a bad one. A good first level manager, who has 10 reports, could effect a difference of 100x. And a good senior manager, who has 10 midlevel reports, could effect a multiplier of 1000x.
It's not the view of managers, it's a view of the numbers.
If approximately half the workforce is between 40 and 60 and half is between 20 and 40, then half your staff are managers. That would work if only two people report to each manager (branching factor of 2), but it seems very inefficient to have so many levels of management: log_2(#staff).
On the other hand, with a branching factor of 10 only 1/9th of your workforce are managers, so management positions only support those between 55 and 60.
The point of the original comment was that you can't have "move into management" as the default career track for people in their 40's. There just aren't enough management positions.
> The point of the original comment was that you can't have "move into management" as the default career track for people in their 40's. There just aren't enough management positions.
Totally agree. The thing is that that applies not only management but to senior development positions as well. Most firms have no need for a workforce that's 100%, 80% or 60% senior devs. There is a LOT of grunt development that needs to be done and the older you are the more money you're going to want.
We can call them managers, senior devs, whatever, but the truth is that there's not enough room for everyone to constantly be moving up and making more money. Engineers have created a very egalitarian workforce and in most cases it's great but this is one of those cases where it doesn't work. Industries that have been around longer have already figured this out (law, banking, etc) where you have the "up or out" mentality. There's been a lot of work and research done showing how and why this works and how to create the proper balance depending what sort of work you're doing. The more cutting edge work you're doing the more senior devs you need but the lower percentage payout the partners get.
It's not a matter of moving people to management or not but a simple fact of we can't all be at the top of a firm and if you're not moving up it's better to replace you with someone younger and cheaper who can do the same thing.
Check out the book Managing the Professional Services Firm for more, it's a great read and really applies to software.
I don't do Powerpoint (not at work, at least), but that doesn't mean I have the luxury of writing lots of code. Most of the time I spend coordinating the efforts of my own team with the other various teams and discuss the aggressive schedules my commercial and product teams want. What I cherish the most, however, are the moments when I can help them solve some tough, deeply technical problem, or help one of them build some really elegant piece of code.
In an industry like O&G or energy experience is highly valued. When you have you have potentially billions of dollars on the line and many peoples lives with an oil platform you want someone who has done it before.
In tech you are trying to make something no one has done before so you want the young hungry engineer.
I worked for a well-known software company (everyone here has used their software, I would guess), and they had this, "we're doing cutting edge stuff and need young, hungry engineers" notion in spades. At one point, a VP announced to me that they were going to build a certain software project and the CEO had decreed that it would be done in 90 days. I, an "older engineer", chuckled. I assumed that she was complaining about how silly this was and looking to me for a "Plan B". I started to provide one, but she cut me off. She was offended that I "wasn't fully on board" with Plan A. She was really miffed and said that her developers were "behind it 100%".
My experience indicated that they were planning to use too many "new things" simultaneously. If any one beta-level technology failed, the whole project would fail. My Plan B was to essentially solve the main problem it was meant to solve with a minimal core built with tools we knew would work. Put that online on time, then incrementally upgrade features using the new technologies.
Since my group would need some of the services of this software project, I went off and built part of Plan B myself (the part covering what our group would need) as a secret side project using old fuddy-duddy technologies that worked but weren't new, exciting, and unknown. When the 90-day project wasn't ready on Day 90, I put my own online. It worked perfectly. This VP and her minions were angry about it. "It demonstrated a lack of faith in her team."
Two YEARS later, their 90-day Plan A finally shipped. She and the CIO never forgave me, though. I, the old guy, had used 80/20 to deliver the core of what was needed on the day they said it was needed, and I did it alone. Still, they remained convinced that "young, hungry" engineers were more likely to "be on board" with projects like the one they designed, and that was what mattered.
Note: Never do 80/20 or even 100/20(this is a fact). I've pretty much realized this the hard way. If you are very good, you will be perceived by your bosses not as an asset but as a threat to their own positions. And what will follow next if they coming up with most ingenious way to screw you. Seems like that is exactly what has happened to you.
If your success had made a big story, it would have become a case study. It becomes intellectually insulting to them.
It directly means they are not capable of doing their jobs properly.
One fact every one need to realize, It's great to be young. But age is not static. Those who are young today have a very narrow window of 9-10 years. Beyond that we are all the same.
The US and EU markets would have been forced to keep using the old system, which is what they ended up doing. They assumed they were about to switch over to the new system in a few weeks, so my system would be of no use to them. Why switch to my Plan B if Plan A was just around the corner? They continued assuming the Plan A was about a month or two away for two years.
The Asian locales had no old system to fall back on, so when Plan A didn't ship and I revealed my (fully localized) Plan B, they adopted it immediately. If I hadn't done my Plan B, the Asians would have had to go back to product registration by postcard.
It's funny. One of my friends lost his job in a round of layoffs recently and was lamenting that his skills were based way too much on their internal technology for him to ever find another job.
I walked through it with him and explained that you don't realize how much stuff is the same anywhere. Communicating with customers & stakeholders is the same anywhere. Working with your coworkers is the same anywhere. Managing a project has the same steps in every company and if you're good at it it will translate. Likewise requirements gathering. Your knowledge of various domains that you pick up. Etc etc etc.
MOST of what you're trying to do has been done before. All the day-to-day work that makes your business successful has been done thousands of times before. The only thing that's new is a few minor implementation details.
The story is still being written... happened a week ago. I had the same feelings as him a few years ago though and I ended up getting tons of offers and finding an amazing job where I was promoted twice within a year.
I work at a software company that most likely will be bankrupt by year end due to a young developer's desire to rewrite our flagship product from the ground up using "new" technology. Three years later this new product has 40% of the functionality of the pervious version and has customers canceling contracts that have been with us for 10+ years.
Exactly. Just because you're trying to accomplish something "no one has done yet" doesn't mean that you aren't going to be building on top of things (software, frameworks, paradigms) that have been around, at scale, for years. The older engineer is more likely to realize when a problem has already been solved, or during a crisis can connect the dots from previous experiences to find the solution.
It is an example of ageism to assume that "the older you get in general, the more non-work priorities you have." Basically that is what's implied by the "ism" part - assigning the characteristics that may be present in some members of a group to all members of that group.
This might be irrelevant to the overall discussion, but reading comments to some other posts on this blog almost made my jaw drop.
"The reason why California is flooded with thriving Asians is because the Golden State is a beta state, and all California cities are beta towns with a beta White majority. Smart, talented, and hard driven good looking – alpha Whites from different parts of the country leave for places in the Northeast, especially NYC. "
Maybe its because I'm not old (30), but the sentiment of this post strikes me as bullshit.
At any age, if you've got something unique to offer and can contribute- you can get hired. If you've let your skills lapse, or have become inflexible then that's a different problem.
New immigrants I don't view as a problem at all, but rather an opportunity for us to increase the size of the market overall. There's work enough for all, as long as you've got something to contribute.
Maybe at one point 35 years ago simply having a degree from somewhere great was enough. I don't see that today as being a thing that makes someone immediately awesome.
Invest daily in your education. It doesn't stop when you're 22. Today, instead of doing consulting- I'm learning about Google's Polymer framework/platform.
I guess I'm looking at it from a hiring perspective. I don't care how old someone is honestly. I just care what they can do and what they contribute to the team. Having a bit of grey hair is probably an asset, since hopefully they've been to this rodeo once or twice and have some good experiences that we don't.
TL;DR if you spend 35 years as an engineer, you'll still need to work for a living, but if you spend 35 years as an entrepreneur or VC, you'll likely be retired long before that. In other words, it's better to be at the top of the pyramid than working for someone at the top.
Yeah, that's not true at all. Lots of people find success as an entrepreneur but they're the exceptions, not the rule. I'm not saying that it's something that people shouldn't attempt, and it certainly has a higher success rate than attempting to be, say, a rock star or a professional athlete, but it is by nature a high risk endeavor.
One datapoint from Chicago: Got laid off at age 56 last year and had two offers within two weeks. But I interviewed at several other places without receiving an offer whereas in the past I almost always got an offer if I got an interview (Google excepted). Here is some speculation about why my batting average dropped. I do feel that age worked against me but I don't think it was because of the companies having institutional biases against hiring older people. Rather, I think it was just the mindsets of individual 20-something/30-something interviewers making individual decisions based on what felt comfortable, based on the vibe feeling ok. Nobody here is doing anything wrong.
My stepfather is in this situation, just turned 66 and has told me on several occasions, shit, the writing's on the wall, can't compete with the young guns.
Of course, he's been in the business since the punch card days and has a huge amount of experience to draw on; as such, he's miraculously (to me) been able to land guaranteed 60 hour per week gigs (even though he likely only works 30 hours) at $125+ per hour.
K-rist, that is a skill in itself, landing high paying telecommute gigs and putting in half the hours you're paid for, the f-er ;-)
I see our age discrimination problem as the fundamental sign of us being a defeated tribe. Ageism is one of those horrible traits of management culture (i.e. if you have a younger boss, you're a loser) that we wouldn't face if we had kept our tribal integrity (because "bosses" would be coordinators and mentors, not hierarchical superiors, making age irrelevant.)
Good programmers aren't ageist. We look up to the gray-haired badasses. (Ok, old bad programmers are annoying, but so are young bad programmers.) Ageism is a managerland prejudice. What the fuck is that shit doing in our industry?
Most of us are intellectual whores: massively overqualified for the work we're assigned to do, but hired because it makes the boss feel important to be able to say things like, "I have four Ivy Leaguers working for me" even when the work could be done by one script-kiddie. Meanwhile, the work that could actually use our talents is hard to find, because our society is in such a depraved state that social media gets VC-megabucks but cancer research gets peanuts.
It's perverted. When you're young, it's hard as hell to get a good job but getting a job is easy. But that's exactly when you care about getting the good jobs that will build your career. When you're old and have actual use for the crappy jobs (you need to sustain an income) you can't get them; and if you were sidetracked by taking too many crappy jobs (and that's not hard to have happen) you're not qualified for the good ones either.
It's really disturbing to realize what has happened to the sciences. The death of the scientific/academic job market is why us smart people hate "business douches" so much; the fuckers shut down all the R&D. Those assholes struck first.
(To be fair, plenty of businesspeople do more good for the world than bad and aren't douches. It's the shitty ones that have no better ideas than to cut costs recklessly. The problem is that no one shuts them down.)
In the 1970s, there were Bachelor-level science jobs. There was an expectation, of course, that most people would go back for graduate degrees; but it gave people a chance to spend a few years in the field and figure out what they wanted to do with their lives before committing to a graduate program.
Those Bachelor-level science jobs still exist. The problem is that they're all filled by PhDs.
Even most of this Silicon Valley "innovation" in social media isn't half as interesting as the stuff marketers did in the Mad Men era. M&A replacing R&D is one of the worst social developments around.
Who's going to bring back Real Technology? Someone will see the value in doing so, I hope.
Newton's First Law of Motion. Keep moving, stay moving. Keep eating healthy and exercising, stay healthy and fit. Keep learning, stay sharp and knowledgeable.
There are more life frictions as we age that dissuade us from continually learning. If you realize this and work against it, there is no way someone significantly younger than you can realistically be a better fit for a job. They may have knowledge, but you'll have that and decades more experience and wisdom.
The blog's author, later in the comments section, doing a great impersonation of my mother (sans the anti-immigrant bit):
All of the smartest Americans are going into more lucrative fields like finance, medicine, and law. As much as you think the creme-of-the-crop engineers are getting paid, they aren’t making as much as investment bankers, and even the best computer programmers don’t make as much money as an average surgeon.
The market is flooded with mediocre Indians willing to work cheap, and that’s what every IT department wants, cheap labor.
It amazes me that people can still say things like this in post-crisis America. As if finance, which is still reeling, isn't already flooded with Indians and Asians with tech backgrounds, as if they aren't in law (horrifying debt, anemic job market) and medicine (even more horrifying debt, massive commitment) as well.
Hell, I wonder if the quote here, supposedly from the WSJ comments section, is even real, or if he's just looking to rile people up.
Ageism in engineering, especially software engineering, is a real issue worthy of vigorous debate, but I'd like to think there are better pieces we can argue around than this dubious anecdote.
"Engineer" is a fairly vague term. Once you are 60, you have probably "graduated" to a higher-level engineering job that involves more consulting/management/planning and less gruntwork. If you still enjoy the gruntwork aspect (I do, at times), more power to you. Either way, anyone involved in a programming-related job should always keep themselves up to date by getting their hands dirty once in a while.
They may have been working, however there's zero guarantee that they have been learning anything new or even spending hands-on time doing engineering work (as opposed to shuttling between meetings).
I interview 2-3 candidates a week, including many people almost twice my age. While these older engineers have impressive-sounding resumes (IBM, Sun/Oracle) most struggle to code anything more complex than fizzubzz. In my case I make it as easy as possible for the candidates by allowing them to use any IDE they can install on my Macbook and encouraging them to search Google/StackOverflow if they get stuck because I want them to be comfortable and actually complete the task. Majority still end up with trouble implementing a simple JUnit/Selenium automation test for a login page.
I'd say they are optimizing locally. Yes, if you could write Cobol in the 70s/80s, you better optimized on writing Cobol, because it was all the hotness. But you should have stepped out of this local optimum somewhere in the 90s, and switched to OO languages. Moving away from what you already know in favor of something you don't yet know is painful if you are not used to it, but it's necessary - dinosaurs die.
Age discrimination is sometimes even publicly announced. For example European Space Agency has age limit for recruitment 55 years. This applies even to desk based jobs such as administrative or software developement.
Extract from job description:
- The European Space Agency is an equal opportunity
- Contracts Officer in the Procurement Department, Directorate of Procurement, Financial Operations and Legal Affairs
- preparing requests for offers/invitations to tender;
- dealing with administrative, contractual, legal and industrial problems arising from the procurements concerned.
- Under ESA Regulations, the age limit for recruitment is 55.
No one's really mentioned that keep up to date or learn a new skill is great advice...but it sucks when someone's tells you that you only have six months with MongoDB and Node.Js, so we only want to pay you for a Junior position. This is where the ageism comes into play, where a young 22 year old who doesn't have the experience because of a new technology buzzword looks attractive to the hiring manager. Seen this move a lot.
"But what about all my experience with I/O Completion Ports and multi-threaded server development mastering mutexes and slinging semaphores!?
The first book I co-authored on Android programming is already so obsolete it is in O'Reilly's repository of free downloads - the back list of the back list.
SICP, which, when it was published, summed up a lot of what I had learned as an undergrad. Nobody reads it to write a mobile app. Since I read it, I had jobs or book contracts that depended on knowledge of LISP machines, bit slice, the original Macintosh OS, Windows telephony API, edge routers, core routers trying to be edge routers, J2ME, Linux on ARM, and Android. Android will be around another 10 years, maybe a bit more or less, and it too will be a museum piece.
My shortest trajectory from zero to Noted Authority and back to zero was when I had a book contract to write about Visual J++. Thank you, Sun's lawyers, for that short trip.
All that said, if you don't know anything about project management tools, estimating market size, or how to write, or critique, a cash flow and P&L projection, your knowledge is going to be hard to package in a form that has high value.
Being a new engineer is easy. You have boundless energy, passion, and time. You can only get better. You're a sponge taking in all new information. As you get older, you have less time and patience for the next new thing that comes along, plus all those things you learned years ago aren't current any more. Plus, people hiring you have a bias that you aren't current on the latest things since you are older.
It's easy if you have 4 years of school to soak up knowledge. But if your family can't afford to pay your school fees, you end up working somewhere full-time. So you have to study nights. Except you fall in love and get married to a wonderful woman, but then she wants to spend those nights with you. So then you end up not sleeping and begging her to get a night-job so that you can learn how to install arch linux on a virtual machine. Becoming a software engineer when you have life commitments is tough, and you end up reading programming language books on your iPhone every time you go to take a crap. Believe me, it's hard.