Do you want to be programming at 50?
pindancing.blogspot.com
pindancing.blogspot.com
When people ask this question, what they are actually asking is, "Do people want to hire a 50 year old programmer?"
For a lot of the HN set, I bet they would be unsure about hiring someone of such an age; and that's unfortunate.
For many careers, age is seen as wisdom. Lawyers, mathematicians, judges, accountants, politicians, scientists, MBAs, real-estate agents, bankers, journalists, doctors... In all of these fields, all else being equal, you'd probably hire a 50 year old over a 20 year old.
Programmers seem to have more of a shelf life on the open market, along with models, actors, musicians, and laborers. I think many 30 and 40-something programmers sense this and start to wonder if they need a backup plan to get to retirement (which in the US is actually often mid-60s).
Today.
Maybe people will realize the wisdom of 50 year old programmers in a few decades.
Given the graduation rate of programmers, as with most things, the number of them over 50 is a growing segment of the total available programmer group.
There is ageism in some places, Google had that taught to them the hard way, but realize that a 50 year old programmer probably graduated from a university prior to 1985, there weren't as many graduating then as there are now. I know from experience that it can irritate a young programmer if you know their idea won't work because it didn't work in the 80's :-).
And some people got into programming as a way to 'make good money' which it is (relative to say working as a stenographer) but their motivations don't always survive into their 50's. So they often change to other non-programming roles.
I expect to program in one form or another until I die. I like the puzzle aspects of it, and the thrill of seeing complex systems come together. So even if I wasn't being paid for writing code I'd still write code in my 'spare' time.
But there are also curmudgeons. These would be folks to learned one way to program and don't want to learn anything new. They have a hard time because they say they are programmers and people looking for programmers ask about current technologies and in response they hear about how crappy these new things are relative to the old ways. Those people are stuck and I feel sorry for them. The may want to program at 50 but they may not be able to find paid employment doing so if they don't know enough about the current state of the world.
That said salary's tend to cap out fairly quickly so generally someone with 30 years of experience costs about the same as someone with 15 years of experience.
Let me tell you the technology fancy in 1985, their very nature, direction and paradigm is so drastically different than now, unless the 50 year old person spends a lot of time adapting he is going to be wiped out in the competition.
When I'm 50 I don't want to be spending two weekends straight learning Ruby on Rails.
And there you see start contrast with other professions. How much has law changed in the past 30 years?
It's all a matter of when did they start, and if they evolved with the industry or got stuck with Fortran / Cobol / BDUF / rigid Java OOP and rigid adherence to GOF Design Patterns.
Look at people like Martin Odersky (54), put aside the fact he created Scala, I'm sure anyone here would love to hire him as a coder if he was for hire :)
Same for Josh Bloch (51) and many others. It's just that statistically, because the profession has grown and is growing, it's more likely to find a good young developer as there are more young developers (sample size is bigger, citation needed)
Just a though. I don't think people in their 50's think any slower, have less IQ or less talent than young people only due to the age. (and I will ignore any research that proves otherwise)
Is that really true? When I was a hiring manager, we went out of our way to try and attract and hire very senior, experienced people, especially those who had managed to avoid the lure of management and just played a CTO/chief architect role. (managers were actively rewarded for making such hires and penalized if those hires swiftly left, for good or bad attrition reasons) I personally hired several, and also had a few who worked for me, some of whom were > 30 years older than I at the time.
It was a truly wonderful experience, as people of that age who haven't checked out bring something great to the team, both in terms of productivity and in mentoring for the young folks.
As for computing market - I was recently working with a database designer who was in his 70s. He graduated with a mathematics degree a few decades ago and had a really impressive portfolio of companies and people he worked with. Even though he retired a few years earlier, he simply refused to stop building things. We couldn't ask him to work with us until 6am or learn jQuery in one night but he brought a lot of value to the project.
(I'm simply trying to show that "age is wisdom" is very dependent on the industry. Whether older programmers are, as a rule, more or less valuable than younger ones, I dunno.)
1. Health. This is a big one. By 50 sitting on your ass every work day for 30 years has caught up with you. Hypertension, sleep apnea, diabetes, back pain, etc. You're going to take more sick days, take more time off to see the doctor, and you're going to come to work on drugs that make you tired or a little fuzzy, mentally.
2. Lack of energy. Even if you're healthy at 50 you don't have the same ability to roll with problems that you did when you were 32. You can't put in extra time and maintain productivity. When you get home you don't have the energy to tinker with technical stuff just for the fun of it.
3. Cognitive decline. Nobody likes to think about this, but the reality is for most people cognitive decline starts in your 30s. By 50 it's affecting your productivity. Things that you used to remember for as long as it mattered (like file, class, or machine names) you have to write down now. It takes longer to pick up new technologies and you forget them faster. This translates into lower productivity. Maybe a little lower, maybe a lot.
So even though I'm getting to the age where it affects me, I don't blame companies and individuals for their reluctance to hire older guys. It's based on real-world considerations. If I get laid off will I be able to find another programming job? Probably, but it's going to be a lot more difficult than it would have been 15 or 20 years ago.
I refuse to be bitter about it, though. I had my chance to go into management and decided to keep writing code, even though I knew things would get dicey later.
Yet, it doesn't have to be that way in your forties.
Both candidates running for the Presidency, and both Vice President candidates are older than 40 (Paul Ryan barely so) and have tonnes of energy. The right takeaway might be that you need to actively focus on your health as you grow older. Sounds like good advice for anyone, programmer or not.
(downvoted? wtf? )
I'm not saying once you hit your 40s you're useless, just that you're a bit slower than you were. From a company's perspective it makes a lot more sense to hire people who are younger - that's just playing the odds.
>Both candidates running for the Presidency, and both Vice President candidates are older than 40 (Paul Ryan barely so) and have tonnes of energy.
How would you know? Those guys have staffs to handle every conceivable need so they can use all the energy they have in public.
If you have to hire an army of java programmers to finish a MegaCorp project in an year. Are you going to hire 25 year old or 50 year olds? Considering the bulk of the work hardly involves any risky decision making and most of it is actually working 16 hours a day?
But whatever. I was just puzzled as to why someone would want to downvote the idea that you can be alert and sharp in your forties.
Or will everybody else?
Sadly, this appears to not be the case. All the research I'm aware of indicates that fluid intelligence peaks in your 20s and then inexorably falls. To some extent this can be offset by experience and staying mentally active, but there's no way you'll have the same memory recall at 70 that you did at 30.
Yet another reason aging is awful and we should be spending a lot more effort trying to prevent or repair its damage (e.g. http://sens.org), rather than expensively treating and ultimately succumbing to individual diseases of old age.
My Dad, a WWII veteran taught himself microprocessor assembly programming in the 80's for fun. When I found out he was doing what I was doing as young man and was thinking I was all hot; oops reality bytes.
You have a lot to learn dude, try not to attempt to profess too much.
Oh, what a surprise! You're sure and yet... you're wrong. "Jibe" is the correct word.
>I've watched and read a number of articles on how using your brain keeps it working well. Wow. Thanks modern medical science, duh.
Yeah, duh. Using your brain does keep it in better shape than if you don't use it, so you got that part right. But you should have read the rest of the article, the part where it says you can't stop the decline - you can just slow it down.
No, I mean us. You may still be pretty sharp, but you're not as sharp as you were in your 20s. That's just a fact of life. Even your life.
>I can't give up, I'm driven, I drive. I code and I'm good.
If I had a nickel for every lousy programmer who thought he was good I could retire. But even if it's true... so what? When a company passes over you in favor of a younger guy it's a rational decision on their part - they're just playing the odds.
I'm not saying you can't can't get a job once you reach a certain age, just that there are valid reasons companies would rather not hire older programmers.
Welcome to the new world, you don't have to be good to be rich.
You might as well be somebody who does a lot of things. The important thing is in doing, you have to do something. Even if badly, just do it.
The whole problem is young people make great work horses. And generally its very difficult to beat endless brute force energy with pockets of experience. That's a losing game you have to play.
50 year old real estate agents aren't very popular either.
Put in plane words vast body of available information, cheap price in accessing them, lost cost of making and recovering from mistakes, and ease with which you can do things in software makes pace of discovery more important than innovation itself.
There you see why I don't want to be a programmer at 50. Programming is become more of a commodity skill, and will go down that way over time. The bargain points are going to price and pace of development. Both of them suit a young man's life, not a 50 year old person. Whose priorities are going to drastically different than the guy at 25.
I think the secret question behind a lot of this sentiment is: do you want to still be burning yourself out at 50? Do you want to still be working 60+ hour weeks? Do you want to still be on call 24/7? Do you want to still spend part of every release cycle in a pitiless death march?
And, ultimately, do you still want to put up with all of the bullshit in this industry?
But all of that bullshit is not an inherent part of working in this industry, it's just a byproduct of the immaturity of the industry.
The author here tries to draw a distinction between "Type A" (programming by intention) and "Type B" (reactionary programming verging on programming by accident) but there's really nothing wrong with "maintenance mode programming" as long as you're not perpetually in firefighting mode. Indeed, concentrating on polish, performance, and robustness are often fantastic ways to improve a system, provided that they are done well and not half-assed last-minute kludges.
Because, oddly enough, I have been in the industry a long time, I happen to know that's wrong.
The "all the bullshit" of the industry is not a product of the immaturity of the industry. Because it had gotten worse. In each of my five-ten year job search cycles, I have observed more companies with more of the problems you describe (60+ hour work weeks, 24/7 on call, psychological pressure for death marches, etc). Each time, consistently more insanity.
Not sure exactly what to do myself or in general but I'm pretty sure we can't chalk this up to an immature industry.
Do you want to be doing those things when you're 30?
25?
20?
Maybe there's a better way...?
Besides you don't want to fire fighting with software, But you are OK with firefighting with life? Especially when you are 50?
[EDIT to clarify]
Just think about the new languages or paradigm we may have. I dream of the google glasses - what will we have then?
So, my answer is yes - for both type A and B. And if you don't have time to understand the problem space of type B problems, maybe you should take more time to study them. Learning is fun.
Autonomy? I already have lots of it - and we all do. Maybe running things could add some more. Never before in history creating value was so easy with so little capital.
Mastery? I keep discovering new stuff and learning. The amount of knowledge you already master is not important - especially since memory is tricky and you will forget stuff. Being able to quickly take new stuff is important.
Purpose? You make your own purposes. There is no bad or good - or sense. If you find some, there is some. That's my zen approach.
Reminds me of my mentor when I got my first job at Boeing. He was in his 50's at the time, and loved every minute designing systems for airliners. He eventually retired, and still freelanced doing mechanical design work. It's what he was born to do, and he was damned good at it.
And that's why, according to the article.
I actually had my wife talked into allowing me to switch to an entry level programming job in a totally different software field (potentially at an entry level salary, at least for a while ;-) so I could learn new things and enjoy work again. Before I actually took that step, a startup hired me. I am still in the same field, but I am back to learning lots of new things, working smart and moving fast.
I also like learning new languages. Over the years I've found learning new languages to be easy peasy. it's learning the libraries and frameworks that take time.
Take .Net for example; c# is a wonderful language. .Net is a monster. That's the hard part. Same with Python, PHP, Java (especially Java), & javascript (etc). But I actually enjoy it. Cause now I have the tools and time to go through a library like .Net and explore.
The deadlines are met by my team. I just make sure the code/project stays on target and budgets.
I read code. I read /lots/ of code.
I'm an ACM member. I go through recent publications and try to read at least a paper a week, in whatever area interests me.
I write designs, using english and diagrams and stuff. I explain APIs and establish contracts with the folks who use my code. Written communication to /people/ is a powerful skill, and you should practice it continually.
I like to learn new languages (though my brain appears to be impervious to Haskell and Prolog). Also, learning idioms of the languages I currently use is fun.
I write code. The frequency of this ebbs and flows; lately I've spent more time going between groups and establishing common ground that writing actual code, but then I can spend a couple months getting the code done, and it's a ton of fun seeing the groups able to use it effectively.
Finally, I have fun. I can't imagine coming to work every day to a drudgery of kicking around a bunch of crap I'm not proud of. Have fun, or you're dead in this industry.
At some point, I'll actually take that advice and be a something-else-who-can-program, but that hasn't happened yet.
And really, if I was more okay with paraphrasing/slicing up the original text, I probably would have removed the "are respected and" bits.
What the hell is all this crap! I spent a day trying to figure it out. Then everytime something went wrong there I was, diving through the same crap all over again.
Or the bitter sting of not diving down far enough. Remember that app where you wrote code all around the barn and farmyard, only to realize that a couple of API calls would have done the same thing? Ooof. That hurts.
As an older programmer (who doesn't code for a living), I enjoy the challenge of finding the right abstraction level and skating into a solution. When I wrote my first COM server, I used an MFC book, a Doc-View type model, and then copied liberally from MSDN. Worked like a charm. It was a lot of work, but rolling that sucker by hand would have been brutal.
And it's gotten even easier. When I wrote http://hn-books.com, I thought "I wonder if I can write a static site that looks like a client-server app?" Compared to all that C++ and COM nastiness, it was a piece of cake. I love creating web art (apps, content, mixed-mode) but shit, it's not even work.
So I picked up FP a couple of years ago. Easy to pick up, difficult to master. Made my entire brain explode. What a great ride.
So no, I don't mind the complex work. In fact, I can't tell you how much I really crave that feeling of "Beats the hell out of me how we're going to do this, let's go do it" No feeling in the the world like that. It's like solving a jigsaw puzzle where you cut and color your own pieces, and there's no picture on the box. Fun stuff. Hope to be doing that kind of stuff when I'm 70.
Now funnily enough back in say the 60's/70's and early 80's being old and indeed 50 or over was not a issue for getting a programming job. Then in the late 80's and 90's things changed to the aspect when being old was in many area's deemed against you in some indirect filtering HR way.
Now we are at a time which can and does judge people on the actual work they do in respect of programming. They can see or be shown examples of work and abilities and with that age is irrelavant if they be 13 or 113, its the results they can and have done for which they get the work. In that I would say programming has become alot easier to get your foot in the door of a company and also if your not as good easier to fall thru, nomatter age/gender or colour-spectrum-offset. Heck if a dog could do good code, it would be employed thesedays.
So the real question is down to if you want and are able to program and with that age is irrelavant, the the ability to learn is priceless.
> ageism is a problem
Is it? With 18+ years of experience you would have a great chance of starting your own business. And customers just don't care whether you're 50 years old, or woman, or disabled, or anything - they care just about a product or a work you do.
If it's not wrong at 30, why would it be wrong at 50? Not every programmer sees their individual contributions as a stepping stone to becoming a manager, so why would it be any different with starting a company? I see no reason to begrudge someone for doing what they love, no matter their age.
You're right - sure, one size doesn't fit all. But in my opinion it should be a good reason for someone in his 40s to not protect his future.
First of all, working on your own is a matter of independence, as it just doesn't guaranteed that he wouldn't be fired someday and can find a new decent job at 50+.
So, uh. I'm honestly not sure where I was going with this! The future will be pretty cool.
1. Owner
2. Manager
3. Worker
Most of us start out as (3), and some move on to (2). Entrepreneurs are immediately (1+2+3), which explains why it's so difficult.
When we're young we have a lot of energy and not so much wisdom. 3 is a natural fit. As we get older we gradually have less energy but hopefully more wisdom and experience. I'm 46, and I just can't do the all nighters that I did so often as a young programmer at Apple. So the goal for me has been to gradually move up the scale.
I realized this about 15 years ago after hearing the expression "the men who manage money manage the men who manage men". That expression describes the three types of work.
EDIT: For example, I'd put pg in category 1. So category 1 doesn't necessarily mean managing money.
Never thought of programming as a thing you give up when you get older.
I'm crazy, so I'm not really sure why others do it.
In the past I've done both hardware and software engineering as well as roles in management (manager to C-level) and now that I'm back to writing software almost full-time, I'm enjoying my career more than ever. There's something almost magical about creating something out of nothing; about finding a better way to accomplish a task; about learning a new trick (especially one that you've never seen before). I don't have gray hair (yet - although that may be a foot-race with baldness), but it's also gratifying to teach thirty-some years of programming wisdom to others. And it's not like they don't teach me tricks of their own.
BTW: I'm now 48, so 50 doesn't seem so far off.
Ultimately, it's a matter of what job gives you those three benefits (mastery, autonomy, and purpose as the article points out). Will working at Google after graduation satisfy that point? I'm not sure. Will doing a startup? I can't say as I haven't done one. Will working in some other industry do that?
I struggle to figure out what to do with the next couple of years of my life. So I'm keen to listen to what folks have to say about what they plan to do in the long-term (15-30 years out), as well as the short-to-middle term (6 months, 2 years, 5 years, etc).
So I quit my job just two months ago with no immediate plans, hoping to enter the startup world, or pursue other dreams outside programming. I am as clueless as you are at this point, but one thing I can tell you is that seeking a well-paying job to begin with post-graduation is not all bad. You are young and you have time, and money in the bank helps A LOT when you are in my shoes. Having to worry about your account/juggle part-time jobs/living with your parents is no fun.
On the other hand, I would also like to hear what people ahead of me have to say as well. Should joining a startup be the first thing to do post-graduation? What did you do when you were not quite sure where your purpose was?
Programming is low-impact work. You can only write so many lines of code in a day. The people that are changing the world don't do it by writing code.
Writing is low-impact work. You can only write so many words in a day. The people that are changing the world don't do it by writing words.
But wait a minute... writing well about important things is VERY high-impact work. If you are lamenting that your work is low impact, maybe you should find something other than the latest cat photo sharing enterprise knowledge framework.
Why is Google Maps so good? Because thousands of people work on it. The amount of impact any one coder has on Google Maps is tiny. That's why I don't want to be a coder when I'm 50. I want to solve large problems that require large human efforts. The bandwidth code gives me is simply too little.
Programming gives you an almost infinite leverage.
Now if you attack a problem that doesn't interest you, maybe the problem is not in programming but in the topic you chose.
2. Again with Apple: The folks who decided to define a native code extension system for Hypercard; a simple system that spawned a small industry in custom XCMDs. I say "folks" here, but HC was a really small team, and it was probably just one guy.
There are a couple others that come to mind, but I'm under NDA on them.
Like hell they don't.
Larry & Sergey's last commits are from 2002. And they were hardcore technical guys before starting Google.
A few said they will no doubt still be programming. "Technology is changing so fast, we're the only ones who will be able to stay at the cutting edge, making our positions as developers fairly insulated." said one.
I was also thinking about a career "pivot" in a few years into management. It was really under the auspices of how employers prefer the fresh college face and cheap labour rates as opposed to the seasoned mercenary who has high contract rates.
Today, If i wanted to hire someone, as long as I saw that they are still working with modern languages & libraries, not constantly re-inventing the wheel, I would be extremely interested in their abilities, especially to help architect solutions.
There are people I know who I would hire no matter their age or personal hygiene because they have such an incredible clarity of understanding of computation or software architecture that I am constantly in awe.
I hope that by the time I'm 50, I'm leaning more towards being like that second set of people, regardless of whether it gets me a job or not.
Then follow up was "Yeah really I want to program at 50."
Am I going crazy HN?
That's very well possible but not because of this posting. Here is probably what you remember:
I wrote this post partly because I thought the HN discussion missed the main point of the original post and veered into a discussion of ageism etc (which is fine, but I thought the central theme of James Hague's original post was worth pondering). I even commented on the original HP discussion, where you can see the seed ideas of this post.
I've been thinking about the issue from the time I saw the original post (and discussion on HN).
I often write to clarify my ideas. This post is just me thinking out loud, late at night. Not sure why it was posted on HN.
[1] I didn't submit the post here btw. Honestly, and with no false modesty, I am not sure it is good enough for HN.
If future things suck, if it's mostly glue copy/paste code, large opaque frameworks, no tinkering or puzzles, then I'm out.
But hopefully there will always be a place for the hacker type, even if gets more and more of a niche.
Do you love what you do? Then you will do it your entire life.
Do you hate it? Then hell no. Next question!