Pervasive myths about older software developers
lessonsoffailure.com
lessonsoffailure.com
I've been programming commercially for 32 years and in all that time, I have found very little correlation between age and ability to deliver quality software.
I have worked with younger, inexperienced, and uneducated programmers who were willing to learn, with minds like sponges and who were a pleasure to work with. They often found or thought of things the rest of us overlooked.
I have worked with younger, inexperienced, and well educated programmers who thought they knew better and were obstacles to progress.
I have worked with older programmers with the same one year's experience 22 times. Oy.
I have worked with older programmers with excellent domain knowledge and limited technical range. Their personality and willingness to succeed were often the key to progress.
I have worked with older programmers with excellent technical range and limited domain knowledge. Sometimes it's hard to teach an old dog new tricks, but when you can, results can be golden.
I have worked with brilliant older programmers with extensive experience and open minds. The best of all worlds.
(By the way, I have also worked with programmers of many ethnicities, female, handicapped, gay, Republican, religious, even left-handed, and have found little or no correlation between their "description" and their "performance". One of the beauties of programming is that the easiest way to evaluate your performance is through your work itself and not much else.)
I think that a persistant dedication to improvement is the elusive common trait among "successful" people and projects.
I agree with you that "code talks," but want to caution people who would be demure that tooting your own horn when you have victories can get you more pull with management when you have proposals of your own -- i've known too many programmers far better than I be ignored by mgmt because they were the "quiet type." Yes, the is a mgmt failure and I have endeavored to proactively "pull out" the opinions of such people on the teams where I have influence, but a light doesn't do as much good when it is under a bushel.
I've had a /great/ last ten years. I'm not sure what the next decade is going to be like, but keeping fit and keeping up with industry stuff that matters are high on my list.
I've seen many older developers "die" by
- Getting into management (and not keeping up technically)
- Becoming complacent and not learning new things on a continual basis
- Getting stuck doing the same thing for years
I don't mean you should be a butterfly -- nobody likes working with someone who's only spent three months on any project and to whom everything new and flaky is "oooh, shiny!" -- but I've seen too many people just get stuck and seem not to care.
My father in law retired as a C programmer when he was 75. I've seen people considering starting a start-up at 60. If you take care of yourself and your industry smarts, I don't see why this couldn't be you, too.
It's just probably best to save the "Oooh shiny" for exploratory pet projects until shiny becomes reasonable stable.
Unfortunately though I think older developers face more scrutiny as far as their skills go. It's funny but being more fit/healthy does take the edge of of this 'problem' to some degree, but nothing cures it better than thorough technical knowledge and a solid work history of 15-20+ years.
> Myth: Older software developers are more jaded and cynical and therefore, less desirable in the workplace than younger ones. Younger developers are more enthusiastic than older ones.
I would have to say I have been both growing in enthusiasm and getting more jaded. The getting jaded part means you no longer want to hurl yourself at something that experience tells you is doomed from the start, but the enthusiasm means maybe this new twist will make it work.
One of the great powers of youth is ignorance - the kind of ignorance that enables you to take on projects that are too big and require you to push beyond your original capabilities until you conquer. This ignorance is the source of tales that start: "if I had known what I was getting into...."
It took me a long time. Years of part-time effort. But I finally rolled out the first release. I learned a whole lot along the way, and it felt awesome to bring the project to some level of completion.
I'm probably too experienced now to be fooled into starting a project that I know is way more than I could handle, but maybe I should do some of those projects anyway.
Myths 1 (old guys are expensive) and 2 (old guys don't work 80 hours) are the same for any "senior" (read 5 years + experience) programmer. Young programmers will work 80 hour weeks while they build experience and find a better job, but once they become valuable workers (and figure out how to get paid for this value) then they get better jobs. The problem with hiring easily exploitable workers is that they jump ship the minute they figure out that they are being exploited, and replacing them is really expensive (both in fees, and getting the new guy up to speed).
Points 2, 4, and 5 all relate to older minds using existing solutions, rather than figuring out new solutions. This has strengths and weaknesses, but it's generally a strength. The reason older minds use existing solutions is that it's generally cheaper. A friend of mine studied that, and found that when older people are learning a completely new technology, there is a period in which they are not productive (while their brain refuses to switch into learning mode, and tries to find an old model that works OK), then they start ramping up just as good as young people (minus the delay).
The reality is though, there aren't that many completely new technologies. Older people are faster at learning new technologies if they use the same model as an old technology that the young people hadn't learned before.
There's a reason why the best lawyers are NOT those right out of law school as a general rule.
I think that in software development, a lot of the time, 'thinking more slowly' with age is actually thinking more carefully. You have more experience, therefore you have a larger knowledge base; so of course it takes longer to query. It also means that you get better answers, rather than the first answer that pops into your head. At 26, for me to get the same type of results, I imagine that I might have to do some research.
Do you have any examples of what you do to stay mentally active? It also seems important to keep physically active (from my experience with older guys, the ones who are thinking best are typically in the best physical condition).
Start by asking yourself this question:
Why do you think that time seems to speed up as we get older?
Now stop, and really think about that question. Don't skip ahead. Think of some possible reasons. It's a phenomenon that we all experience. What's the cause?
When we are preschool age, time seems to last forever. As we get older, the years start rolling by more quickly and I've been told by more than one person in their 70's that it never slows down, it only speeds up.
Why?
The answer is actually that we've 'been there, done that'.
When we are young, EVERYTHING is new. When we are experiencing something new, time seems to slow down, especially because we are enjoying it and taking in so much.
As we get older, our brains start to filter out what we have seen before. You know that feeling when you drive home and don't remember driving home or anything along the way? Boom. There you go. Your brain just ignored the trip.
Have you ever gone on a three day trip to some new place and felt like your were gone for two months? It's only three days, right?
Well, what you effectively do when you experience new things, you slow things down again. Your mind stays active, and here's the kicker...your brain actually figures out better, more efficient ways to move information around the synapses in your grey matter. No, that's not 'mumbo jumbo'. The reverse is also true, which is why once someone experiences depression, they are always susceptible to it. The brain learns the path to certain behavior.
This is why confidence mantras work. Want to make your mind more powerful every year from here on?
Try new things.
That's your brain entering a sleep state, and it's dangerous. Counter this by constantly sweeping your eyes across the road to stay alert.
I like everything else you wrote, but as a driver, motorcyclist, bicyclist, and pedestrian, I hate to think that people would view "no memory of my commute" as "my brain optimized it!"
My theory: because each unit of time is a smaller relative percentage of our existence to date.
For example, to a 5-yr-old, one year is 20% of their lifespan, and seems to last a loong time. But to a 50-yr-old, one year is only 2% of their lifespan, and flies by.
It's probably because the brain gets worse at encoding memories as it ages, so fewer memories/unit time = faster time perception. Also, older people have slower cognitive tempo than younger people.
Damn. I’m officially cursed then; recent diagnosis of depression here due to midlife business failure. sigh
Sometimes "thinking more slowly" is just "thinking more" before diving in. And often, past experience makes it a lot easier to grasp similar new ideas.
But ignorance can also be an asset sometimes - it can allow you to evaluate ideas on their own merit without decades of baggage.
Like the OP said, you want both on your team (just like lawyers have).
Just like with radio in the early 1900s and other new industries. With time that bulk of age averages out to other industries. Development is an important role in all that we do now, why would only 20yr olds be doing it.
You need supervising on regular basis :)))
And if you didn't hear - life begins at 40.
If you are healthy and smart you can push your energy more effectively and find satisfaction in so many things.
Neuroscientists found that:
* Longitudinal studies shows cognitive skills peak at middle age.
* Older people are happier. As one ages, they become calmer, more positive, and being able to regular them emotion better.
* The amount of white matter in the brain, myelin, continue to increase well into middle age. (i.e. better brain function)
* Older people are using both hemispheres of the brain to handle complex task, a phenomenon known as bilateralization. This is linked to higher cognitive ability.
http://tungwaiyip.info/blog/2010/10/29/secret_life_of_the_gr...
Anybody know of a company that's tried that approach? If none exist, that leads me to think that either we're onto something interesting or that this approach simply doesn't work.
>> it'd be easier to hire 18 or 20 developers in their 40s.
Great developers in their 40s have a wide range of contacts from their years of working, and rarely if ever look for jobs on job boards. Finding great developers in their 40s, and prying them out of their present jobs, is a non-trivial task. (One I am actually in the process of this week).The days are past when I could routinely wrap the clock on an interesting problem. If I did that now I'd be a zombie for a couple of days. Oh well: there aren't all that many interesting problems that come along in the day job anyway, so I make up interesting ways to solve the mundane problems. I wrote some REXX code not so long ago that builds and traverses trees to process an obscure many-to-many relationship in our database schema. One of my comments said that I was trying to see "how much of TAOCP I can remember".
If anybody ever looks at that code I'll bet a buck they won't know what TAOCP means.
None of the people at work my age know what HN is, and only one has ever even heard of Slashdot. Hell, I run the only Linux desktop in the whole enterprise - everybody else is plain vanilla MS-Windows. The kids who run the MS-Windows server farm, 20-somethings, have their own set of blinders on and if studying something doesn't lead to a Cisco or Microsoft certificate they won't bother with it. Young mercenaries, harumph. One of them admits to having heard about tomshardware so there may be some hope for him.
Sigh... nobody to talk to. I checked out a hackerspace in my area, but the kids there (don't mean that to sound pejorative, but I do have 30 years on them) were doing odd web hacks and Makerbot tricks and drinking cheap beer, none of which I found very interesting.
So I take out my creative frustrations at home, hacking at my personal machines. My darling this past year has been Clojure, and going to the Conj back October was an exciting thing. I kept up pretty well and discovered I wasn't quite the oldest guy there, so I haven't gone completely stale.
Have to pay a bit more attention to my body than I used to; I was immortal when I was 24, but now I've got those wrists and my liver to take care of.
(Man, they can't get those telomere therapies going fast enough.)
I graduated with a degree in mathematical economics from a liberal arts school and took some CS (Java and C++) along the way, but ended up not pursuing a degree because I could tell the technology being taught was outdated and largely irrelevant. I taught myself Ruby and Ruby on Rails mostly through reading books and blogs while trying to solve a problem for a client I was providing desktop support.
A friend's consulting shop recently hired their 20 year old intern b/c he is a great hacker, and he, in turn, dropped out of a CS program largely recognized as "very good" b/c it was he thought they were basically teaching "solved problems."
The point here is that a good hacker comes at any age, and your technical ability and attitude mater regardless.
I love working with the older guys b/c they have failed, a lot, and can steer me in the right direction and offer wisdom whereas I bring enthusiasm and an open mind.
Personally, I feel like I'm writing the best code of my life, now at 41. Taking on a startup is different animal though.
As a young programmer, anyone who has been programming for 10+ years is an ABSOLUTELY necessary resource. Us younger software engineers have a lot to benefit from their experience, and the quicker we realize this the better.
Personally, I haven't noticed any difference in cognitive ability or agility between programmers I've worked with in their early 20's vs 40's. And typically, those who have that extra experience seem to almost always build more reliable and extensible solutions.
I really hate to say it (being as I am 19), I would hire my friend Virgil (who's in his 60's) along with anyone with over 10+ years of experience before I would myself or anyone fresh out of college.
Myths are just that. Some, but not much basis in reality. My experience based suspicion is that skills are weakly correlated with age, but more dependent on total focused-hrs spent.
A key realization for me was that the benefits of 'deeply focused hours spent' are not linear. While older programmers have more chance of achieving level X skills, the highly focused and motivated 16 year old can do great work. Greatness is a function of getting to the edge and pushing it. Age is becoming less relevant, meaning that great work can be done regardless of age (I hope!).
I've seen the worst that can happen, and that's given me both courage and maturity.
Most moderately (in)competent developers stop programming in their mid 30 if not earlier, this is a blessing.
Without passion nothing great can be done in this world -- Hegel
There are two kinds of fool. One says, "This is old, and
therefore good." And one says, "This is new, and therefore
better."
-- John Brunner, "The Shockwave Rider"'5 Pervasive myths' indeed - the article actually supports all five, and all five are in fact true.
- old guyThose who started programming in the 1980s had compilers but languages were something you went out and bought, and they were sold like enterprise software, expensive, slow to be updated and not sophisticated.
Those who started programming in the 1990s came of age when a major revolution was being effected by Java. But you still had to build a lot of infrastructure, and engineering involved a large amount of tedium.
The last decade has seen a huge advancement in the quality of the tools, and thus the barrier for entry for programmers is a lot lower.
I even remember meeting one young gun who was proud of the fact that he didn't have a computer at home because this was a job, why would he do it at home?
this is the opposite of the hacker mentality. In the 1970s you had to be a rare breed of hacker, and by the 1990s mainstream hackers could get into the business.
Now people who never wrote a program before entering college are graduating with CS degrees. So it is not only that they don't have a lot of real world work experience, they often haven't been programming at all for more than 4 years.
This is a huge shift in demographics and attitudes. I'm sure many of them are very intelligent and genuine hackers... but they are a very different culture.
I knew a guy who, in the early '90s, had done some programming with a hand drill.
Also, the often noted "magic switch":
I'm reminded of stories about how many were recruited from linguistics programs and other areas. These are often people with a diversity of interests. And yet, they tend to excel in all or most of those interests. (Linguistics, physical sciences, mathematics, music, photography, social sciences, etc., etc.)
My impression is that it was more difficult, and challenging, and that the people you found there had self selected down to a very, very capable -- and often interesting -- subset.
I guess you also had the more "corporate" roles. But even many of those had to "get their hands dirty" when it came to picking the proverbial or literal moth out of the innards so that e.g. payroll wouldn't be delayed. (There was no "plug and play".)
Java revolutionary?
C was revolutionary. It allowed hardware independence compared to assembler. BASIC was revolutionary because it made programming a computer easy enough for kids. Perl was revolutionary to hack the web, as is PHP. TMTOWTDI. But the true revolutionary language is still probably Lisp. Python, Ruby, Javascript are still evolving in a Lispy sort of direction.
It dragged C++ programmers halfway to Lisp, in the sense that hardware abstraction through a VM and automatic GC gradually became acceptable.
that's funny in a bad sort of way, funny but true.
Part of my electronics degree (in the early 90's) involved programming a controller in hex through a 18 key keypad. Not quite card punching, but the screen display was just 2 characters. There was no editing - you had to start from scratch if you made a typo. It might sound a bit geek-macho but actually it wasn't difficult - just awkward. And you didn't need to worry about which text editor you used, whether the source control plugin was compatible - you just worked with what you had.
In the 80's it was still possible to thoroughly understand the electronics, the assembly language AND write your own programs in C.
Now, a web developer has to understand networks, databases, multi-tier architecture, ui design (not to mention the complex dev tools). It's still a big spread, but each of the fields is much deeper so we have to make do with a working knowledge in all these areas rather than "complete" knowledge.
Today's graduates probably dabbled at high school with web page design, photoshop, powerpoint and spreadsheets at high school rather than circuit boards and assembly.
This isn't a criticism of anyone, just my obeservation about why there is a gap.
It is a shame too, because youth has the energy and age has the wisdom, and if the two could be combined, companies would benefit.
Older workers aren't relevant because the younger generation won't listen to them.
The younger generation won't listen to older workers because older workers aren't relevant.
I work with two older guys and its great. They've got all of the domain knowledge and I can just bounce ideas off of them. They can tell me 'we don't really need that', 'that won't work because xyz' or 'we already tried that and it didn't work because xyz'. It has saved me a ton of pain multiple times.
The big deal is the domain knowledge however. Most companies just aren't willing to pay enough to keep domain expert software engineers around.
٭) The app's controls look simple and grayish like in Windows 2K. No color effects. No translucency. No skinning. This is an app that 30 people use on a daily basis and it makes an effort to let them do things fast and accurate with the least chance of surprise and/or annoyance. No user of the app has complained to me yet about the lack of eye candy.
I've had lots of older mentors in my life, and they treated me like their equal. This is a distinct contrast to older people who just take the opportunity to lecture and judge.
"You won't understand until you're older" is a sterling example of how to ensure no young person will listen to you -- it's inherently disrespectful, and shows you are concerned less with communicating than affirming your own special-ness.
Maybe it's you.
(When I was in middle school, I befriended my librarian, taught her HTML, which led to me teaching whole classes of librarians and meeting the library sciences executive for the entire county. She became a friend. Once she told me in typical frankness, "I wish I hadn't given so much to this job. A job will never love you back." Do you think I ignored her, figuring that I knew better? She never once told me "you can't understand until you're older." Because she was a true mentor, and that's a cop-out.)