Software Engineering Is a Dead-End Career, Says Bloomberg
An anonymous reader sends this quote from an opinion piece at Bloomberg:
"Many programmers find that their employability starts to decline at about age 35. Employers dismiss them as either lacking in up-to-date technical skills — such as the latest programming-language fad — or 'not suitable for entry level.' In other words, either underqualified or overqualified. That doesn’t leave much, does it? Statistics show that most software developers are out of the field by age 40. Employers have admitted this in unguarded moments. Craig Barrett, a former chief executive officer of Intel Corp., famously remarked that 'the half-life of an engineer, software or hardware, is only a few years,' while Mark Zuckerberg of Facebook has blurted out that young programmers are superior."
It's not like we make as much money as atheletes, so where do programmers go when they are 40?
I'm god, but it's a bit of a drag really...
Got my first software-development gig at 25. Been doing it full-time since then, and now I'm 58. Still going strong.
What are those Bloomberg assholes smoking?
you could say that about any professional career... I am sure doctors are pretty dead end too...
I guess unless you can hedge fund your way to making billions by exploiting millions... you are in a dead end career.
...it won't end well, now, will it?
People don't just magically stop having bills after 35, individuals are getting married and starting families later in life, and software / tech careers are becoming the linchpin of what's left of the American middle class.
Effectively cut them off from their career fields at such a pivotal point in their lives, en masse... see what you reap. You may not be doing much hiring of any kind when they're done shoving your dumb, pathologically stock-price-obsessed ass effectively out of society.
Software engineering as a private sector job is fairly new in the grand scheme of things. Programmers that are 40+ years old probably aren't even all that common, certainly nowhere near as common as programmers younger than that. I am not so sure programmers starting today will face quite the same challenges having grown up in the midst of the technology revolution. Furthermore, in ANY job you probably will see the older workers doing much more management compared to younger workers. I don't get how this is supposed to be news. Sounds like pointless fear-mongering to me.
I think what they're really saying here is:
"Programmers in their 40s have wives, kids, and hobbies, and that means they won't put up with the 50-60 hour week bullshit we can get the 20-year-olds to eat." Also, they expect raises and vacation, and we just can't have that.
Work isn't your life. Work is what you do to pay for your life.
---
ECHELON is a government program to find words like bomb, jihad, plutonium, assassinate, and anarchy.
Of course someone like Zuckerberg prefers kids that don't have a life, will put up with any crap their fed by the boss, and won't contradict management.
The same goes for your other bean counters.
A Pirate and a Puritan look the same on a balance sheet.
No, just the ones that want to keep a steady progression in wages.
I spent over 15 years of my life as an electrical engineer before I decided to make a career transition into application software development. I went back to school for a mscs and recently got my first entry-level software engineer position, 4 months before (and 4 credits shy) of graduation. I did it at age 41. That flies in the face of the Bloomberg schmuck's article.
Mark Zuckerberg of Facebook has blurted out that young programmers are superior
And his great achievement as a programmer, that gives him the right to judge programming abilities, is ...?
May Peace Prevail On Earth
This is going to sound "ageist" but ... the only advantage young programmers have is that they're willing to work 20 hour days and 7 day weeks for months at a time. And do it for less money.
http://norvig.com/21-days.html
So you need about 10,000 hours of working in a field to become an "expert". If you believe that article (and I do). And someone who is an "expert" has, hopefully, seen enough mistakes and errors over those 10,000 hours to be able to head them off when they show up again.
That's what you're paying for when you hire the experienced programmers. The knowledge of what errors people usually make and why they make them.
So you get code with fewer errors and fewer re-writes to take out the errors that never got in in the first place.
As a study that was linked to right here on Slashdot not long ago shows, ageism in software development is nothing more than arrogant bullshit.
And Zuckerberg is nothing more than a PHP script kiddie who both got lucky and cheated others to achieve his success. His word is hardly to be taken seriously.
I think all of this depends on the industries. In certain industries, banking, government, etc. "old" programmers are very much in demand. Why, because these industries value consistency, tradition and the like. In new industries, that change overnight, it is out with the old and in with the new.
When I was the DP manager for a large government agency, we found that taking employees who understood the business aspects of the agency and training them to program was much more effective than hiring programmers and teaching them the business. I haven't seen any data to suggest the same wouldn't be true in the private sector.
TFA points out that it takes *longer* for the older programmer to find the job. This has nothing to do with how many older guys are out there.
It takes longer for most older people to find jobs. It has nothing to do with being a programmer or not.
"And whatever Zuckerberg says can probably be ignored ..."
You could have stopped right there.
And whatever Zuckerberg says can probably be ignored, because you just know he's the type that, when he's getting on a bit, will be saying that age and experience are what counts.
Zuckerberg runs a big company. He might have spent a few years coding, but he isn't a programmer anymore. I doubt that he put in enough time and sweat behind a compiler to be anything more than a clever amateur, so his opinion on the topic counts for zero. So basically, you have a college kid's level of experience in computer science making sweeping statements about who is and isn't a skilled expert in the field.
Once he is an expert in the field of software engineering, I will listen to what he has to say on the topic. Looking at the quality of his software, it is pretty obvious what dismissing experience gets you.
HA! I just wasted some of your bandwidth with a frivolous sig!
If they want a newbie that knows a lot of abstract book-learnin and bangs his head against the wall for a week on a problem that I can solve in 10 minutes let them continue the illusion that they are saving money.
I will be over here doing great work, advocating the high value practices of the industry, and getting higher and higher salaries from smart employers.
For that matter, forget even thinking about those longer hours and just pay your coders by the line. That will get you ahead.
It's actually quite simple, think about the only other major activity in which a total lack of experience is considered a plus...
Virgins.
And for the exact same reason, because they are too inexperienced to know how badly you are fucking them.
That's how it works in our society. There are exploiters and the exploited. If you are doing real work, you're not exploiting people. Therefore you are being exploited. IOW, it's a dead end career. If you want to have a good career, start exploiting people as soon as possible.
The best and the brightest have always been taken advantage of by the ruthless.
Give me Classic Slashdot or give me death!
That's odd. Most architects I've worked with have the very unenviable job of having to listen to "the business" hand them a flurry of requirements, and they've had to write them down in ways that make as much sense as they can make of them. Doesn't matter if its an Agile shop or Waterfall, it's all having to wade through a pile of demands and ferret out the useless ones or the impossible ones or the infeasible ones and line up the ones that actually make sense so the developers know what they're doing. The ones I've worked with that actually write code usually are doing so to kind of prototype what they want because they aren't able to properly explain their requirements.
Frequently, you have business people asking for things like "Can you make it so it doesn't go into weird modes?" Now how do you explain that to a 25 year old software developer or QA engineer tasked with writing tests for that? What defines "weird"? What do they mean by "mode"? That's the sort of situation architects deal with. They end up in long phone calls with business people and customers who don't have the technical vocabulary to put their requirements in a state where you can transcribe them into requirements, stories, or whatever.
The way you can determine if an architect isn't worth his/her salary is if you sit down to read his assessment and requirements document, and it looks like a bunch of random demands without a point. You can tell that person just transcribed everything word for word and didn't clarify anything. At that point, that architect has become a phenomenally well-paid office assistant.
Personally I believe the bigger issue is the pressure offshoring has put on the market.
The jobs that used to be handled by junior programmers are now offloaded to offshore service providers. So the junior programmers, who just happen to have played with the latest toys and tools while we were busy writing useful code with the previous generation of tools, are readily available at a cut throat price.
So the work that used to be handled by the intermediate programmers now gets passed off to the new grads who used to be the juniors. In the meantime, the intermediate programmers are now ready and willing to undercut the senior programmers for their former job of designing systems and collecting requirements. Sure they don't have the experience of the senior programmers, but they're cheaper, so they get the job.
Which leaves the senior programmers on the short end of the stick. Thanks not only to the pressure of offshoring but the increased use of effective template-based designs, tooling, and frameworks that put to shame older tools like CORBA, and suddenly the only experience the senior programmer has that's actually relevant is their business experience.
Their degree is out of date. Their tools are matured with a wide range of skillsets available for reasonable or cheap prices.
But one thing experience teaches you that nothing else can is an intuitive grasp of how the frameworks and tools function and what they are probably doing inside all that obfuscated and hidden code. Because we used to have to write the code the frameworks implement by hand.
Unfortunately, despite the speed with which senior developers can debug problems thanks to their intuitive grasp of "the machine", there just aren't enough "tough" debugging problems to justify keeping them around in anything but the largest of teams and companies.
Still, senior developers can find work. If they're willing to retool, retrain, move, and take a pay cut that may well mean they're making less in real, spendable dollars than they did twenty years ago. And if they're real, real lucky.
I do not fail; I succeed at finding out what does not work.
An old man once told me that age and treachery will always trump youth and skill...
ipv6 is my vpn
remember, 2 entry level employees cost more than 1 employee at twice the salary. Benefits and overhead cost quite a lot and they are generally on a per headcount basis.
"In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson
This works against older engineers because they are competing against younger engineers who can adapt to new tools faster.
Really? Platforms and tools? Rephrasing without the business speak, you seem to be talking about four things: languages, standard/common libraries, techniques, or actual programming tools, i.e. computerised assistence in the actual effort of programming. Languages only get easier to learn; The more you know, the more wierd something has to be to have not 'seen that syntax before'. Same with libraries. Techniques of getting things done? I'm pretty sure it's harder for a fresh out of school programmer to pick up a book on advanced AI techniques and implement them from scratch, than a programmer with 20 years of experience who has probably used similar techniques at some time, possibly even independently developed (Hey we ALL reinvent the wheel on weekends). And learning a new IDE, or tool like make or ant ... Sure the 20 something might be able to read through the manual slightly faster, because of better eyesight...
Recent graduates might graduate with knowledge of current tools, but that doesn't make them able to learn faster. It's just that they don't have to learn at all.
You've got it right when you say "compared to normal people". Being a (good) software engineer takes a better-than-average brain. Better-than-average as in 98% of the world population won't ever be a good software engineer, no matter how much time and effort they put in it, because they simply don't have the brains for it.
.net, AJAX, XML, "in the cloud" and whatever newfangled crap you throw at them. They've been learning all their lives. They'll learn that new stuff faster than you can say "get off my lawn".
Now let's assume a company with highly talented individuals. Some experienced, some novice. Why does salary need to keep going up? Simple. They should be paid more, because they're worth more. An experienced software engineer can be ten times as productive as a novice, will solve the same problems in less, more elegant, more maintainable code and have lower bug rates. They meet deadlines more consistently too. Yet, despite much better quality, lower risk and ten-fold productivity, it's rare to see more than a five-fold difference in salary. Being undervalued for their accomplishments, do you think it's strange developers switch career?
It's the experienced coders that you want. Compared to novice coders, they're an absolute bargain. *That* is why you want to keep increasing their salary. Oh and by the way. Experienced coders have no problem doing IPv6,
Visit http://ringbreak.dnd.utwente.nl/~mrjb/growingbettersoftware to download your free copy of the book
Get off your high horse. If you had said "top notch" software engineer, I would agree. But "good"? Lots of smart people can be good software engineers given the right education and experience.
Yes, there are "rock stars" but you don't have to be a rock star to do solid work. Hell, I'd guess that only about 5% of professionals in ANY given field are really really good at what they do.
You can't fire people when you don't have anyone to hire to fill their spot.
I'm pretty sure companies do this anyway... They just expect under-qualified people to pick up the slack.
All the world's a CPU, and all the men and women merely AI agents
"The Dunning–Kruger effect is a cognitive bias in which unskilled individuals suffer from illusory superiority, mistakenly rating their ability much higher than average. This bias is attributed to a metacognitive inability of the unskilled to recognize their mistakes.[1]" - wikipedia
Exploitive management wants people they can manipulate and take advantage of - that's why they like kids.
All I see written by kids is a bunch of insecure PHP web sites with obvious errors and Java projects trying to reinvent the wheel that are always over budget and never finished.
It wasn't kids that designed your CPU, GPU, compiler or OS.
It wasn't kids that took us to the moon or developed nuclear power.
The best thing you can do in any technical field is find an older mentor. All old people were young but young people haven't been old yet. Do you know that Java project you've been working on for a month? You can do it in 2 shell commands.
The other issue is that software can have a very high return and most programmers have relatively low consumption lifestyles so most of the best programmers own a biz or enough equity or before they are 40 that they don't have to work bad jobs. Compare that to the average management fool that spends every penny he makes and goes into debt to get a 2nd house and a 3rd wife. He'll be working until the day he dies.
"If you think it's expensive to hire a professional, wait until you hire an amateur."
"Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
Exactly, if you want to increase your income but continue to be a programmer then look elsewhere. You already make a decent amount of money as a programmer use it to invest in some other things like rental properties or stocks. It's a little after hours effort but it will increase your pay without having to move down into management.
Paying taxes to buy civilization is like paying a hooker to buy love.
forget even thinking about those longer hours and just pay your coders by the line. That will get you ahead.
It will certainly get you ahead in the contest for needlessly long, verbose code....
Being a (good) software engineer takes a better-than-average brain. Better-than-average as in 98% of the world population won't ever be a good software engineer, no matter how much time and effort they put in it, because they simply don't have the brains for it.
Citation? What does "better" mean in terms of brains, anyway?
I doubt that "good" software engineering and "better" brains correlate. There are probably many with above average IQs or who are elites in other fields who would be terrible software engineers.
I submit that "good" software engineering requires no better than a "good" brain, but whatever brain "power" is at hand must be optimized (partly by nature, partly by nurture) for the task at hand.
The point being no combination of education and experience necessarily identifies the "best" in the field. The best that can be done is to reward actual performance, regardless of either.
I know you are speaking out of ignorance (and/or some really bad experiences with "managers"), and I wish I had time to provide more insight for you. Instead, I'll tell you why you're so wrong. Many managers (like me) are promoted from the ranks. I never really wanted to manage people - I did it before and didn't like it - but was thrown into the position anyway. I spent many years coding and implemented many successful projects. I still do that, and even dig down into code now and the, but my team does most of that. They are good at it, but they need me managing the project, running interference with upper management and business folks, designing the architectures, and many many other things that need to be done. They can't do these larger projects without me.
Frankly, I wonder if you have ever done any real software engineering - you don't seem to have much understanding of how large projects are done.
"Somebody has to do something. It's just incredibly pathetic it has to be us."
--- Jerry Garcia
I'm a less-than 30 year old developer. I've worked in organizations with 1:10 manager:dev ratio, sometimes higher. These managers did no coding whatsoever (some barely understood what we were doing), and spent their time inventing metrics, discussing/presenting these metrics, and making sure devs did the absolute minimum required to satisfy the customer because all they ever looked at were those metrics. While this may not apply to you, I can see where he's coming from. I now work for a company that has roughly a 1:70 ratio of manager:dev, and it's great. Devs participate in all levels of decision making, including the assignment of features/projects to younger devs, and oversight of their proteges. You could say that the managerial-level decision making is informally shared among the senior engineers. But they code just as much as I do. Coders are given independence and have ownership, and quality is their mandate. I hear Valve operates in a similar manner and their success mirrors our own. Ok maybe they are a bit more successful ;).
Good devs shouldn't stop coding unless they are bored with it. They should continue to work and be compensated according to their skill and experience. I feel a lot of firms have devalued experienced engineers to their peril. They dangle the $$ carrot in front of engineers who are at the top of their game, drawing them into an occupation where they no longer add demonstrable value to the company's products (again, not necessarily you), and then hire a newbie to fill the hole at the bottom rung. Worse, they farm out the work. The end result is invariably a crappier product.
Remember, he who dies with the most stuff....wins.
Wins what? By what rules? And what good does it do you if you're dead?