top | item 17800321

Ask HN: Software development after 40, how do you keep the fire?

111 points| m3mpp | 7 years ago

Experience is a nice thing, most of the time. We can see through the BS and concentrate on important things to make up for a slower brain, less stamina and decreasing memory, to a point where I think I am as productive, maybe even more, than I was 20 years ago.

The negative consequence of experience though, in my case, is I'm less excited about new ideas, more skeptic in general, which makes it more difficult to find the motivation that is needed to build something really significant.

And I mean, it's not very surprising, if you haven't made it big at 40+, that means you worked on a lot of failed projects, that makes it harder to believe you can change that.

Maybe some older folks here on HN, but younger people comments welcome too of course, could share their point of view on that question?

100 comments

order
[+] bgribble|7 years ago|reply
I'm 47 and got my first programming job at 19. I still love it and look forward to a good number more years. I have a few guidelines/principles that seem to have worked so far:

* Do meaningful work, whatever that means to you. Maybe it's picking a domain that helps people or society, or maybe it's some other criterion. Ask yourself what meaningful work is to you.

* Be mindful about your craftsmanship and always work to improve it. Try to write solid, expressive, readable code that works, and be critical about your own code. Read other people's code closely and see what you can learn from it. Explore new technologies, not just for "variety" but for what you can learn from what led to their development and how they were implemented.

* Engage in mentorship of younger developers. Mentorship can really do a lot to renew your love of coding. If your employer doesn't have an established mentorship program try to help set one up. If that doesn't work, there are coding bootcamps that will let you work as little as an hour a week mentoring new developers as a consultant.

* Try to be that person within your organization that others want to come to with their thorny technical problems. Listen deeply and respond compassionately.

* Work on side projects. They don't have to change the world or "go somewhere". A side project can remind you why you love programming when the daily becomes a grind.

[+] awinder|7 years ago|reply
If you don't mind me asking -- have you found trouble with staying in programming / development into your 40s? Or do you see trouble staying in programming into the "good number of years" ahead? I'm just curious as someone in their early 30's who feels the "pull" towards management as a career longevity move. But on the flip side, I love "soft/upwards management" and being hands-on way more, and without the massive doses of stress of actually being in management to boot.
[+] growlist|7 years ago|reply
I would add: resist getting sidetracked at all costs. In smaller businesses it's easy to be pushed into work that's contributing nothing to your CV. This is the one thing I would change if I could go back.
[+] itamarst|7 years ago|reply
I'm 38, but started working young, so probably equivalent.

1. These days I care a lot more about what the software is for, what makes it useful. So I don't need to get excited about trendy technology, I get excited about e.g. building a completely new kind of gene sequencing device that will help disease research and diagnosis. (Write about this here: https://codewithoutrules.com/2017/08/07/do-something-useful/)

2. Teaching is great, because it means all those failures weren't for nothing. Someone else can learn from them (I write a weekly newsletter of my mistakes and how to avoid them - https://codewithoutrules.com/softwareclown/), and I can learn from them (https://codewithoutrules.com/2017/10/10/lone-and-level-sands...).

3. At this point you can hopefully get better sense of _why_ project fails, and avoid things that are likely to fail, or try to prevent them from failing. So hopefully % of failures goes down.

[+] m3mpp|7 years ago|reply
1. definitely a great advice, work on something greater than oneself.

For 2 and 3, not so sure, it's so difficult to say, I've seen a lot of shitty things becoming successful, and some real good things never amounting for anything over the years, that I'm real cautious about doing any kind of prevision nowadays... The old "the more I know, the more I realize how ignorant I am" thing.

[+] andrei_says_|7 years ago|reply
Love that you’re sharing your mistakes. Link to archive where I can see some past ones?
[+] dfsegoat|7 years ago|reply
Not 40+ -- but darn close, and recently went through a bit of a "midlife career crisis" - this is what I came away with:

- I need a physical outlet: I practice Jiu Jitsu now 2-3x per week and this has literally re-lit the burners on many aspects of my life, career included. Much more energy and stress tolerance when I thought I would be more exhausted -total opposite.

- Family time is most important at this age: Making sure things are all good at home lets me relax and focus at work. Employer should get this or I am in the wrong place.

- Rest / diet: I recently switched over from eating to whatever was at hand (literally), to eating what was healthy and worth putting in my body.

I feel all of the above have led to my having more energy / stamina to do tough projects and get over the unexpected hiccups.

Also - I started listening to this podcast by a former navy seal Cmdr: If nothing else, it checks you from saying "my life is stressful" when you hear an Army Aviator who spent 6 years in a North Vietnamese prison camp talk about his experience:

http://jockopodcast.com/2017/02/22/63-through-the-valley-my-...

[+] edw519|7 years ago|reply
...to make up for a slower brain, less stamina and decreasing memory...

This is NOT normal and should not be accepted as such.

I'm 63 and have been programming professionally for 40 years. I'm currently working on several projects that are as complex as anything I've ever done. I honestly feel that that I get better every year, build stuff I never imagined a few years ago. I know this is subjective, but I feel like my brain is faster, I have more stamina, and better memory than ever. I still do newspaper jumbles and crossword puzzles without a pencil and plan to continue that way indefinitely.

Unless you're managing a serious medical condition, I suggest you do something differently: eating, exercise, lifestyle, medical care, something.

To you kids out there (under 50), do not despair. The best could be yet to come if you make it that way.

[+] LinuxBender|7 years ago|reply
I agree with this. For me, it was a combination of medical and lifestyle. I have taken a very serious approach at fixing those things and have more energy than ever.
[+] irchans|7 years ago|reply
Wow, at age 53 I am definitely slower. I type more slowly and I remember less. On the other hand, maybe I know a bit more than I did when I was young.
[+] sprucely|7 years ago|reply
Does being a new parent of twins in my mid-forties count as managing a serious medical condition? I don't have anything to back it up, but I feel your situation is more the exception than the rule. I would like to be proven wrong. I keep plugging away at side projects when I get a chance to take a breath. But even then, it seems to take tremendous effort to get into any kind of productive zone.
[+] bitwize|7 years ago|reply
I noticed that about "Weird Al" Yankovic. He's in his late fifties and yet -- even as he works in a field where even long-lived artists peak in their 20s or 30s, his music just gets ever more sophisticated, and funnier.
[+] jcadam|7 years ago|reply
I'm 38, and started programming at 8 years old in BASIC on the Apple ][. If ever I find myself unable to convince anyone to pay me to code, I will still work on my side projects at night while doing something else (for money) during the day.

As far as my "working life", I try to keep myself challenged by seeking out interesting projects. Generally this means changing employers every couple of years, but this gets more difficult the more 'senior' (and expensive) you become. I really would like to settle in at a company that can keep me challenged and growing, but most employers put zero effort into developing and retaining their software engineers (too easy to find new ones, I guess).

For example, my current employer (less than a year) has me doing legacy software maintenance (not the type of work I was promised when hired), which is doing nothing for my career (probably causing active harm) and is boring as hell (no architecture/design/SE work, no challenging CS problems, no leadership responsibility) - it's the kind of work I'd expect to be doing in my 60s when I'm coasting into retirement (assuming I can stand it even then). So I'm interviewing again. I hate interviewing.

[+] return_True|7 years ago|reply
I think you have a lot of questionable assumptions, which leads to your original question.

First, at 50 my brain has not 'slowed down'. Nor has my zeal for new tech, learning or stamina.

Made it big? Not sure what you mean by that, but I've had a very rewarding career (almost 20Y in the same place) that has provided me consistently with challenge and success.

Last thought, I'm part of a team of devs in our early fifties. I feel like with our experience, maturity and honed skills we could wipe the floor with a team in their twenties if we wanted. Might just be us. Just MHO though.

[+] codingdave|7 years ago|reply
> If you haven't made it big at 40+, that means you worked on a lot of failed projects

I disagree. I have always worked for reliable steady paychecks, not equity. I have a decent set of projects under my belt, with some small exits, so while not quite wealthy enough to retire, I'm doing fine.

As far as the question of staying motivated, that does change. I don't care so much about code these days. But I do get motivated when I see younger team members with growing skills. I get motivated by helping the teams succeed. And while I agree that I am far more critical of ideas and projects, that is all the more motivating when I find one that I do believe in. And the aforementioned steady checks over 20+ years let me take time off between projects to find something I can believe in.

In short, if your only measure of success is a big exit, then I can understand the struggle. But there are more meanings of success than that.

[+] fsloth|7 years ago|reply
"If you haven't made it big at 40+, that means you worked on a lot of failed projects, that makes it harder to believe you can change that."

I find it unlikely a programmer, no matter how good, would make it big. There are exceptions, sure, but globally programmer is not a highly paid professional like a surgeon, for example.

I don't think there is nothing wrong with a steady paycheck and doing a job that engages ones mental faculties.

I'm soon 40. I enjoy puzzles, delivering value to demanding end users and getting feedback from my work. It's really nice when a feature you've implemented gets good feedback and customers discuss about it publicly.

So, I suppose in 'boring' tasks I'm motivated by delivering end user value for demanding professionals and the occasional math puzzler or investigating new algorithm or technology is just sugaring on top.

[+] rootusrootus|7 years ago|reply
A lot of people on HN are in SV (or another big tech hub like Seattle), and make 300K+ in total comp. It's a lot more lucrative [in general] to be a developer in the US than it is in most of the rest of the world.
[+] hotsauceror|7 years ago|reply
"If you haven't made it big at 40+..." What, exactly, do you mean by "made it big"? Rock star giving TED talks? Keynote speaker at major industry conferences? Cashed out your fully-vested options for a startup that did well?

I'm 45, I manage a small team of bright, motivated people at a Fortune 500 retailer. Team ranges from late 20s to one of our Oracle DBAs who's in his 60s; most of our colleagues are late 20s-late 30s. It's a good team, at a chill place to work, and we put in a lot of blood, sweat, and tears over the last few years to deal with a lot of the technical debt that was making things like on-call such a miserable experience. Making that experience better has been a huge motivator for me. It helps our team, and it helps our business partners help themselves. One thing about being older is that a lot of younger developers have a different set of skills they consider "table stakes", and they may be overlooking older skillsets that could really help them out, like tuning SQL queries.

The other thing that helps me keep the fire is learning new stuff. For an old-school Enterprise guy like me, things like AWS, DevOps, Docker / K8s, seemed scary. But technologically, they are fascinating, awesome things that are allowing people to do things we couldn't have imagined before. I want to learn about them because maybe we, too, can do awesome tech things, if we got experienced people who at least understand the value proposition of these newer technologies and can make the case for them. It is a very cool time to be in IT. I'm learning C# by writing a crappy 4X Civilization knock-off, I'm going to try setting up a kubernetes lab on my linux box, and I've got O'Reilly and Pluralsight on speed-dial.

[+] collyw|7 years ago|reply
Getting sick of it again.

I enjoy writing software, but the interview process is crap. Its either waste a whole weekend building some mini app, or some random algorithmic questions which are hit or miss whether I get them right or not. Hardly anyone is interested in looking at code that I have already written. So I am maintaining other peoples balls of mud as its what pays moderately well.

[+] dmitripopov|7 years ago|reply
I'm 39, still as excited about new ideas as 20 years ago. Or even more. It's so simple to implement new ideas nowadays, just pick a matching tool/framework and you are good. Back in 1998 you were forced to write a lot of things from scratch long before you get to your idea implementation and it was actually demotivating, at least for me.
[+] collyw|7 years ago|reply
Don't you find that most "new" ideas in tech are actually a rehash of something from 20 years ago at your age?
[+] JeanMarcS|7 years ago|reply
I relate with you. And my opinion is that it’s harder (or seems harder) to take risks when you have your family to provide to. I’m near 47, and to be sure we won’t end all struggling, I’m mainly working for the same clients, doing mostly the same things over and over.

Of course there are some new project here and there, but in the end it’s mostly CRUD and not that interesting.

So to answer your question, I don’t keep the fire, I do my job.

(Sorry if I sounded a bit dramatic. I love my actual life, we all just moved to Ireland after 3.5 years in the Caribbean. I guess my « fire » is more oriented on the personal life that professional one)

[+] jason_slack|7 years ago|reply
I'm 41. I started programming on a C64 when I was about 10 and then started with c++ when I was 14 on an 8088 but quickly convinced my neighbor to give me her 286 she wasn't using in exchange for mowing her lawn for a Summer.

Most of my life has been financial apps for banks and finance companies. Business "process" apps too. I am currently switching from game development (last 5 years) to quant finance. I am doing this by getting EPAT and also returning to school part-time for Economics.

I maintain my focus by thinking about what got me into writing code in the first place. I loved it. When I was about 8 I remember my Saturday mornings being spent typing in BASIC code from "The Gazette" magazine while drinking chocolate milk and eating powdered doughnuts (Spaulding Kruellers!). I would type in, debug my mistakes and eagerly wait for the final result. Then I would try and change the code to my own liking. Save it to a cassette and move on. When we got a floppy drive I was in heaven, side note :-)

So, my advice. If you love what you are doing then that is all that matters. If you can't find a way to pay the bills with it then do it on the side, continue to love it and things will fall into place in the future. Even if I am writing code for a company, I don't write the code for them, I write it for myself, I do my best work for myself. Then I do it again on the next project (Yes, I know it is really their code and not mine...but....)

[+] m3mpp|7 years ago|reply
Just a couple of precisions here, to clarify (even for myself) and maybe bring some more fuel to the discussion.

>make up for a slower brain, less stamina and decreasing memory

It's a fact, physiologically, that our cognitive skills decrease after the late 20s, there's abundance of literature on the subject. Now, getting older, and with experience, I believe we process information more efficiently (less cycle spent on bs), which can bring a net gain and make us more productive in our daily jobs, it's what I tried to explain in the first 2 sentences.

Concerning the "made it big", here's what I mean:

First, a computer + a brain capable of programming it is probably one of the most powerful combination that ever existed in nature. The potential for creation/disruption is immense, and we can see examples every day. Second, as software devs, one of the driving forces, probably the most important one, is creativity, imagining new things or new ways of doing them. So, when you combine those 2 things, the power and imagination, and then you spend most of your life working on some boring business app, from paycheck to paycheck, one can feel a little bit unaccomplished. The "make it big" here means feeling accomplished, having been able to move your art to its full potential. I know it's highly subjective of course, but I also know a lot of us are feeling that way, so it may not be as subjective as it seems.

I hope it clears up a bit.

[+] whatsstolat|7 years ago|reply
That is interesting definition o making it big. I believe you need to be somewhat on the business side of things to make it big that way. There is a surplus of programmers who can write to spec but how many can spot the thing to build that will be disruptive? That's a different skillset.
[+] johnvanommen|7 years ago|reply
As I see it, things balance out:

1) Young programmers are eager to try new things

2) As you get older, you figure out what works. This is good and bad. It's good, because you don't waste time implementing things which won't work. It's bad because you may not be willing to try something new that may be superior.

If I managed a team, I would prefer to have both perspectives.

[+] eksemplar|7 years ago|reply
I don’t think age has anything to do with how open you are to try new things, it’s an age old throve, but it really depends on the person. Most of our IT staff is young, and they are extremely unwilling to try new things out. Mean while most of our developers and project managers are aged 35-55 and they are all open to new things.

I think you need to fit you team with the kind of people you want, in development you want risk-willing people, in operations you want to focus on stability.

I will say that a lot of young people often put more zeal and conviction into it, when they do try new things, but that’s rarely an advantage.

But actually trying new things? That’s not tied to age at all in my experience.

[+] alex_lod|7 years ago|reply
Have you heard of the concept “beginner’s mind?” It’s an attitude that can be developed with practice that helps you see otherwise ordinary things with awe and curiosity. Here’s a bit more about it: https://en.m.wikipedia.org/wiki/Shoshin if you’re curious I can share more references.
[+] banterfoil|7 years ago|reply
I loved this! I don't think there is an English word that succinctly describes this. Thanks for sharing
[+] tinktank|7 years ago|reply
I would love some more references please.
[+] bitwize|7 years ago|reply
Meh. It's all a game to me. Whether you win or lose, you smile and say "gg" to the other players. Because it's more aboutt the fun you have than about "winning".

I've learned to appreciate having boring stuff to do on the job, so that I can keep food and a roof and still have stamina left over for the fun stuff I do at home. Recently I've taken up retroprogramming for Windows 3.1. It's fascinating to rediscover those 16-bit programming paradigms from days of old, and learn things about the platform that I missed on my first go around.

[+] mikestew|7 years ago|reply
And I mean, it's not very surprising, if you haven't made it big at 40+, that means you worked on a lot of failed projects, that makes it harder to believe you can change that.

Here's a harsh fact to put in your smoking pipe: few of us are going to "make it big". Whether it's FU money, founding and selling a successful startup, working on a blockbuster game, speaking at PDC, or writing a book even as remotely popular as Gang of Four or _Mythical Man Month_. Nope, the best the vast majority of us can hope for is to claw our way to VP of Engineering at Company You've Never Heard Of, LLC. Because a lot of making it big is sheer luck (granted, hard work can earn you more Sheer Luck Dollars, but it's still luck.)

So? Failed projects? Not my responsibility, I did my part; not my problem that management can't manage a project. But I still got to do the work, which was fun, and they still paid me. I don't need other people to use what I wrote to validate my existence. The experience can be used for next time.

build something really significant

Yeah, then you look back and realize what "significant" really means. The next Twitter? Facebook? Really? You know what I work on these days? Stuff that talks to programmable logic controllers on assembly lines. And having worked at several startups that were working on something "significant", I think what I'm working on now is more significant than any of it (obviously, because those startups are gone, and this place has been around 30 years). Because it's real stuff that people use everyday to make actual widgets, instead of building something the world is not a whole lot poorer without, that we'll figure out how to monetize later, probably with ads.

In summary, I kept the fire by changing my attitude about what is important in a macro sense as well as to me personally.

[+] emodendroket|7 years ago|reply
Why is it programming alone where we have to have a burning desire to do it, regardless of the pay check? Yeah, programming can be enjoyable, and it's the way I prefer to earn a living. But it's a job all the same and I keep myself happy by enjoying my time away from work doing other things, not by expecting fulfillment from my job. Nobody would find it remarkable to hear that an accountant got into the career because he thought it would be steady and well-paying, rather than because of his love of accountancy.
[+] beat|7 years ago|reply
Not necessarily "keep the fire", but one big piece of advice I'd give anyone here - don't stay at any given company more than five years, tops. Three to five years is a good run for "permanent".

I work in the Twin Cities, the Land of Fortune 500 Headquarters. It's a big enterprise town. What I've seen happen over and over is people become "lifers", working ten years or more in a single company, then they get laid off or fired and have no idea how to function in the current job market. Worse, their value is heavily invested in the institutional knowledge of their former employer, sometimes specialized to the point where it's useless outside of that company. This causes a lot of suffering.

If you move on regularly, you'll keep interest more easily, see a broader cross-section of the industry, and not be so hosed if you find yourself laid off.