Experience counts for a lot.
I don't contribute a whole lot to open source projects (there's the occasional fix for an issue I run into), but that too has nothing to do with age.
It is true that in university, open source is a great way to get involved in something big and build up experience, and you've got a lot more time for it than when you get a life with kids, but plenty of big name open source developers are well over 30. It works best when you can work on it as part of your job.
I'm 52 and have been at it professionally for 27 years. I still think it's the best job for me.
Advice to those without that many years: The temptation to go into management will periodically arise. Advice I got once: "In management, they nip at you from the top and they nip at you from the bottom." Meaning that in programming, you only have to please those above you on the ladder. When you're in management, you have to please those above you AND those below you.
Started at 12yo too... I've written a lot of code, and will continue to add to the pile until they pry my keyboard from my dead, cold fingers!
In a little over 2 weeks I turn 32. I don't see or feel like retiring in 3 years.
When I work on personal projects, I contribute to open-source when I find something to fix in the libraries I am using. But that's just a side effect, not a decision to do extra open-source work in my free time.
Are you afraid that programming skills deteriorate with age for some reason?
I think if you try to be excellent at what you do and improve over time, there is no reason you should have to worry about this until your brain is actually withering away.
> I think if you try to be excellent at what you do and improve over time, there is no reason you should have to worry about this until your brain is actually withering away.
It sounds like a pretty serious problem to me. Everybody knows the meme, so when they're hiring older people they're really going to try to rake them over the coals in the interview to make sure they don't hire one of those 'old people stuck in old technologies; can't code' devs. This makes it much harder for those who can still code to pass technical interviews.
It's more like Civilization, where you spend more time looking at the board and thinking of moves than you do actually entering moves. And the more times you play, the more problems you've encountered, and the more possible moves you see. The Huns are attempting to flank you? Been there, done that. Someone picked up a wonder? You can work around that. Playing against Ghandi? Look out for them nukes.
And if you decide to play co-op Civilization with a newbie, you have the opportunity to help them bypass some of that learning curve, by passing on the things you have learned over your years of play.
The advantage of having seen all of the problems, in business terms? You don't have to spend a lot of time figuring out how to solve them, and you won't make a lot of mistakes while solving them. You can get past these simple problems in no time flat, and move on to the problems you haven't seen before. This makes you fast at 90% of the tasks you face.
The downside of having seen all the problems? You have a solution that you know works for every problem, and might not see the benefit in trying other solutions. When the Huns flank you, you send 50 spearman units to break the flank. But what about 10 artillery units? Or 1 tank?
When you know a solution works, you have to consciously push yourself to try a new solution. For some people that's easy, for others, not so much. But if you really want to remain at the top of your game, you need to make that push.
Programming wise and learning wise i've also grown wiser and know where to have my focus to be able to get better, faster and learn new technologies with my own mental algorithm. Though this most likely has nothing todo with being over 30, but maybe more with the time and experience gained over time. But as you get into the 30s, some people get kids and buy a house and what not. But that will also in time teach you how to manage the time you have available, and you will try to work more efficient and narrow your focus onto your goals and tasks in your everyday programming job or what you're doing, you learn to filter away all the noise and stay focused on the task at hand.
I got a late start in the field (studied physics in college and graduated in to the 2008 recession) and suspect if I'd been just a year or two later I'd have never made it happen.
I'm not really sure what changed. I'm unmarried (though not single), and have no kids, so family is not a consideration for me when it comes to allocating my time. While I certainly have several non-programming hobbies that take up my time, I wouldn't say I have enough such that they'd prohibit OSS contributions.
Perhaps at this point I just treat programming as a professional skill, something that I want to be paid for, and while I certainly make use of a ton of OSS, I feel I "paid that back" in my 20s much more than most OSS users ever do? Possibly.
> How to you manage personal life, work and contributions ?
I don't think this question is any different than a general time management question. Everyone has various priorities in their life, and the level of priority determines how much time you'll devote. If you're a professional programmer with a family and a social life, and believe making OSS contributions is higher on your priority list than doing other things, then you just end up making time for OSS contributions. Having family members who support you helps a lot (since I'd imagine in most cases they won't be directly involved in it).
I think a big component of regret is just wanting to do more things than we physically have time to do. So we prioritize, and some things get dropped. We feel bad about the things that get dropped, because that's human nature, but that's just something we have to learn to be ok with.
Many argue that programming is an art, while I'd say that begin professional is 99% of the job. And usually you get better with being professional with age. You tend to consider more factors, you start to understand the value of homework and managing work-life balance.
In my opinion getting older only grows your experience and in many cases grows you as a better person. Therefore, there really is use for old people in this business :)
As a fellow 30-something y.o. I fully agree. However, I would be remiss not to mention a change of attitude towards tenacity/brute force programming. When I was younger, I could work an 8 hour day, come home, eat and put in 5 to 7 hours more on personal projects I found interesting, especially when I was stumped.
I am now better at managing my time, prioritize taking care of myself (getting enough sleep), and can resist the siren-call of solving challenging problems in one go. Instead, I now chew over the problem with pen and paper if necessary, away from the keyboard and over smaller chunks of time until I have a framework for a solution. I've also stopped updating libraries and dependencies to the latest versions during development, not pinning versions was a rookie mistake.
I actively work with one or two new technologies every year, for real money, adding it up to the current stack of things we maintain. No time for side projects currently due to kids, but my work projects are interesting enough.
It's my 12s anniversary as a professional programmer. Did work on all kinds of projects: a hugely popular online game, a search engine, all kinds of smaller projects. Love programming more than ever.
Couple of noticeable age-related factors:
1. As a proud father I have to be very careful when planning my spare time. For example, I mostly do hobby projects early in the morning now.
2. Got my first serious RSI-related trauma recently. Younger programmers, please, start caring about your hands as early as possible!
How?
Standard laptop keyboards and mice are a crime against one's hands, it's generally better to replace 'em with something ergonomic.
I did boxing as a university sport. That was the worst choice possible: I developed early-stage osteoarthritis.
2. Posture/ergonomics
3. Take frequent breaks while coding.
4. do minimal typing when you are not actively coding.
I'm much happier like this.
I should really re-train in something that companies find useful (mobile, distributed backend computing, data learning, ???). I make ends meet by freelancing and contracting. A few weeks creating a POC here, a few weeks fixing somebody's wordpress install there. It's a living.
Does any of that seem out of line for a 33 year old programmer with 16 years of web development experience and 3 years of video game development experience?
As far as contributing to open source I contribute fixes and minor enhancements to the projects I actually use. I don't go looking for an opportunity to contribute I just use something and notice "that ain't quite right" and look into what the problem is and then contact the author. Sometimes the author requests my proposed fix, other times they don't as they have something else planned.
Anyway I recently turned fifty and I'm still going strong.
I contribute to various small open source projects from time to time. I recently ported an ACL library from PHP to JavaScript:
If that is the case then you just need to grab time as and when you can. You will find you can find half an hour a day at least. The limited time will help you focus. I find I get up early or stay up late to make time for this.
I'm not a professional programmer (although I did start my career as one), but have released various bits of software over the years[1].
- It's harder to find time on any personal projects when you have small kids. Mine's now at Uni, so lots more free time for 'my stuff'. Wasn't so in my 30s though.
- My official job is as a Technical Architect. As such, I'm in front of a PC all day and I always insist on having Visual Studio installed, so I can 'test' stuff. In reality, I'm always working on little coding side projects whenever I need a change of 'brain-work' for an hour or so.
---
[1] The most recent being: https://news.ycombinator.com/item?id=14206309
For me programming is akin to a work of art, so i keep doing various projects for my own fun.
Not sure how one can become "inactive", barring a disabling accident.
I've done a little open source but mostly shy away because I just want to code, not get into meta-arguments over style or whatnot. Not saying every project has that issue specifically, but I don't have time to sift through and find "compatible" communities to contribute to that are also doing projects I find interesting.
Balance is well, esp. as senior it's getting better and better.
Get some nice chunks of free time by contracting and taking chunks of time inbetween, though I guess this could change once kids come into the story.
I also run weekly data analysis workshops with my staff, where I get to teach junior analysts and engineers how to think Bayesian, and how to replace Excel with Pandas.
Having the time of my life at work :)
I am over 30 and I don't contribute to open source projects because I just don't have the time. As you get older there are other responsibilities that you have to take care of that keep you from concentrating on development projects outside of work.
In most professions experience is desired, in fact I'd go so far as to say you only start becoming decent at your profession at that age.
This sort of question really makes me want to rage at anyone who thinks it's unusual or shouldn't be the case!
I'm 35 and a much better programmer than I was at 11.
I'd ask an opposite sort of question: How many 30yo+ senior developers does your company employ? If none, then why not?
Wisdom is in ever shorter supply in technology. Frankly, having people with deep experience on hand is a source of competitive advantage.
I don't see myself stopping anytime soon.
Still going strong.
Really looking forwards to it.
i think if you add child to the equation the code time drop rapidly to zero