Ask HN: Is programming a “young person's game”?

90 points by shetill ↗ HN
I've heard this being said about mathematics and we know that both programming and math are logic based and pretty much require the same thinking techniques and programming is derived from math. So, wouldn't it be true that it's a young man's game for programming too?

You only see top programmers who started as kids and probably won some Olympiads and programming competitions, and this continued in their 20s and maybe kept their skill up till 30s but that's about it. What do they do after that?

I'm 30 and missed my chance to be a kid prodigy in programming or math and clearly not happening now. Is there an area where you can be good at as you get older and what is the old man's game options as a programmer?

150 comments

[ 3.0 ms ] story [ 207 ms ] thread
Errrr. It has nothing to do with age. You can start programming at any age.

What matters is not having youthfully crackling synapses, but motivation, curiosity, hard work. Though a youthful memory certainly would be a help, it’s nothing more than an enhancement to your capabilities. Experience counts for more.

30 is still young to start programming. At 30 you can still spend 30 years programming till retiring at 60.

Full disclosure I’m an “old” guy, but I’m just as passionate, curious, hard working, motivated, technically cutting edge, up to date and interested as I was in 1987.

None of the best programmers in the world are in their 20s.

If you want to be the best in the world it does help to start young.

But if you just want to be really good, you can start any time. In a pursuit like programming there is some benefit to being young, having those 'crackling synapses' which help you think fast.

But there's also some benefit to being old - the longer you work the more you build up a library of solutions in your head. Every time you solve a problem it gets easier to solve it (or a problem like it) again.

Which is the bigger advantage? Hard to say. But programming isn't like basketball. No programmer peaks in his 20s. So maybe that's your answer.

And it isn't chess. A lot of programmers who are good start in their teens or younger may be but it isn't really something you are groomed for, at least I know no one in my personal life who is like that. The fact that passion brings you a lot of the way vs. professional training or just prodigy as a youth (think olympics, gymnastics, basketball, chess, e-sports, etc) means that really you can start any time.

Like others are saying, the only difference where age might matter is life circumstances, it's less about mental faculties (you don't need a quick reaction time to hack unless it's a competition may be) beyond logical reasoning, which people of any age can master.

Great advice as I’m sitting here telling myself an others I have mastered the guitar after almost 30 years and I NEED something new.
> You only see top programmers who started as kids and probably won some Olympiads and programming competitions, and this continued in their 20s and maybe kept their skill up till 30s but that's about it.

Where do you get this idea?

Not my quote but I consider this statement as totally realistic at least in sports.
You want to program, just program. It's hardly necessary to be a prodigy. At 30 you're still in the first quarter of your career.
Software development is different than competitive programming, and while it's true that there's performance degradation with years it's either not meaningful enough for the average software project (or as meaningful as they think), or it's counterbalanced with experience, because there's more to developing software than writing code.

But I'm a career switcher (waiter to software developer) who made the switch when I was 40, meaning I'm obviously against ageism.

Very apt distinction of being a software engineer vs other things. Not everyone has to learn Rust and write a new compiler

One can manage their expectations from programming by aiming to learn to code and only work with high level languages and develop software than do low level coding.

> I'm 30 and missed my chance to be a kid prodigy in programming or math and clearly not happening now.

I don't know about that, have you tried?

--I don't think progressing in mathematics is only for young people, fields medal winners are typically in their late 30s, early 40s. I guess whether or not that is "young" depends on you.-- Nope. See child comment.

Anecdotally, my best experiences have been with older programmers. I worked with a guy in his 60s who had some absolutely incredible personal stories to tell (he hitchhiked from Europe to India in the 70s...) but also a wealth of previous knowledge from his decades in the industry. He'd seen a lot, but still had an attitude to learninng (he was writing node.js, ES2020, all the modern gubbins, promises, maps, etc).

I think it's more to do with you as a person. Are you willing to keep studying and learning for the rest of your career? Even if you're not, there will probably be a slew of jobs that are fine for someone who has already "peaked".

TL;DR: I don't believe so

> don't think progressing in mathematics is only for young people, fields medal winners are typically in their late 30s, early 40s.

Fields medal is for mathematicians under 40 years of age.

You can teach programming
I would give more respect and credit to someone who had built and deployed and entire application on their own compared to programming competitions.
I'm 43 now. I was never a "born hacker". In fact, I only started getting good at coding toward my late 20's. And I began to develop some serious chops by my mid thirties. Of course, the sheer amount of coding I do has gone down -- I do a lot more code reviews and architecture reviews. But during those code reviews, one thing became apparent to me: while younger programmers excel in small, isolated areas of complex code (e.g. some sort of matrix/vector algo), I can run circles around them when it comes to larger code bases, thinking about dependencies when making changes, implications on non-functional requirements (performance, security, fault tolerance) etc.
(comment deleted)
You're conflating three things: when most people start programming, how long they stay productive, and whether it's possible to pick it up later in life.

When most people start programming: most people discover what they're passionate about early in life. That of course gives them a huge bonus, because they usually can spend a lot more free time and are nimble learners at that age. However, learning a skill early can also have draw backs, such as being set in your ways because you were in a "know it all" phase at the time, or learning to do things based on instinct rather than reflection.

How long they stay productive: that probably varies a lot, but I don't think I was as productive in my twenties as I'm now in my fourties. I suspect that people who drop out of programming lose passion for it or discover more important things, rather than lose the knack for it.

Whether it's possible to pick it up later in life: there is such a thing as innate suitability. If you're having a hard time, that could be a factor. Or maybe something just hasn't clicked yet. More likely, it's just not for you. All of these considerations don't matter if you're doing it just for fun, mind you. That being said, unless you really forgot how to learn new stuff, it's totally possible and pick up skills later in life and then excel at them (bodily restrictions may apply).

I would say programming as a skill is mostly driven by a constant dissatisfaction and need for improvement, not necessarily by the age of the programmer.

> What do they do after that?

They get a life. You know, a partner, a different hobby from programming, some kids.

Imagine you are 35, have kids (and care to spend time with them) and you have to train your body or it will break down so you must go to gym even if you don't like it. You have to sleep good or you'll crash.

Compare that when you're 22, no kids, no need to exercise, young energy, can sleep bad, you want to change the world(overworking), programming is also your hobby, etc.

> I'm 30 and missed my chance to be a kid prodigy in programming or math and clearly not happening now.

To be good at math olympiad you have to train for it (a math olympiad professor told me). You can't just be "smart". It's like HackerRank, you just have to study HackerRank to pass HackerRank.

> Is there an area where you can be good at as you get older and what is the old man's game options as a programmer?

You can be good at specializing (example I like backend, dbs/search-engine, performance) or managing.

99% of the tech wizardry stuff is irrelevant to most entrepreneurial opportunities. You don't need the latest stack. You don't need to be an algo expert. You don't need to flex to get the job done.

You can still be clever in the business sense with something simple like CRUD SAAS. Apply your unique insights and life experiences to identify the problems you wish to solve. Finding the right opportunities is more important than solving them with high-falutin solutions.

A simple and elegant solution which serves customer's needs will always have an appeal. Using technical expertise to get that solution in front of the customer's eyes is even more important.

Code is only a tool, a vehicle to take you towards your destination. As programmers we sometimes telescope in on our love of technology. Take a step back and look at the larger picture.

Programming is diverse, so let me explain from my narrow perspective.

I am a JavaScript developer. I am much older than you. It is very much a young persons game, but let me qualify this.

Most people actively programming JavaScript for employment cannot program, at least not to the level considered minimally employable in many lesser popular programming fields. Hiring is structured around this, so much so that employers much make a specific dedicated choice between a risk adverse tool user versus an innovative problem solver focused on product superiority. They will almost certainly choose the former because it’s a safer option. Employers willing to take a risk on developers interested in doing original higher quality work tend to be those that work harder to retain their developers.

So there’s that.

On the other hand I didn’t start programming until I was 28. It didn’t take long to become better than average. Now, a bazillion years later, I can do things now that are vastly superior to what the big companies are putting out. It’s not because I am talented or a child prodigy. It’s because I measure things and make original decisions not based on popularity or some community consensus bullshit.

I like this point-of-view about people who programs to get hired. In one way or another, I seen plenty of people like that. These are people I will absolutely never hire, precisely because I cannot count on them to broaden their horizon and talk about or challenge the direction of projects. Of course, those things shouldn't take away from orderly production of software, but a truly excellent software engineer shows depth in understanding of their craft in practice. It's really good that this, for me, has consistently shown itself in interviews, even with junior developers.
If you want to do anything competitively it's a young people's, and arguably very often a young men's (for reasons that are not fully understood yet), game.

I think that competitive spirit, or arrogance, depending on how old you are, lessens with age. Also, the older you get, the less time you can spend with any competition (try to play some MMOs against teenagers in your thirties). Finally, your body is peaking around 20. You can of course fight that and many top-level athletes compete at a very high level in their forties (think Fernando Alonso), but even these outliers are arguably less capable than ten years ago and have literally decades of experience.

Fortunately, programming as a profession is not a competition.

The age thing is more about our business culture than our tech culture. There is lots of room for older programmers if they can be buffered from short term goals and the switching of those goals every few weeks. In addition those older programmers need more comfort that they won't have the sword of Damocles hanging over their body as their job is constantly threatened (as well as the jobs of their coworkers).

If businesses can settle into a cadence with high psychological safety and multi-year runways, older programmers can do tremendous things for the business (or government/organization) and deliver high quality software and at the same time train up junior engineers.

This whole notion that programming / software engineering is for "youngsters" is utter bs, and comes from the past where computers were seen as toys // people didn't understand them.
I'm currently mentoring two people who started programming as a hobby after 30 and it's going really well.

Programming is about two things: dexterity with tools (editors, operating system, log analysers, code versioning etc) and conceptual thinking (abstraction, planning, problem framing, problem solving). If you are interested in starting with programming, I suggest you pick a topic you care about as a hobby and progressively become more serious about it:

- do you like web design? start a simple home page for a project

- do you like DIY electronics? start with embedded programming

- do you like gaming? start with one of the gaming engines

- do you like phone/tablet apps? start with a low-code platform

Also find someone to mentor you, ideally someone you can talk to in person or over a video chat.

Programming is nothing like Math. And programming competitions are nothing like every day programming.

I think you'll find most programmers become better over time well into their 40s, as making the right architectural/structural decisions easily trumps any minor loss you may experience in "fast thinking".

If you enjoy it and are passionate, it doesn't matter.

I've found programming is one of those disciplines that (often) doesn't feel like work to me .. and for that I'm eternally grateful.

There will always be someone who is 'better' than you.

I started programming in college. I am a very good programmer (one of the best I know). I have not seen claims someone has been programming since childhood as a consistent signal for competence. Like it's usually a sysadmin (no hate) or some semi-technical founder claiming that.
I'm 34 and I just keep improving, coding since 10. The only thing you really need in this field is desire for constant improvement. And I'm not saying for you to study everyday, I'm saying that you should have that goal to every once in a while, could be weekly or even monthly, to look up something new.

Be open also for changes, we went from desktop applications to the web. Learn the technologies involved.

You need people with different backgrounds on the field though, just because I started very early, it doesn't mean that I don't respect or take to high regard somebody that would start coding on their 30s, but the opposite, they are important and valuable to have in a team. Developing software is much more than only programming and much less related to maths or olympic medals lol.

Nowadays there are so many materials and courses that makes getting into programming so easy, I had to go through many phases you just don't have to.

I've spent countless hours configuring servers in a way that nobody does anymore, using programming languages that almost nobody does, text editor configurations nobody use and so on. You'll never need to waste time with that. But once you are working 10+ years in the field, it will be expected from you that you learn new things.

I'm 54 and definitely a better programmer than when I started 40 years ago.

I don't see starting early as being an advantage, its not like golf or whatever. Curiosity will get you further than precociousness.

Don't worry, I started programming at a relatively young age, but there were a lot of concepts I simply didn't get when I was a teenager.

I think the one advantage you have as a "young man" is that you have abundant spare time to hone your skills. If I were to pick up programming now (or any hobby that requires determination), I doubt that I would have the time required to fully immerse myself in it. But I am much older than you and fully occupied with job and family life, so not all hope is lost for you.

In some ways, programming is like learning a musical instrument, but in others it isn't. You don't need to fine-tune your brain synapses for amazing finger coordination. But like with almost everything, the more you practice the better you get.

Finally, I really wouldn't worry so much about whether or not it's a young man's game. If you're curious, programming is probably one of the easiest things to get into: no special gear required other than a computer and an infinite amount of resources for learning available for free online. Plus, you have online communities to find answers to common questions like StackOverflow.

Don't overthink it, just dive in.

Code is not for any specific age. That said, Every persons case is different and everyone ages differently so you should make decisions based on your personal circumstances. Most skill based success I’ve seen has come to people in their 40s or 50s, but that is just personal insight not backed by evidence.