The problem is that our industry, unlike every other single industry except acting and modeling (and note neither are known for “intelligence”) worship at the altar of youth. I don’t know the number of people I’ve encountered who tell me that by being older, my experience is worthless since all the stuff I’ve learned has become obsolete.
This, despite the fact that the dominant operating systems used in most systems is based on an operating system that is nearly 50 years old, the “new” features being added to many “modern” languages are really concepts from languages that are between 50 and 60 years old or older, and most of the concepts we bandy about as cutting edge were developed from 20 to 50 years ago.
It also doesn’t help that the youth whose accomplishments we worship usually get concepts wrong. I don’t know the number of times I’ve seen someone claim code was refactored along some new-fangled “improvement” over an “outdated” design pattern who wrote objects that bare no resemblance to the pattern they claim to be following. (In the case above, the classes they used included “modules” and “models”, neither which are part of the VIPER backronym.) And when I indicate that the “massive view controller” problem often represents a misunderstanding as to what constitutes a model and what constitutes a view, I’m told that I have no idea what I’m talking about–despite having more experience than the critic has been alive, and despite graduating from Caltech–meaning I’m probably not a complete idiot.)
Our industry is rife with arrogance, and often the arrogance of the young and inexperienced. Our industry seems to value “cowboys” despite doing everything it can (with the management technique “flavor of the month”) to stop “cowboys.” Our industry is agist, sexist, one where the blind leads the blind, and seminal works attempting to understand the problem of development go ignored.
How many of you have seen code which seems developed using “design pattern” roulette? Don’t know what you’re doing? Spin the wheel!
Ours is also one of the fewest industries based on scientific research which blatantly ignores the research, unless it is popularized in shallow books which rarely explore anything in depth. We have a constant churn of technologies which are often pointless, introducing new languages using extreme hype which is often unwarranted as those languages seldom expand beyond a basic domain representing a subset of LISP. I can’t think of a single developer I’ve met professionally who belong to the ACM or to IEEE, and when they run into an interesting problem tend to search Github or Stack Overflow, even when it is a basic algorithm problem. (I’ve met programmers with years of experience who couldn’t write code to maintain a linked list.)
So what do we do?
Beats the hell out of me. You cannot teach if your audience revels in its ignorance and doesn’t think all that “old junk” has any value. You cannot teach if your students have no respect for experience and knowledge. You cannot teach if your audience is both unaware of their ignorance and disinterested in learning anything not hyped in “The Churn.”
Sometimes there are a rare few out there who do want to learn; for those it is worth spending your time. It’s been my experience that most software developers who don’t bother to develop their skills and who are not interested in learning from those with experience often burn out after a few years. In today’s current mobile development expansion, there is still more demand than supply of programmers, but like that will change, as it did with the dot-com bubble, and a lot of those who have no interest in honing their skills (either out of arrogance or ignorance) will find themselves in serious trouble.
Ultimately, as an individual I don’t know if there is anything those of us who have been around for a while can do very much of anything, except offer our wisdom and experience to whomever may want to learn. As someone who has been around for a while it is also incumbent on us to continue to learn and hone our skills; just this past few years I picked up another couple of programming languages and have been playing around with a new operating system.
And personally I have little hope. Sure, there is a lot of cutting edge stuff taking place, but as an industry we’re also producing a lot of crap. We’ve created working environments that are hostile (and I see sexism as the canary in the coal-mine of a much deeper cultural problem), and we are creating software which is increasingly hostile to its users, despite decades of research showing us alternatives. We are increasingly ignoring team structures that worked well in the 1980’s and 1990’s: back then we saw support staff (such as QA and QAE and tech writers) who worked alongside software developers; today in the teams I’ve worked for I’m hard pressed to find more than one or two QA alongside teams of a dozen or more developers. I haven’t seen a technical writer embedded in a development team (helping to document API interfaces and internal workings) for at least 20 years. And we are increasingly being seen as line workers in a factory rather than technically creative workers.
I’m not bitter; I just believe we’ve fallen into a bunch of bad habits in our industry which need a good recession and some creative destruction to weed out what is limping along. And I hope that others will eventually realize what we’ve lost and where we’re failing.
But for me; I’ll just keep plugging along; a 50+ year old developer in an industry where 30 is considered “old”, writing software and quietly fixing flaws created by those who can’t be bothered to understand that “modules” are not part of VIPER or that MVC can include database access methods in the “model” and who believe all code is “self-documenting.”
And complaining about the problems when asked.
You have accurately described the tip of a very big iceberg. Fortunately there is a name for it. Think of Steve Jobs and the worship of his arrogance. The name is Aspergers syndrome. Most of the current crop of celebrity techies have it. They don’t know that they have it. It just seems normal to them. Assuming that anyone who disagrees with you is stupid is normal in the technology industry. The same issue of Slashdot that your comment appears in also contains an article about Microsoft abusing its customers. Apple users could say the same, when you point out a bug to Apple they will tell you it’s a feature. The Mac file system does not work, but they are making billions, so you must be wrong. Try telling Linux users that trying to force users of a GUI to use the command line to access basic functions has failed consistently to attract a viable market share after two decades. You won’t get a reasonable rebuttal because you must be wrong. The nerds have dropped the mic.
“The problem is that our industry, unlike every other single industry except acting and modeling (and note neither are known for “intelligence”) worship at the altar of youth.”
I don’t believe that. It may be a problem in the technology industry, but it’s certainly not unique to technology. If you look at the US government’s list of median ages by industry, technology doesn’t even crack the bottom 10.
I was surprised you don’t mention athletics. They “worship at the altar of youth” far more than technology does. Quick: name a gymnast, from any point in history, who competed when they were older than 25. At Rio last year, Aly Raisman was the oldest on the gold medal team, at 22. It’s common for gymnasts to retire in their teens.
Or look at professional musicians. Of the top 10 on the Billboard “Hot 100” today, how many artists are over 30? I see just one: Bruno Mars is a geriatric 31. There’s lots of early-20’s musicians, and at least one teenager.
The average age of Formula 1 drivers is under 30. The average age of winning F1 drivers is under 30, as well, so that figure isn’t spoiled by lots of rookies.
The average age of the US military is 30 or younger, across every branch. The Coast Guard is the oldest, at 30. In fact, the various branches actually block enrollment at age 28, 34, or 35.
I’m sure there are others — these are just the ones I could think of and verify easily.
BTW, acting is a weird one. It’s really only youth-obsessed with women. By any reasonable measure of success (money, awards, etc), men’s acting careers tend to peak in their mid-40’s. I’d describe the acting world as having a problem of sexism, rather than a problem of ageism.
I also take issue with your suggestion that fields which “worship at the altar of youth” are at odds with “intelligence”. Mathematics has long had a reputation for being a “young man’s game”, and I can name more than a few top mathematicians who did their top work when they were quite young.
Technology today has an issue with being centered on pop-culture rather than knowledge, and it might have an issue with glorifying youth (I haven’t seen this myself but I’ve heard too many secondhand reports to dismiss), but these two problems are not necessarily related, and neither one is unique to technology.
I take issue with your conflating the reality of athletes short careers based on physical damage or limitations of their speciality. Older is slower for many, many sports. Not all. It definitely is not true for SW, although management likes them well enough. Financial types like that they are cheaper.
I have retired from the SW industry and youth is its future. That is regardless of facts, knowledge, history and a wealth of knowledge that exists in senior developers. Routinely I have commented to others that ‘their unique’ problem was solved, or at least addressed, in the 70’s. Often before they were born. A specialist is good at their specialization. A software engineer understands the principles of CS & SW engineering. For a project with a new language, give them the manual, the language and they will be functional in a month or less. And very proficient in three. Less time than it takes for ‘new, young, bright’ pretenders to learn their special language.
One of the biggest problems in CS is teaching the history of our profession. We got here on the shoulders of giants, yet the newest have little if any understanding of it. I downloaded linux v.93. Then a slackware distribution, it took 24h. Finally, source code to the OS on a PC. Yet, many young developers understand nothing about linux or its very interesting history. Teaching high level coding only leaves them without a proper foundation. Teaching it is not an easy problem to solve.
Note that young mathematicians are often (if not always) standing on the shoulders of giants. As to the strength of their young, also note the length of their work once they have matured. You belittle those you praise.
+1 for mentioning F1.
Schumacher, Alonso, Vettel all took 3-4 years of racing in F1 before they took the championship. Countless drivers have had F1 careers not even half that long.
Hamilton became the champ after only 1 year of racing; a contentious victory that still has Massa fans smarting.
In the case of Vettel and Hamilton, both of them were groomed for careers as F1 champions before their tenth birthdays.
I’m just adding color because I love F1…only a few more weeks away!!!
I’ve been a hiring manager in tech for 20 years…a person is only as old as they feel.
If he feels so strongly about these things…craft and teach an course on these things and see if there’s any takers.
How we got here: Tech bobble gold rush, big tech (google/s) takes best talent, investors only want good enough (build to a price), young bro-grammers fill need, flood of millennials (like the Chinese army) take over IT. Now we are moving as fast as we can, in the cheapest vehicle we can build, caring other people’s property.
Some of this is good. (SpaceX?) Some is pandering gossip (Facebook?) Some are rubber dog turds. (Ha.. sh– sells)
The pendulum swings: Mainframes connected to dumb terminals sending CICS to real time computing (PCs) to AWS connect to browsers sending HTML/CSS. So the bro-grammers think they are inventing something new.
Wisdom is learning from other’s mistakes. Developers today think of anything older then 5 years as obsolete. They are excited by what they think is NEW but really they are just naive.
Time is the flame in which or lives burn. If only more would take a moment and seek wisdom their products and lives would be enriched.
I’ve been IT for 40+ years. Still working. Still seeing the same mistakes made over and over again. I have a few young people I mentor and I’ve seen them move way above their co-workers.
So here is some words of wisdom if your new in IT. Find a co-worker over 50 and ask for advise.
Youth has its own Biological advantages. Albert Einstein, as we know him from Photos – wild white hair – didn’t accomplish then anything to rival his one Golden Year , 1905,at age 26. Brownian motion,Photoelectric effect,Special relativity – all in one year.
There is a balance between experience and Knowledge – on one hand, and Brute Biological deterioration of brain tissue, on the other hand. An older surgeon is very experienced, but his sight and muscular tone are worse.
I retired 3 years ago. Sometime later, a customer for which I helped build a system in the 80’s of the previous millennium called me to help transition the (FULLY OPERATIONAL!) system to a “modern” system – certainly not better, but vendor-supported.
I work with people younger than my Children. The distinctive characteristic of many of them is – absence of curiosity, with a firm belief that CAP (Not Eric Brewer’s CAP – just plain Cut and Paste) is the absolute development paradigm. So be it.
I’ll keep working as long as I can and my employer finds me useful.
So, stop whining. Think about the Veteran Eskimo Hunters sent to the Ice fields.
Youth may have its advantages, and certainly what you do in your 20’s will establish the path of your career (fairly or not) for the rest of your life. However, there are plenty of examples of people remaining productive well into the twilight of their lives. (For example, Richard Feynman was contributing well into his 60’s.) And while we talk about the contributions of people in their 20’s as if youth has a biological advantage, I strongly suspect the real reason why so many people drop off their productivity in their 30’s and 40’s has more to do with a focus on family rather than a lack of ability or biological deterioration.
(I remember reading somewhere, but don’t have the time to fetch it now, that the two reasons why people become slower as they age is due to (a) a lack of continuing to exercise the brain, and (b) there is far more material and experience to draw upon when coming to conclusions. If you continue to work in the field, then (a) is not a concern. Considering (b) a disadvantage strikes me as extremely idiotic: it’s like saying your library is far more efficient now that you’ve burned all of the important books.)
This is an interesting problem to me. I spend a lot of my time, mostly in my capacity as a senior (I will soon be 65 and I am still working) software engineer, working with people that would like to think of themselves as software engineers or at least pretty good programmers.
I’m generally surrounded now, though not entirely, by people that are at least 35 years old and working on relatively complex systems. I’ve known some of them from their younger days and had the opportunity to mentor and coach three or four of them off and on for some time, one for around a total of 10 years. Some of these younger workers at first had a hard time understanding how important it was to understand people, how they work, and how to resolve conflict pleasantly or at least effectively.
One or two colleagues I have coached didn’t understand why they were disliked or being impeded in their work. Some of them were much better than their peers, some about as good, and some were over the hill or just never were very good at what they were doing. These people were in different age groups ranging from their mid-20′ right up to their late 50s. When interpersonal conflict arose, almost universally the problem was a lack of good social skills. This caused some of them to fall back on destructive coping or manipulation patterns learned when they were children and not updated since.
I believe that young people tend to reject the counsel of older workers because they have yet to develop the maturity to understand something very fundamental: it’s not sufficient to be good or even great at what one does. The capacity of an individual will not be sufficient to deal successfully with large problems and big systems, and knowing how to get along with others becomes absolutely essential to success. That means recognizing others might have experience one does not currently have.
In my experience, young professionals seem to move between plateaus, their paths influenced by the experiences and people they come into contact with. In our industry, we are joined by young people that may or may not have had extensive formal training in math, CS, or SW engineering. Some of them took up programming at an early age or in their teens, and some of them are indeed prodigies. Early success may lead such individuals to perceive their talents through a lens distorted by their egos or an overweening need to prove something either to themselves or others. And they may even be very good at what they do. Nevertheless, a single good or even great skill is not sufficient.
Many of us veterans have probably forgotten more than most of these young Turks will ever know about our craft. But forgetting was based on necessity: the industry and technology has evolved in complexity by orders of magnitude in the space of a single career. Thus, those of us embracing new learning throughout our working lifetimes have a perspective that a youngster that entered the industry 5 years ago cannot possibly have. A young professional may have completed just enough work to think they know the whole story but not quite enough real experience to grasp how much more there is to learn. Roughly speaking, this is an example of the Dunning-Kruger effect: “low-ability individuals suffer from illusory superiority, mistakenly assessing their ability as much higher than it really is.”
In a sense, it is our responsibility as senior developers and engineers to help the next generation get over itself. That means we will need to develop and refine new skills of our own to bring that about.