- The academic is completing their PHD program, with it's associated vow of poverty and about to start a multi-year tenure cagefight, in low-wage contract instructor roles. Only a small fraction will make it to full tenure; the rest will drop out to pursue industry jobs, 10+ years behind the engineers who went directly into industry.
- The young doctor FINALLY completed their training, with a truckload of debt. In the horizon, they see many sources of downward pressure on medical pay (rising power of insurance companies, malpractice liability, lower reimbursement rates due to Medicare and Obamacare, etc.). In 20 years, will Medicine be a $300K/year job or a $125K/year job? Oh...and a bunch of their peers already dropped out, loaded with debt.
- Meanwhile, the 30 year old MIT engineer has good odds of making six figures as a senior tech or technical lead. They are young enough to start a business and bounce back when things don't work out. Young enough to start a big family. If their spouse is also a middle class professional, they have a decent chance of saving $1MM by age 45 for a solid start on retirement. Making enough to pay down their debt early.
Yeah...the back end of the engineering career has a shelf life; you get your money up front. Using it wisely is up to you.
Times change. 30 years ago (the period in question here), if you got a CS PhD, your only options were to join an academic department or one of the few industrial labs (Bell Labs, Xerox PARC, etc.). Tenure-track positions were extremely hard to come by unless you were either (a) a rockstar; or (b) in a very practical field like OS or Databases or Networking. A friend of mine sent out 100 resumes, and got 98 rejections. :D
Only in the major urban areas of the left and right coasts. Other places you have to fight to make above 75K.
IMHO the good thing for meritocracy is when there is no shift between skill and position. Eg in academia there is ~10-20 year shift.
I do think tech undervalues experience and overvalues familiarity with technological fads. That said, there are two sides to the coin. Those other fields the author mentions all aggressively put people into "tracks" early in their careers.
Take the corporate lawyer, for example. His job is secure because most of the competition for his job from his cohort was tracked-out in earlier filtering stages. If tech was like law, you'd have job ads for people with 10+ years' experience saying "top undergraduate school (MIT/CMU/Stanford/Caltech or the equivalent) and top company (Apple/Google/Facebook or the equivalent) required." That would certainly create a lot of insulation for people who went to MIT, interned at Google, then put in 3-5 years after graduation to earn a credential they could bank on the rest of their careers. I'm not sure we'd all prefer that to be the case.
Similarly, if I were a defendant on jury trial, I wouldn’t prefer a new law grad to represent me. I’d filter for an older, experienced attorney, with good track record in the courtroom.
I think the above is common sense. But somehow most people get it completely backwards in our field of software. Why is it that people’s mental image of a competent developer biases towards 20-something whiz-kids as opposed to older devs? Doctors and lawyers have verifiable track records; is it because that most developers, especially in big corporations, don’t build such auditable track records that attest to their competency?
I’m very curious about this. A 60-yo surgeon who continues to operate every day, is revered, has job security, doesn’t worry about ageism, outsourcing, obsolescence, etc. A 60-yo dev who hasn’t moved onto management bears stigma of failure. (Not my thinking, just the common attitude I see in society.) Something is broken somewhere.
Side note, probably irrelevant...it's been a few years since I looked at the numbers, but when I worked in Continuing Medical Education I learned that the group with the highest success rate for surgeries was docs with 3-5 years experience.
The money per se is not in the technical individual contributor but delivering some new value that someone will pay for.
So unless you've got a problem amenable to surgery but without procedures with good outcomes for someone like you, you should prefer experience.
It may not be "new", but there's value in the higher probabilities of good outcomes.
In that, software development is very similar, except of course the stakes are fantastically lower.
That being said, he didn't exactly say what sort of engineers these folks were. Electrical? Software? Big difference..
Also, one thing that didn't jive, if they are in financially uncomfortable retirement, why exactly are they showing up at a donors gathering?
Yes, this probably means the problem is even bigger than the sample demonstrates. Most of the people in uncomfortable retirement are not going to show up at all.
Well since we have a specimen handy, can we hear your take on the article? Does it match your observations?
I think the lesson is, if you're careful with your money in your 30s and 40s, you won't necessarily have to work into your 50s if you don't want to. Alternatively, take good care of yourself and keep learning new stuff, and you can be productive well into your 50s and beyond. But if you don't do either of those things, you may have a problem.
Among people from school who I've kept in touch with. One founded a significant company. Another is Chief Scientist of a large IT vendor. (And another was--retired now--Chief Scientist at a large consumer goods company.) A few are consultants of various types. One is still a game designer (though he actually started that after school; he was a civil engineer).
I also work with a fair number of people in the same general age range. I'm sure some percentage are still primarily coding although a lot are development managers of various sorts.
Personally I worked and a Mechanical engineer for a few years but I've done technical marketing of various sorts or strategic/marketing advisory work for most of my year. (I do some programming but strictly on the side.)
Even back in the 80s, nobody chose engineering because it is a cushy lifelong path.
Edit: BTW, many of his posts are interesting.
Breadth would certainly be an asset to deal with change over a longer term. It's another great argument for a broad liberal arts education.
I could be misremembering, though, and that was written much later in his life.
- this oral history: http://www.aip.org/history/ohilist/5020_2.html (search for "astronomy", which apparently was considered a humanities course!)
- this transcription of the relevant section of Surely You're Joking: http://en.wikipedia.org/wiki/User:Paranoid/Feynman
 I used to be able to, but as I got older I said "fuck it, it isn't worth my time for him to purposefully misunderstand me."
That's changing now, and my guess would be that twenty years from now, we'll hear the laments of employee doctors in a similar situation.
Ageism is a brutal reality.
Since then, I've learned one thing: experience in this field doesn't give you any advantage. Or, more precisely, Cassandra, it doesn't give you any advantage that anyone will pay attention to.
I've had many similar conversations since that conference, usually along the lines of:
Them: "We should do X."
We: "That didn't work the last time; A, B, and C happen and only super-genius levels of D will get you out of the mess, which we don't have."
Them: "But X is the hot newness and everything's different this time, anyway."
We: "We're doing Y."
Them: "That's stupid, everyone is doing Z now." (Them almost never has more than 2-3 years of experience, by the way.)
We: "No one we've hired in the last ten years knows how to do Z, Z offers no actual advantage over Y, and I'd personally prefer not to have to deal with 27 different ways of doing the same thing."
Them: "I'm doing Z."
We: "Great. You'll be solely responsible for that project until you quit, then we'll throw it away and rewrite it. Just like last time."
Sure, you can keep up with the technology fashion; that's fairly easy. But it's a bit dispiriting to see the same problems in the new tech from the last time the dharma wheel rolled around. And to be unable to convince the new kids not to try to cross the railroad bridge because the 12:15 really does have a good on-time record. The entertainment value of watching projects hit the same shoals eventually loses its charm.
A lot of people just don't care until they actually crash into the brick wall, but in a start up that's frequently too late, and never fun. Our host pg has commented that more than a few dot.com failures were in part inevitable due to technical failure. I'm sure that's still the case.
Now, Maven is a nice enough tool and he's probably right in that it is the new "industry standard", but it doesn't do anything that we need to do better than Ant. (Making it easy to add new dependencies to a project, in particular, is something that I anti-want to do.) The only advantage, as far as I can see, would be to allow the new guy to use an IDE other than Eclipse. The costs are pretty large, though. It was an uphill struggle to get the cowboys to use any build system instead of Eclipse's export. This would be a new build system, a new project layout, and either we could convert everything, which exactly no one had time to do (and did I mention the one year of experience thing?) or just add Maven to the already gigantic ball of mud.
Carefully explaining all of that, plus the point that futzing around with build systems did nothing to help us get stuff out the door, which is what we were having problems with and what we hired him to do, led only to blank looks and his decision to "demonstrate the advantages" in the project he was working on---exactly the reason we have a ball-of-mud problem.
You don't even have to buy all in. I bought in just enough to get my head out of my ass, and have improved my financial situation considerably.
There's also a wage ceiling for software developers, even with the newest skills. This shouldn't be surprising though, all employment has a wage ceiling.
Story time: As part of the class we were working with real clients to develop a web project for them. One day during class, he talked to us about the "technical sidekick", typically a friend of the client's that is somewhat technical and is behind-the-scenes advising the client and typically contradicting all your architectular choices as a developer. Well, to noone's surprise, a few weeks later, our client rolled into a meeting all of a sudden knowledgable as to why .NET was inferior, SQL Server bad, etc. We later found out that he took the time outside class, to take the client out for dinner and act like an adversarial technical sidekick just to teach us that lesson. I was pissed off at the time but now deeply appreciate that lesson
For the current 50 year old cohort, the end of the cold war has to be the most relevant factor in the opportunities available to them. There's nothing like a bunch of missile projects to get MIT-er's some work.
The spending rate on US healthcare is probably not sustainable over the next thirty years, and many physicians could see Medicare/Medicaid reimbursements plummet. In short this observation of career disparity could be reversed after several decades of unforeseeable future occurring.
This doesn't include doctors who quit medical school, academics who got pushed out of the funnel, and lawyers who couldn't get good law jobs. The engineers also may have already been victims of age discrimination by the first dot com bubble.
Hierarchies worked very well in the uni prof’s favour, but engineering companies tend to apply flatter structures. If there’s nothing that keeps the young folks competing, they will. So for us, engineers it may be a good idea to move to supervisory roles, a field with harder-to-aquire skills, or start teaching later on.
(+1 for small sample size and confirmation bias though. /re: @pixelscript)
(Unless you have a big piece of equity. .1% is not big.)
old managers can't do nothing unless he is hired at a big company, which is exactly what won't happen according to this
as if ageism didn't exist in the consulting business ...
Of course an old manager can consult (== sell expensive sage advice)
I have a CS degree and used to be a decent programmer, but became a lawyer. To maximize my lifetime earnings, should I have simply moved to California and gone into tech eight years ago? Right now, things are doing well now in tech, and there are too many lawyers, but would that have meant I'd be completely out of a job at age 50 due to ageism/competition? That was my fear, and not an entirely irrational one, since these discussions keep coming up.
As you progress in the practice of law, you spend less time working on document review and trial / transaction prep. Due to the nature of law firms, senior lawyers tend to either be focused on client development (sales!) or various forms of cat herding (project / business management!)...
Wait... tell me again about the career prospects of engineers in their 50's who (successfully) switched into sales and management?
[um yeah, nothing to see here....]
and/or: even the failures still make lots of money until 50, while the failures on other fields aren't even invited.
or: I'm just in denial :-(
Based on what I saw then, I think Phil's observations are accurate.
On the other hand, consulting isn't so bad. There is such a lot of bad engineering out there, there is an infinite market for old guys (and the few women of our cohort) to fix things that are fucked up.
Will we continue to see people over 50 (or even 40) as unable to grasp new technology if they were raised in a society that placed such a high value on technology being an integral part of life from a young age? Part of me says no, part of me says yes.
 I'm not saying it won't be an issue. Just as sexism and racism are still around in the workplace, ageism will continue to be an issue. I'm just wondering if it won't be seen as the norm.
I find it almost insulting how you imply that "not desiring to be a manager" is the same as "being complacent in your career"
Were the doctor, the professor and the attorney forced to move onto management?
Similarly for medics and lawyers - certainly for lawyers (in the UK anyway) getting past a particular level is more about business development and managerial skills than anything else.
I can't speak about doctors or attorneys, but how to keep getting promotions without taking on management responsibility (and thus having less time for research and teaching) is constant topic of discussions among my friends with academic careers. In fact it is on of the reasons my wife is seriously considering getting out of academia.
You always see loads of this "grass is greener" stuff about other professions in these threads. Attorneys wind up in bad low pay jobs all the time, even after working at BIGLAW and failing to partner. Tons of doctors are scraping by in practices that aren't doing well. People get canned from high paying finance jobs all the time and never get another job paying anywhere near as well.
Life's hard and getting old sucks. I really don't think software engineering as a profession is terribly unique in this regard, not that I have much hard data.
What would that field be? Medicine? Mechanical engineering? Consultancy?
I'd do my job for half what I get paid; I just don't have to.
As for nearing the peak of your ability (assuming typical undergraduate age and experience): BWAHAHAHA! You'll be even better than you are now in 5 years, and again 5 years after that. Only then might you consider that you're near the asymptote. These will be "not small" qualitative differences, in my prediction. Come back and read this 5 and 10 years from, please. :)
(context: MIT '93; I just started my 45th orbit of our star.)
It doesn't always feel that way because we often are comparing ourselves to last week or the guy at the next desk, but just in terms of expanded toolkit and knowing how to work within a big project and a big team, the difference is enormous. Lots of skills, both technical and "soft", that you don't even realize you don't have yet.
I think also, in college, you tend to think of your abilities in terms of A) how clever you are and B) how fast you can learn something new. Once you're working, your abilities are really judged more like A) how effective you are and B) how much you already know. Learning quickly is great, but having already accumulated knowledge and digested it for several years is even better. I could see myself feeling like I'm near the asymptote in 5 more years, but I could also see this going on for another 10 or 15 years. There is a lot to learn.
I read this and thought, he's right. Then I thought, this is actually true of pretty much any activity. Hadn't thought of it this way.
At the same time, I've been doing more and more training, and less and less day-to-day development, over the last few years. Not only do I enjoy it, but I find that my long-term perspective and experience helps me to explain things to the younger and less experienced developers.
That said, it's pretty amazing to see what today's kids have done before they've even finished their first college degree. It's a bit intimidating... until I demonstrate that I can still debug things faster than they can. :-)
Professor Robert Rose had some great advice for me as a freshman: as an MIT student, you can probably succeed at whatever you want, enough to enjoy life. So pick a field that gives you personal satisfaction.
Money is valuable and ego-boosting, but when you hit your 30s you will realize that enjoying your workday is much more important than maximizing your paycheck. (But there are also easy ways to increase your paycheck. If you can become better than a potted plant at negotiating, you can boost your salary.)
In general Professor Rose is generally right, but there are a lot of exceptions, and he's also much older than us, his experiences might not hold for the America/world of today and the future.
Unless you've been seriously programming for a number of years, with a fair amount of that in teams, including face to face ones, you're probably not nearing your peak. I'd suggest reading The Pragmatic Programmer: From Journeyman to Master (http://www.amazon.com/The-Pragmatic-Programmer-Journeyman-Ma...) and judge where you are in the range from journeyman to master.
If you're looking for "lock-in", i.e. be easily employable past your ability to fake looking under 35, I'd suggest getting a job with a serious security clearance, which can be a trick, or specialize in one of the fields that respects grey hairs like embedded (but only so much depending on the sub-field, e.g. Detroit car companies at least in times past recruited heavily from Course 6 because they too got rid of their older EEs and programmers).
If you goal is to really work for yourself, and you think you can eventually bill at a rate 5-6 times the income you want to receive---maybe talk to some professors who make a lot of money on their one day a week dedicated to that, albeit they do it with MIT Professor on the CV---yes, that's a very good way to go. But hard for most people. See e.g. this comment https://news.ycombinator.com/item?id=9499561 which points out you have to compete on quality, not price, and a couple of HN contributors who've written a lot about that.
Medicine: in a county, or the developed "West", where people by and large don't directly pay for their own medical care, and those who do pay are looking at a rapidly graying population, well, it's a field you ought to run screaming from, unless it's your calling.
Don't know about MechE and so on, in general you need to talk to older engineers, the people who run the department, professors, etc., of course adjusting for selection bias. If you haven't already identified a calling, well, you have a lot of options, especially if you're strong at math. Especially before the 2008 crash, a lot of EE strong and therefore math strong EECS graduates would get initial jobs in finance with their proven math chops, which if they were smart got them in a good financial position to do something they really wanted to do later.
I do feel like I'm nearing the peak of my programming ability
Personally, I've done this for 15 years and I keep doing contracting to pay the bills but really I'm pretty done with it.
What about you?
Reasons I (still) love it: http://henrikwarne.com/2012/06/02/why-i-love-coding/
Why I think it is a good career (even if you are older): http://henrikwarne.com/2014/12/08/5-reasons-why-software-dev...
Why programming experience is valuable: http://henrikwarne.com/2014/12/15/programmer-knowledge/
I guess the way technology changes can be a two edge sword, as in you're always catching up, but so far I can't say I'm bored or thinking on doing anything else to pay my bills.
I've had "director" or "head of" or similar in my titles for the majority of the last 20 years, but I keep finding excuses to code because it's what I enjoy doing the most. Whenever my job responsibilities doesn't let me code, I spend more time coding at home.
I'm 40 now, and I can't see that changing. I first started programming when I was 5 years old, and it's an integral, important part of my life.
I wouldn't want a role that had no "hands on" element - personally if you don't occasionally get your hands dirty and stay current with current technology then your capability to make sensible high level decisions decays pretty rapidly.
For the last decade I've been in small start-ups where you wear many hats, Head of this, VP of that. However, even when I'm focusing on business development I'll probably find a way to cut some code. "I could use MS Access for this. Hmmm maybe a better idea would be to write some python and plug the data into an sqlite dB instead" - is usually how my brain works.
Those titles for me has been a means to a higher salary, not something that defines me, and often not something that have defined my roles very well. Despite being "technical director" at present, I spend most of my time on architecture and devops.
But if you care less about the money, then staying in a pure developer role saves you the aggravation, and I know many people who have opted to refuse to be promoted into management positions because what they enjoy doing is the programming and they've been less willing than me to take the titles and find ways to program anyway.
I've personally offered people management positions more than once and had them turn it down for that reason. Including people above 50.
If you were interviewing an applicant for a dev position, have you never wondered "you worked there for 15 years, why were you never promoted?". I doubt the same would be asked of someone who had been working as a surgeon for 15 years.
Of course buying a car solely to drive Uber is a bad business plan.
I say that as an almost-40 Australian software developer...
> Lesson: Unless you are confident that your skills are very far above average, don’t take a career path that subjects you to the employment market once you’re over 50 (and/or make sure that by age 50 you’ve saved enough for a retirement that begins at age 50 or 55
Besides, some of the best programmers I know are 50+.
Granted some did show up.
Let's list the careers that were still considered safe age 50.
Doctor. Lawyer. Professor.
All important, no doubt. But which one of those truly helped advance our society or nation? As in improving GDP or trade balance?
Most likely not.
But the other engineers (some with uncertain future) are the ones who designed/built/produced something for the society.
Ehh... all three? Try running a country without them and see where your GDP ends up. As for 'truly helped advance' and linking that to just GDP is incredibly myopic.
I have all the respect in the world for engineers but let's not fetishise over them.
Doctor: Was the doctor in research?
Lawyer: No comment.
Professor: How good was his research? Or was he one of those the taught from same note year after year and just took credit for work done by grad students?
And my mistake in linking it just to GDP. How about advancing the society by building better tools, transportation, medicine, improve efficiency in this/that?
First of all, what's with that standard? 'if you didn't invent something new, e.g. through research, it doesn't count.' Or, if you kept things together without making progress, it doesn't count? So a police officer or a fireman or a nurse, who cares about that, they're not advancing society because they didn't happen to build a better tool or a new medicine. I mean what are you even arguing here?
And second, alright so let's apply your standard to engineers who spend their entire lives applying laws of physics they didn't invent or models that existed for decades, sometimes even before they were born. e.g. designing the 10000th sewage system in just another city according to existing principles, would you call that 'taking credit for work done by grad students / previous engineers' and dismiss it as unimportant, when it's a truly significant part of society? And how do you rate a software engineer building the millionth crud app for some use case? Say like Hacker News? Unimportant? Of course not.
I mean the heuristic here to help think about value is to remove from society/laborforce for a moment anyone who ever does something that's already done before. And then keep anyone who's building something new. And then compare it with the opposite. The former will result in chaos, the latter will result in a more or less stable society with a lack of progress.
Now obviously you need both. If we didn't have the guys doing new stuff, we'd still be living like we did 50k years ago. But we need both, and the implication that it's somehow only engineers who do the new stuff just isn't true. I mean hell just consider how far engineers get without the professor teaching them all those lame things other people already figured out like laws of physics.
Anyway I get the feeling I'm misconstruing your points but you kept offering questions as things to consider so I just try to interpret what you're implying as best I can. Feel free to just concretely make your point instead.
Yeah, most of these people are slated for "drone" level jobs, but plenty of the very best also get in and do good work. Your ideology might thing this is great, but that doesn't pay your living expenses, especially if you want a family, or a retirement of any quality.
The difference is that, in the professions, you have to get in early but it's the norm to move up fast enough that ageism isn't a problem because, even if you make a couple of mistakes, you'll be at an age-appropriate level. You may not be a biglaw partner or chief surgeon earning 7 figures, but you'll be substantial enough that you're still taken seriously.
In software engineering, there isn't a well-defined sense of what "up" is or what's "age appropriate". There isn't a published career track and a legible ageism. It's there, but it's hard to tell exactly when it's there. Is being a programmer at 55 age-appropriate? If you're an AI researcher at Google X, then yes, absolutely. If you're checking your Jira every morning to figure out which user stories you're going to be working on, then no one's going to believe that you chose to be a programmer instead of a manager. (Hell, I wouldn't believe you. I might still hire you, because I'm mature enough to separate low social status in one theater apart from low ability. If you're 55 and still have to deal with user stories, it means that you managed your social status poorly; but you might still be a rock-solid engineer whom I'd hire in a heartbeat.)
If you look at the Valley's emerging professional model, it's not a kind one and it's not one that ages well. You choose between (a) a "main sequence" where each jump is a dramatically different job, from engineer to manager to founder to investor, and where there are structural reasons why most people will never make it; or (b) fighting for the small percentage of jobs that are genuinely interesting and age-appropriate at any age.
I think it's much easier to deal with age if you're a consultant, because it leaves you out of the political structure of a firm. It makes people uncomfortable to have a 35-year-old "Software Manager II" overseeing a 55-year-old badass. With age, you just don't fit into the corporate hierarchy unless you've climbed it. If you're a consultant and live outside of the hierarchy, then age doesn't really matter.