Software - like anything worth mastering - requires many thousands of hours. The only reason I can think of that it would be harder to pick up at an older age is that often the hours are harder to come by due to family commitments and so forth.
I went through an intense several year period of studying jazz music beginning around age 16. I remember the discipline it required and the speed at which I was able to progress.
When I got into programming at age 33, it felt exactly the same. The discipline, the hours, the speed of progression; all very similar. Having devoted many thousands of hours to mastering a skill in my teenage years and again in my 30s, I'm not aware of any differences in capacity to improve at one age over the other.
I attended a boot camp and had ~25 classmates all over the age spectrum. Some were smarter than others, some worked harder than others, but there was no age correlation on either of those observations. I also didn't see any age correlated patterns in success in the job market. Some old and young students got jobs immediately; some old and young students had to fight it out a little longer.
If I lose my passion for software at age 40, 50 or 60, I would be very open to pursuing something new at any point in my life.
I think you're absolutely right with this. I've never seen age make a difference on someone's ability to learn programming.
The only thing I think that young people possible have over older ones is the amount of available time. In general, people in their 30's, 40's, etc. have family commitments that someone in their 20's probably does not (not married, no kids etc.). This is probably what gives them a slight edge, but it has nothing to do with age per se.
On the flip side, people who are older are generally more mature also, and realize that if they really want something they have to work for it. Honestly, now that I am almost 40, learning stuff (around programming, math, really anything) is so much easier than it was when I was in my 20's, because I understand the discipline that is required to do it. I'm more efficient at how I spend my time, and I see connections with what I already know making it easier to grasp concepts.
You could try to think of it more as play (maybe 'intense play'). You're not 'learning how to program so I can get a well paying job', you're trying to get that image on the screen and want it to animate and move with keypresses because that would be neat if you could do that.
Or make a simple webpage to show off your recent vacation that has a gallery widget that works exactly the way you envisioned that you made yourself, then show it to your friends and family and let them go "ooh, that's neat!".
Or that one manual, boring process you have to do over and over again for...whatever, that takes so much time and bores you to tears. Why not try to figure out a way to write a small python or bash script to automate it?
Keep doing little things that seem neat, and eventually you'll gain the confidence to tackle big things that seem neat, and eventually you'll be ready to tackle business needs that are a bit less fun but have a much greater effect on people.
I didn't learn how to program by tackling business problems right away. I learned how to program by making tiny text-driven games just for me to play with, then later I got into web development by trying to make my own personal website, then I got into mobile development by trying to get a Flash game of mine onto my phone (in J2ME on the N-Gage! and later Objective-C on an iPhone), etc. Currenty I'm going through a book on Unity and making a guy move around a maze and shoot at boxes. When I program in my off time, I'm playing, not really learning. But as a happy side effect, I'm learning at the same time.
Loss of motivation and drive is quite normal and happens to everybody from time to time. I'm inclined to think that success in life depends to a substantial part in how one manages productively to overcome (or at least manage) lack of motivation.
I suggest to organise your life in a way that you have additional mechanisms to grind through those moments when you loose motivation. Here are some examples. I'm not saying they always work, or they are for everyone. I'm just throwing out some examples in order to communicate a general idea.
- If you want to loose weight, remove food from your house, so you cannot simply snack to quell boredom.
- If you want to learn subject XYZ, join a school/university/course/bootcamp teaching XYZ with a firm schedule, regular homework, exams that you can fail and other students
- If you want to learn subject XYZ, teach it to others (in a generalised sense) in public. The fear of looking like an idiot in front of others is a good motivator.
- Create social obligations with others for doing XYZ, so that the fear of violating those obligation, with the concomitant expected loss in social standing is additional motivation.
- Control frivolous spending by engaging in a contract such a as a mortgage that forces you to save regularly, so as to avoid the substantial disadvantages of defaulting on a mortgage.
- An extreme case is having children, for with children the well-being of what you value most in life now strongly depends on yourself being productive.
What they all have in common is that your desired behaviour XYZ suddenly no longer only depends on your subjective and mercurial moods regarding XYZ, but are now tied together with other goals G1, G2, ... Gn of yours. The probability that you loose interest in all of XYZ, G1, G2, ... Gn at the same time is substantially lower than with just XYZ alone.
In other words, make several of your life goals align and mutually reinforce each other.
Become poor and try finding a job in programming. Seriously, this was the biggest motivation for me to learn what I did. Got me to take it seriously as a means of survival.
^This... The survival factor played an enormous role in my drive to land my first programming job. I was 27 and had recently decided to leave the physics PhD program I was in (I was tired of being in college, burnt out dealing with my advisor, and in general uninterested in my line of research). For additional pressure include a wife, four year old, and baby on the way. I frantically applied to everything I could find and eventually landed a junior developer position. Almost three years later (and at different company) I am very happy that I made the push. My only regret is that I did not start my programming career earlier in life.
That advice, using code as a secret weapon in another profession, is great. But it comes with a huge caveat: it can bite you in the ass. I've automated myself out of my own editorial/publishing jobs twice now.
No regrets though. My mantra is that if you're not striving to automate yourself out of your own job these days, then you're holding something back, and not truly contributing your most valuable work.
If a person demonstrated that he can create software that can do the job of a human at a fraction of the cost, why on earth would a company get rid of that golden goose?
I've had a lot of time to think about that (been unemployed for a couple months now), and have come up with a few reasons.
* All of your reputation within an organization can vanish following the wrong change in management (especially executive management) or organizational structure. A new manager may take for granted all the great things you automated if he/she never saw the prior pain and inefficiency. That new manager may then look at you, see someone who doesn't have a clearly defined role anymore, and fail to understand the long-term value. You can only sell yourself for so long; if you can't pull another magic rabbit out of your ass for the new management, and quickly, then you'll be gone.
* Once you've automated yourself out of your own job, naturally people will notice and you'll start getting invited to work on other problems throughout the organization. In domain professions, which are often occupied by folks who have been doing things the same way for decades, this can be hugely intimidating and even threatening for others. I've been aware of this throughout my work and have always sought participation and consensus from those who might be affected by my work, but some minds are easier to win than others. Combine a few of these bad apples with the above change in management, and poof.
At my first office job I was able to script away a lot of my work. But...it was my first office job and while I had the skill, I didn't know how to sell myself. I didn't know what to study or work on to move forward yet. If I had to do it over, I would have introduced myself directly to more people in that department and learned their stack to get some direction. I would have tried to convince them to make room for non-senior devs.
I did try to move up, but I talked to all the wrong people who couldn't see the value in my skills.
I ended up getting an entry-level programming gig somewhere else.
"No regrets though. My mantra is that if you're not striving to automate yourself out of your own job these days, then you're holding something back, and not truly contributing your most valuable work."
Shouldn't you be, though? Shouldn't your most valuable work be reserved for you?
If that works for you, then I'm envious. But I can't operate like that, as an employee or a human. I prefer to give a 100% earnest effort and fail personally, rather than give less and "safely" watch everything fail around me.
It's an attitude that comes with risk, but not without personal reward. If I'd held back in my publishing career, then I'd still be an editor somewhere, just waiting to get laid off anyway. Instead I'm here on HN. I get to be in the vanguard of what comes next. I have direction and forward momentum in my endeavors. IMO ultimately that's a far more rewarding and valuable place to be, and worth the trouble.
It's not dishonest in my situation and industry. Traditional publishers are failing. It's not a secret. These organizations are largely run by veterans who like the "smell of paper" 1990s way of doing business. "Reserving my most valuable work for myself" would've been sucking up to those people without exception, keeping my jobs, climbing that burning ladder, and continuing to make myself a passive accessory to that overall decline. I made different choices.
"People who can code in the world of technology companies are a dime a dozen and get no respect. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines."
Damn, that's some truth. What I've learned in the last few years is that I take a lot for granted because I've been working in this field since the early 90s. There are tons of businesses that would benefit from someone who knows how to use Excel really well.
1. Don't force it. You can spend time grinding through something, and it's never going to be as good as if you do when you hit it fresh. You need to rest and take time away from things, then the time you spend working on it will be more productive.
2. You have to take care of yourself. Regulating your caffeine, alcohol, sugar, etc. intake is important. You don't have to hit the gym 2 hours a day, but taking a short walk or something else, really helps. If you are always tired/sick you are never going to be at your best, and you'll eventually waste more time than you are actually being productive.
3. Understand what motivates you. You can't get into something for the wrong reasons. I program, because I like programming. If you start something, because it's a means to an end (like I want to program, so I can make a lot of money), ultimately, you aren't going to do well.
I'd recommend that you make the time to hit the gym at least three times a week and lift (it really only takes 45 minutes per session). The goal is not to get ripped; it's to get healthy and balanced. Beyond the physical improvements, it makes a huge difference in confidence, motivation, and concentration. We're still physical beings after all.
I know for myself it really changed how I felt when I made the move to barbell training. Heavy compound lifts require a sort of zen-like focus that really clears my mind and re-centers me. I can't tell you the number of times I've walked out of the gym with my mood having done a complete 180 from when I walked in.
You have to figure out your why. It also helps if you have something to remind you of your why every day like a picture or saying. Then it become a mantra. I started learning to program at 25. In my earlier years I wasn't very motivated but then I was faced with my mortality and that can be a pretty great motivator. You only live once so why not try to make the most out of every day.
I experienced a similar bump when transitioning from high school to university and then right before my bachelor's degree.
I was looking for something. Had no idea what it was. Everyone else seemed to be doing fine. It was very frustrating and demotivational.
I cleared the first bump by meeting a great group that accepted me and challenged my wit every waking minute with them. It helped me turn my brain on not only for school, but I also started working.
Even though I still had no sense of direction and constantly training my brain on the world around brought about a period of numbness and depression, I was very focused on any task I either had to do or wanted to learn.
The second bump was university where I was already working/studying 50/50. Had to choose work or school and I chose both. It worked out.
Put aside the fact it was the wrong masters or even the wrong university, I pulled it off just to prove a point to myself.
I've started aiming very high in math, optimization, complexity. I was bad at all of them, but my reasoning behind that was "master this and you will be beyond fabulous".
Studying on my own helped a ton. The books that don't make sense in course start making sense, because there is no one else but you to interpret them.
Now at 33 I am finally getting constant influx of challenges and new problems to play with. And I am ready, because I chose not to shut my brain off earlier.
I may not be the "happy" type, but as long as I can use my mind and get constantly challenged, I don't feel the desperation I used to.
One last thing. I had abysmally low self-esteem. I still struggle, because I have a lot of more intelligent and/or accomplished people around me.
Though that's better than the other way around, because it keeps you on your toes and eventually you can learn how not to underestimate and degrade yourself. I learned that I cannot compare to everyone, but I can try to get as close as possible by working hard.
Advice to my past self:
1 constantly think about everything
2 try to get to the bottom of it
3 study on your own
4 if your spec sucks, switch masters early
5 try lots of different courses
6 aim higher, even if you cannot make it
7 be skeptical, but learn to assess your value better
8 don't think small, e. g. only in terms of your country
I'll confess that didn't watch this entire interview, but what I did hear can be summed up in this quote(@ 3:45): You only feel motivated to do the things that are easy.
And for me that describes a difference in how I feel about software development than I did about practicing law or any of the other career paths I tried. In software, I found something that I enjoy even when it's difficult.
What I do with that information, I don't really know. On the one hand, I feel like I hit the jackpot. I get paid to make stuff on computers work. I did this before for free, but now I get to do it using better tools where the possibilities are incredibly vast and the money is pretty good.
I don't really know what to say to people who haven't found what they're looking for yet. I went through three careers before I found one I really enjoyed, but I don't know that I should recommend that path, right? There's an interesting Freakonomics podcast episode about minor baseball players who, by every conceivable metric, should give up on their dreams. http://freakonomics.com/podcast/new-freakonomics-radio-podca... But that's a really hard thing to say to someone.
At the end of the day, I agree with your point that you don't need motivation, but geez, if you find it, it sure is pretty great. The question is, what are we willing to give up in order to find it? It's not an easy question.
You are spot on with this; after learning a second language (Arabic) in my 20's and a third (Hebrew) in my 40's though I do find it "easier" in the sense that I know how to learn a hard language a little better than at the first. Same with programming. I learned Fortran in my teens and then Java in my late 30's and of course there is much more to Java than Fortran but the background helped me learn Java much faster than if I started cold. They key though is desire, time and focus - if you can not get those things you will not be able to learn anything that takes a long time to master.
Chad Fowler, author of The Passionate Programmer/former Living Social CTO, was a pro jazz musician who transitioned to programming. He drew quite a few parallels between the two fields regarding deliberate practice as a path to mastery.
At least with piano playing and probably playing other instruments, the assumption is that since your hands are still growing and developing when you are a kid, they are formable and practice has a better effect than when they are mature. Maybe the same holds for the brain?
Luckily software is closer to being a skill based environment rather than a credential or seniority based one (though our hiring practices have at times been heavily credential based...)
That's great that this is getting upvoted at HN. I started studying software development last November, at the age of 37. A few times, in my own and other people's posts stating that we are learning to code, there was more negativity in the comments than I would expect from HN.
It is always a mix of: "quit now, it take lots of years to become a developer worth of its name", "don't do it, software development is not the glamorous job you think, it's awful" and "give it up, you just won't be hired for a good job that easily".
An impression I often have is that there are developers who have some kind of resentment reaction to the "everyone can/should learn to code". Like new kids sneaking in your own private club. Outsiders trying to be like you. There is only one type of developer: that kid that started to code when he was 12. All others are impostors and wannabes.
I'm glad that there is this support sentiment for stories like this as well.
It does take a number of years to get enough skill to make great money at it.
However, if you have an aptitude for it, you can get a low-paying job (still way more than minimum wage) pretty quickly, so I think it's an investment that pays off rather quickly.
If you don't have an aptitude for it, well... I dunno that it would ever work out no matter what, so I guess there's not much point in talking about that?
But like most things, you have no idea if you have an aptitude for it before you try it.
I do recommend that everyone learn to code. I also recommend that they learn to draw, play music, manage people, and many other skills. It'll make you well-rounded and give you a chance to find out what you really like and excel at, and I've found that most skills are useful in ways that you didn't expect, and you'll use them forever.
I've had many job titles (and only once was formally titled as a "software engineer") but I keep on doing SW development in some form no matter what job I have. There are many people that are like me who carve out a niche for themselves doing what you software folks would call "domain work" but we manage to also fold-in the creation of software, systems integration, and other stuff that blurs boundaries. My job always ends up being radically different from my job description.
I think that for older folks (like me) this is an excellent way to get into software development: leverage your domain expertise with ever-increasing programming and automation. That way you get a chance to learn on the job doing real things and you DON'T have to "start over" and compete with 20-somethings. Unfortunately, however, this path leads to "lone-wolf" roles where you don't have organic interaction with others doing the same things. I always feel like an outsider when talking to "actual" software engineers and have to spend a lot effort to gain their trust and adapt to their jargon.
Like you, I do believe there's a binary distribution for programming aptitude. People either get it and love it or they don't and are indifferent/hate it. Their major in college has almost nothing to do with programming aptitude, so its not surprising that one can "live" an entirely different career path but discover software development in mid/late career.
Many are too easy to give up on things on the excuse that they're not talented or have "aptitude", be it programming or playing an instrument etc. Most complicated skills require a lot to develop, and the ones with patience and persistence often do better than those with just more talent.
Totally agree. People tend to confuse the issues of aptitude or ability with the results of dedication and practice.
I learned how to play pool and my skill level increased very rapidly. People thought I was just "a natural," when in fact I just deliberately practiced (not just played) a couple of thousand hours in a relatively short time period (a year or so).
That's asuming all other skills you have acquired so far in your life has no synergy with your new programming skills! Hardly common for someone starting out at 30+.
I'm not sure why you say that? I didn't assume that at all. But if you're not good at programming, it won't matter how good you are at something else if you're trying to get a programming job.
If you're even a little good at programming, practically anything else will synergize with it. My favorite Junior Programmer got hired because she claimed "good business sense" during the interview, along with some programming skill she had picked up in her personal time. She's a really good programmer now, and fits in great with a team because of that business sense.
One of the reasons why it can take years is because the intellectual development required to succeed needs a certain level of emotional maturity, something that the younger people does not have, shown in the negativity in the comments and their lack of quality.
On the other hand, in theory, an older person has that emotional maturity that yields the intellectual development. So something that might take years for a young guy to learn, it can take weeks for an older guy to understand.
When creating software, professional development shows in the ability to tackle more and more complex problems. Learning the latest framework is secondary to that. And that concept is scary for some people, just look at the type of questions that some post in quora about the topic.
Bottom line, don't worry about your age, sometimes older is better. Don't worry about people negativity, in Spanish, there is a saying: let the dogs bark, it means we are walking.
On one hand, it is supposed to take years. On the other, you are not supposed to be able to get a job if you are not junior just out of school.
A lot of it is much easier then people make it out to be and quite a lot seniors know much less then they pretend to know. At least, that is my long term observation. A lot of the "it is too difficult you aint got no chance" is just habitual posturing - if it is difficult then I look smarter.
Whether job is awful or not depends a lot on where exactly you work. The worst parts of the job are related to internal politics - whether between development team itself or between development and management or even development team and customer. It is bad when team believe you are lazy unless you work 80 hours a week and dont even try to organize things so that the work would be possible within normal working time (e.g. late meetings, expectation of instant mail answer etc). It is bad when developers fight over who is going to be the lead. It is bad when another developer insist on having everything his way and micromanages or badmount people behind backs. It is bad when there is a mess (e.g. no common standards) and no leadership.
None of that is something that you could not encounter in any other profession. It tend to be somewhat bad in agile teams, since those do not have clear responsibilities to team members (leading to either constant power struggle or strongly enforced conformity). However, as a new kid on the block, you wont have opinions all that much anyway, so you should be fine.
>>The worst parts of the job are related to internal politics
This is such a frequent comment on HN that it makes me think I really ought to pursue coding as a career to take me into retirement. I've always been very good at office politics and that skill has generally benefited me. Most people are really terrible at using office politics for their long-term benefit, and I have noticed that technical people tend to be especially bad at it.
In addition to having good knowledge and experience in a few other domains (insurance, finance, customer service), I've had management experience in all of them. <s> Maybe I could become a manager who makes great money by creating unreasonable, uninformed demands and impeding real progress. </s>
I completed a Udacity course in Python a few years ago but haven't had time to use it since then. It has seemed that maybe I missed the window because of age, but maybe I haven't.
Politics is the worst part of the job, not the only part of the job. The job has also good parts and boring parts and meh parts.
With your experience, you might be fine business analyst on customers projects. Talking with customers, dealing with their politics and then turning all that into consistent set of requirements. That last part is something you would have to learn.
I also think there's an inherent bias to complains about "internal politics" in a software job. For the most part, the people complaining about that have only ever worked in software jobs.
If you mechanically translate "internal politics are a bad part of software jobs" to "internal politics are a bad part of all jobs with more than 2 people", it mostly goes away (IMO). It's possible that software engineers are slightly worse at or less tolerant of politics, but I don't see a particular excess of politics in software vs other fields. (We are a multi-discipline company, sales, marketing, manufacturing, R&D, software, call centers, supply chain, etc. All of them have more than 2 people and therefore all of them have some amount of politics.)
I partly agree, but the lack of autonomy and no ability to do independent decisions/responsibility you have in agile teams (unless you constantly fight for it) makes politics much worst compare to the jobs where you have clear role/responsibility in the team.
The again, it is still much better then middle management in big corporation or something similar.
Yes, middle management in big corporations often has very complex politics. I rather enjoy getting things done in spite of that, and manipulating the politics in favor of advancing an agenda that will benefit the organization. It wears me out, which is why I usually leave after about five years for a new playing field. (I have never had an interest in advancing to the executive level, where the politics are not at all to my taste.)
>>With your experience, you might be fine business analyst on customers projects. Talking with customers, dealing with their politics and then turning all that into consistent set of requirements. That last part is something you would have to learn.
This is a great suggestion, and I have had similar thoughts in the past. What would be the best way to go about learning how to create a consistent set of requirements? Actually work on a few software projects writing code, or something different?
The problem is not so much the politics imo, it's the 'amount' of politics. Its normal to spend 80% of your time schmoozing with coworkers and 20% of your time coding in my experience.
It's a weird field.
All those arguments have elements of truth in them.
You probably won't be a development job with a large amount of responsibility any time soon as you build up your skills. You will be fairly junior for quite a few years, and you will have to actively have to develop yourself to move on to be better jobs.
Software development has been glamorized by the media, yet the vast majority of programming jobs are pretty boring crud business applications. About as interesting as book keeping or filing invoices.
If you accept those things, and still feel interested then yeah sure become a developer.
It's not about stopping people becoming developers, its about giving realistic views of development so they aren't disappointed when they switch.
Being a junior developer is at least as much fun as being a senior developer, I think. Whereas the senior developer often has more latitude to do what they want, for the junior developer everything is new and exciting. It also usually takes a few years before you get into the politics side of the job (which can be surprisingly frustrating).
Just a few things I would like an aspiring developer (of any age) to know before they really commit to the job:
- It's all about the details. Huge amounts of details. Every non-programmer around you will wonder what the big fuss is, but you have to deal with things that nobody else ever thinks about. Often you can take criticism for appearing to over think things, even when you know that you've barely thought out half of what you need. If you get it wrong, everybody will similarly criticise you (because hindsight is 20/20).
- You need to be able to concentrate deeply every day. Most other common jobs require nowhere near the level of sustained concentration that programming does. Especially as you get older, you need to treat your body well so that you are able to perform at work. I've seen quite a few people wreck themselves in their off time and end up without a job. On the other hand, non-programmers at work have no idea how hard you have to think all day and won't be able to relate.
- Nobody outside your industry will understand what you do at work. A few things you do (like I made a web page) will be things that other people can see and relate to, but the vast majority will not be. Sometimes you will go years doing things that are very important behind the scenes but that no end user will ever understand.
- The job attracts people who are slightly obsessive, highly intelligent, and are OK if other people don't relate to them. Not everybody is like that, but because you have to be OK dealing with mountains of details without making mistakes, you have to concentrate all day, and nobody understands what you do... well it comes with the territory. Frequently the cultural norms on teams with these kinds of people is quite different than those in other jobs. Not worse (and from the point of view of many, like myself, decidedly better), but it's different and I've seen people react badly to it. I see this changing as programming is getting more mainstream, but the old ways still persist.
- There are very few objective measures for success. It's easy to deceive yourself into thinking you are great. It's easy for others to push you down so that you feel like crap. It's easy for people to fail dramatically and have it celebrated as a success by management. It's easy for people to succeed triumphantly and to seen as failures by management. It's doubly easy for management to simply always assign tasks that are impossible to accomplish.
The reason to be a programmer is because you want to program. It doesn't matter what age. It doesn't matter how good you are. It doesn't matter how much you get paid. But it's a difficult job and people should know that coming in.
That's such a joke. Anyone with the time can learn what they need to know in under a year and so long as they have the interviewing skills and a portfolio showing they can do it, they can easily get a salaried position somewhere.
Will it be at google? Probably not. But who cares? You'll still be making good money doing something interesting. That's more than a lot of people can hope for.
Ignore the naysayers. A good friend of mine that I met in undergrad was in his 30s. He had quit a job managing a grocery store and went to school for CS. We have worked together off and on throughout the years, and he was always a very solid engineer (I'd work with him again). He's director of engineering at a decent sized company now.
I think the key for an older person is to embrace the skills they have, and apply them to software.
Finally, I'm of the camp that anyone can become passable at most anything if they have the drive. Software is no exception. Becoming great at something is a different story because it requires many variables to line up perfectly.
that's commendable, especially since a grocery manager can make a very good living in an affluent area (it is a pretty demanding management position after all, with P&L, scheduling, logistics, distributor and vendor, payroll, 'up-management', probably even real estate related responsibilities). i'm sure it was pretty good experience for his current job.
> An impression I often have is that there are developers who have some kind of resentment reaction to the "everyone can/should learn to code".
Absolutely. The benefits developers enjoy in the workplace (decent pay, ease of finding work, etc.) are directly a result of relatively few having the necessary ability to do the job. More people with ability means more competition, which starts to erode those benefits. These are benefits that anyone is keen to lose. The "everyone should learn to code" movement pushed by the big tech firms squarely targeted at reducing their labour costs, and there is concern that it will actually succeed once it has had enough time to come to fruition. The reaction you have experienced seems quite expected, but not for the reasons you were thinking.
I would even suggest that it is basic human nature to try and mitigate the competition, and not just within the workplace (romantic relationships being another example).
>That's great that this is getting upvoted at HN. I started studying software development last November, at the age of 37. A few times, in my own and other people's posts stating that we are learning to code, there was more negativity in the comments than I would expect from HN.
Ignore the naysayers.
I started to teach myself programming around my 35th birthday. About a year and half later, at the age of 36.5 years, I got my first professional programming position. It was nothing sexy. It was doing maintenance programming on LOB applications in a corporate IT shop. But it got my foot in the door. And I kept on teaching myself, absorbing as much I could about every technology I encountered. My career has been on an upward trajectory ever since.
This is a dumb question, but what stack do you use as a "software developer"? I'm a front-end developer who works heavily on javascript web apps, but I have a hard time describing myself as a "software developer".
Why do you have a hard time with it? Front-end code is definitely software; you're definitely developing it, ergo...
If you call yourself a software developer and list javascript and a couple of front-end-y frameworks/packages, no one will blink and accuse you of lying or not being a "real" developer. You are. Don't fall prey to imposter syndrome.
I basically studying javascript to become a front-end developer :) (also some NodeJS and Sequelize/SQLite to be able to create functional projects)
I just assumed it is the right name for the profession when there is no need to enter the details of what stack and specific function I want to specialize. No idea it was "charged" somehow.
Not to rain on anyone's parade, but it would also be useful (probably more useful) to see stories of older people who have tried and failed to become developers.
It's nice to see the success stories but I'm always wary of survivorship bias. If there are ten people who couldn't make a go of it for every one of these stories, it puts a different view on things.
(I say this as a 37 year old freelance writer currently learning Elixir and React in the hope of shifting careers.)
Same probably goes for younger people as well, though. The difference being that most people pick the career paths they stay on in their 20's. I've seen many drop out of computer science curriculums and gone to become a carpenter or whatever. Promoting the possibility for change later in life is a wonderful thing and societies should encourage and make that possible. Nobody should feel trapped in their past, but obviously they still need to put in the work.
Edit: Not to mention the amount of people who apply to universities and never get accepted. There's plenty of room for failure and pessimism if someone wants to take that angle, and someone is always left out of something, no matter how hard they work. That's also why society should enable an equal springboard for everyone. I want the best and brightest to become the doctors and scientists of the future. Not the ones who had the most leisure time in their hands to be able to study and get accepted to programs.
I think it doesn't really matter. Programming is not a physical impossibility for a vast majority of people. Like I could train for years and never be able to bench press 400lb because of genetic limitation but learning to program doesn't have that limitation. Learning to program like most skills just takes time, effort and dedication. I think if you fail at it either you weren't as interested as you thought or you may have been trying to learn a language that just didn't vibe with you.
Programming also seems like the only profession people just assume they can pick up in a year. No one wakes up and says I'm going to quit my job and become a doctor, or a professor, or lawyer in 3 months to a year. If they are making that type of career switch they go in with the expectation that they will have a lot to learn and it is going to take more than a year of concerted effort. Not everyone is going to become a software engineer at google or apple but there are plenty of well paying programming jobs.
Sorry for the long post I just get frustrated when people want to look at others failures as a gage for their own capabilities. Believe in yourself and put in the work, the results will come.
“He who who says he can and he who says he can't are both usually right” – Confucius
I see your point, but I think you may have missed mine. Let's say there are ten successful older programmers interviewed. Seven of them went to coding basecamps, two of them went back to school, and one of them was entirely self-taught. I, as someone who wants to be a developer concludes that going to a coding boot camp is the best way to become a developer later in life.
The problem is that there might be 1000 people who attended boot camps and went on to work in McDonalds for every one who got a developer job — 0.1 percent became developers. But maybe only ten of the self-taught people work in McDonalds for every one who got a programming job. It would be smarter to self-learn in that situation.
But, if all you ever see are the successes, you have no way to decide which is the best course of action.
I don't think that's true at all. I suspect many people don't have the obsessiveness, attention-to-detail, memory, and perseverance that a programmer needs to fix a hard bug. And not many people would enjoy a job that requires sitting motionless in front of a computer for long hours. (I love it, though!)
It's not my first exactly. I'm pretty handy with Python, and I've played around with various other languages. I chose Elixir because the functional paradigm gels better with how I think than OO languages. Elixir, with Phoenix, alongside React and React Native seem like a good fit for what I want to do: build sustainable small-scale web apps. Pinboard is a motivating factor for the sort of business I'd like to build.
I too have learned Elixir and am interested in these sort of small scale Internet businesses. If you want to chat about ideas and do a regular office hours style meeting that would be cool. My theory is that just doing the office hours each week will focus minds and help us to clarify the most important things we should be working on.
I decided to learn programming at 38, started at 39, and now at 41 I am in the process of releasing a commercial version of software I created.
I moved into this field from medicine, to have greater control over my life, scratch my entrepreneurial itch and broaden my horizons. I have no regrets.
You can do it if you really want to, and at any age.
Simple accounting software for (very)small businesses.They dominate the landscape in my country. It is implemented as SAAS. I will introduce it on Show HN soon.
I also plan on starting a news site for Business, Finance and Policy (think a limited sort of 'Bloomberg' for Nigeria and eventually West Africa.) All the local business sites I know suck.
I wouldn't mind helping out with a news site :) Im also taking a trip to Togo this summer , so could be a good way for me to learn more about what's happening in the region
I started learning Swift in my fifties and by god am having a blast. Already finished an iPad app for my daughter and there is no better gratification than seeing her playing and learning with it.
I started later in life, after being a stay at home mom for 10 plus years. I went back to regular school and now I'm working as a Software Engineer. I need to look up more concepts and ask more questions but I'm getting there. It's a long road but one worth walking.
I've been a programmer for 27 years, and I still look things up constantly. Not just API details. Everything. If I was mainly doing things I can do off the top of my head, I would suspect I wasn't doing as much as I could be.
> I need to look up more concepts and ask more questions....
More compared to who else? And who is keeping count? I have found that the most important questions you can ever ask are "why/why not?". You can never go wrong with that pair.
Exactly. If you've found some success and a knack for it, that's really what matters especially if you can find job opportunities. Code speaks for itself, regardless of age and other factors. I've seen a lot of unexpected people demographic-wise succeed. It's totally possible.
Kudos to these people. A lot of the time when I hear people ask "Is it too late to do x" it sounds like they are asking for an excuse to not try.
I know for certain older workers will face subtle and not so subtle discrimination which makes it incredibly unfortunate that companies don't focus on it more in their workforce diversity initiatives. Is this a problem companies are less willing to confront? Compared to say, gender and race diversity?
I think it's more a question of career feasibility. Learning to dev takes years of making and learning from mistakes.
You have to be able to give up whatever job and lifestyle you currently have and take up a junior position for a few years which some people just can't afford to do, what with kids and bills and whatnot.
The real question is probably 'how long before I can achieve a decent salary if I start from scratch?'
Don't most junior devs make a large enough salary to compete with mid-career wages for other professional roles? (I haven't seen this year's offers, but I'm pretty sure we're right at $100K for new college hires in the Boston market.)
That's about 1.5x the median household income here.
If that is the factor that keeps someone from switching careers, I think they have more of a lifestyle problem than an income problem.
To me, the issue is how to replace the "years of experience and learning from mistakes" (even structured college course and internships are incredibly valuable experience and that's going to hard to layer on top of a full time career before the transition). Contributing to open source projects is one obvious way, but doing that on a large scale is time-consuming as well, especially layered on top of another professional career outside of software.
This is no worse than if I wanted to transition into aerospace engineering, or automotive, or oil and gas. It's very much more possible than transitions into those fields, but it's still going to be a long row to hoe.
Not only that, but tech seems to be one of those weird fields where the fresh junior hire makes about as much money as (or more than) the person with 20 or 40 years experience. If anything, switching IN to tech is probably a good short-term decision financially, but staying in it is of dubious value.
I got out of software engineering after about 10 years, in large part because of the compensation ceiling, thinking project management or product management would have a better career trajectory, and boy was I wrong. The ceiling is present throughout tech unless you're a senior or C-level exec.
I have a software team of around 100 people. I approve the comp planning for the org and I don't see what you describe in the dataset that I have in front of me. (I know that's only an N or 1 [or 100].)
Our squad leads make more than junior engineers. Our senior engineers make more than junior engineers. It's not a factor of 3 like in some other industries, but it's also on a much higher initial base.
If "making 3x more than the new college hire" is your primary goal, software engineering might not be for you.
If "making a crapload of money at a job that's so good I'd do it for free anyway, and having little to worry about financial security" is your primary goal, software engineering is gig that's tough to beat, IMO.
20 or 40 years of experience? I'll pay those two people the exact same (on average). Tech changes quickly enough that general software experience matters, but no one has 40 years of experience in .Net, JVM, or Javascript. I think that general software experience plateaus around 15 years or so, so I don't see much of a reason to think the employee with 20 or 40 years of experience is in any way more valuable than the employee with 15 years of experience. If they aren't any more valuable, they haven't earned the right to any greater comp, IMO. They drift upwards with inflation and the general market, just like everyone else.
Wow, thanks for your honesty and sharing your team's numbers. They match up with my "gut feeling" about what happens with tech industry compensation: Steep ramp up from zero to ~5 years, much less so for the next 10, then pretty much plateau. I wonder if the way we [don't] reward experience in the software industry contributes to the "shortage of engineers" perception that keeps coming up in related discussions.
> I wonder if the way we [don't] reward experience in the software industry contributes to the "shortage of engineers" perception that keeps coming up in related discussions.
Probably not. As an industry, we simply don't have many people who have 20-40
years of experience, because 20-40 years ago the field wasn't that big.
We're yet to learn how to put a proper price on experience once we have enough
experienced programmers for everybody to see how much better than the
youngsters crowd they are (or are not) and when the job market starts to
demand them (if this ever happens).
Realistically though, nobody over 40 will be offered a six-digit junior role. Those salaries are on the table on the expectation of gruesome job devotion, something most people with families cannot guarantee.
Ageism in this field is massive, which is why at 38 I'd rather start (yet) another company than get a junior dev role.
is a 40 year old just learning programming really competing with fresh stanford grads for jobs at Google etc?
because i think those are programs specifically for fresh grads - and 35+ year olds not fresh out of a bachelors program are not eligible for those hiring programs?
honestly asking
It's true that our "PR1" (entry level professional) hires mostly come from our campus program, but that's an artifact of where and how we source, not that we wouldn't consider hiring a PR1 SWE from outside of campus. (Why would I possibly care whether we sourced someone at a career fair or from a response to a careers site posting?)
I do admit that I looked on our careers site for all SWE openings and we have no posted entry level roles. I'll ask the TA folks if we ever post PR1/SWE1 roles on the careers site, or if we get them exclusively from campus talent programs. (You have me genuinely curious now.)
Edit: checked with my talent acquisition head and she reports that we do sometimes post and hire PR1s from the careers site.
The question may be the same, but it's answers that count.
If you're talented and/or motivated enough, you can get from zero to a decent salary in software in a year. Decent developers are rare, hiring practices are mostly wrong, the need for developers is sky high and grows.
You may have some trouble getting your first position - lack of degree and experience can be limiting - but that's expected, I think. However, once you get your foot in the door you just need to work there for three to six months and suddenly you'll become hireable by almost anyone. After another half a year you can start getting picky about your offers.
I'm not aware of any other industry where you can get good results this quickly (although I'd be thrilled to know if there is one, as I'm starting to feel a bit burnt out) while - on the other hand - in many industries, people work for years on end without a raise, being constantly threatened by lay-offs and so on.
I think software devs are playing the game of life in the "easy" (or even debug) mode and that it's going to stay that way until around general-purpose AI. The only thing I fear is that I won't be retired before that happens, but that's still (I hope!) a bit far off in the future.
Sure, in software you can go from zero to decent quickly, but you're going to be staying at "decent" forever. Your salary after 3-5 years or so is not going to change and it might even go down in real terms.
Adjusted for inflation and cost of living my salary probably peaked around 10 years ago.
Good point, worth taking into consideration. Depending on where you live and where you come from it may still be a very good deal, but it is a downside. I wouldn't be even considering an idea of going into management if not for this reason.
Still, I'm not aware of any other field where the barrier to entry is this low while average salaries are this high and where there's a higher cap on what you can earn. Are you?
There seems to be a much smaller spread between junior and senior positions in development than there is in other fields. My shift over from previous career to a junior level position in development has not been a hardship, and it will be on par within a year.
I've dabbled with programming off and on since the 80s, but never really did anything work related until I was 38. I got transferred from the NOC to a sys admin position just as everything here became devops all the time. Really focused on learning python, aws and Jenkins. Now 41 and I just got promoted to being a senior software engineer at a very large tech company.
I actually credit hacker news for a lot of it because repeating what I read here makes me seem a lot smarter than I am, I think.
I honestly don't think it matters. You're going to hit a salary ceiling at about the 8-10 year mark no matter when you start. So unless you're already at or near retirement age, it's not too late :)
I'm 36, started programming at about age 6 or 7 (thanks largely to my mother being a programmer and helping me learn the basics), and still spend a lot of my free time on personal projects. I actually didn't start programming for a living until age 26 (did a stint in the Army right after college).
I haven't had a significant raise in the last 4 years. In fact, I made a higher salary (albeit in a higher COL area) 5 years ago. Early in my career I was getting 20%+ pay bumps just for switching jobs. That doesn't happen anymore. More often than not I have to make my salary expectations clear from the first conversation with a potential employer lest I waste a lot my time only to receive an offer 30% lower than my current salary.
It's the point I'm thinking of leaving the field (I'll never stop programming in my free time, though) and finding something else with some actual upward mobility.
Is making more every year that important? At some point, you reach an asymptote where you're not particularly more valuable than the prior year and then your pay goes up with inflation rather than the 10+% per year that it was going up early in your career (when your value was going up 20+% per year)
I'd be curious to hear the field you choose that has better compensation prospects than the salary ceiling for software development, especially if you're going to be doing development in your free time because you love it. Hell, just get paid to develop for your day job and be stuck at "only" a decent 6-figure salary.
Yes, because nobody has a crystal ball that can guarantee them a future where they'll continue to make that kind of money throughout the rest of their careers.
Yes, because the business-types who run the world want to see a steady stream of promotions, or else they come to the conclusion that not only are you NOT worthy of more money, but you probably aren't worth what you're currently making.
I have friends who were forced to become third party contractors because the only vertical movement for their salaries within the corporate structure required them to become managers, which was an undesirable move for them. So they contracted out to their previous employers instead at more than twice their previous salaries.
It's really not all that good, because you aren't thinking in terms of careers. A (real) engineer goes to school to be an engineer, gets his license to practice engineering, and from then on is largely assured to receive increasing salaries from that point onward. Sure, the tools may change, but real world experience on actual engineering problems is seen as irreplaceable by employers.
A developer by contrast is judged by the tools he uses just as much as his tenure, and his tenure becomes a net negative after a period of time. Because wages rise faster and stagnate faster, corporate types see them as replaceable sooner. This might not mean much to people who hop from job to job every year or two, but for a lot of people, they just want a place to work and feel secure.
I know a hell of a lot more 80 year old lawyers, accountants, doctors, and engineers than I do 50 year old developers.
There are places to go find a secure, long career.
I'm coming up on 14 years at my current company (developer to executive) and there's a developer working here who is longer tenured than me and still happily coding away. Of course, there's some element of luck of finding a good place, with a good business model, good leadership, good execution, not getting hit by a meteor, etc, but it's clear that not everyone job hops every 2 years.
You won't find me as an 80-year old technologist, because I'll have made way more than enough to retire 25 years before then.
I started at $35K in 1993. That's a 4.5% compounded growth rate to $100K today.
You started at $53K in 2006. That's only a 5.9% compounded growth rate to $100K today. That same 4.5% CAGR gets you to $86K today, and $86K in a lower cost-of-living place than Boston is still a pretty sweet starting point (if your $53K was in a place with a lower cost of living than Boston, for instance).
I thought that starting out as a developer at 42 was a bit too old. I felt much better when the new guy I started with admitted he was going to be 50 at the end of the month.
How is it going? I would like to know more about other people's choices in a similar situation.
I am 37, studying web development (mostly Javascript) for 4 months now. I feel I learned a lot of the language itself, but I'm struggling with other important components of being a good developer, like proper use of git, comments, tests, etc.
"Covered" isn't saying much. When I took my Software Engineering class, those topics amounted to no more than a couple slides each in a lecture. Even if my university's curriculum wasn't a joke, the idea that a single class, typically taken one's senior year, is sufficient for any of the above is laughable. No one I knew or shared a single project with used version control or testing for the duration of my sad education.
I'm 25, I started (properly) learning and liking coding about a year ago. Seeing people who are 4-5+ years younger than me with more knowledge and experience is discouraging. It doesn't help than in a job interview I was told "Why should we hire you when there are people younger than you with more experience"
>"Why should we hire you when there are people younger than you with more experience"
"I'm not sure why age is relevant or necessary in your question. But thank you for showing your contempt for older people. I'll be excusing myself now. Good luck in finding a candidate and filling your position. I have a blog article to write."
I'm one of the guys in that blog post. I feel incredibly lucky I got a job in this field at my age - my employer was very kind to hire someone in his mid 30s with no professional experience.
It worked out for me, and I'm 36. At 25 , you are just getting started in life. You're going to be just fine.
That's a strange thing to say in an interview. If I were hiring a junior developer, I'd favor the applicant who has more life experience and would assume them to be more grounded and reliable than someone in their early 20's.
This seems to conflate "you can become a dev" with "you can be hired as a dev" after the age of 35, 40 or 50.
This isn't to say it's not worth becoming a dev at a later age -- coding is an increasingly crucial skill for entrepreneurs -- but it seems cruel to entertain the myth that older devs get hired by the handful.
We hired a mid-40s dev recently and he's great, I think a lot of it is contingent on where the person lives and what the demand is. I'm not in my 40s yet but I've found the older the developer, as long as they have a passion for it, the more measured they are and more willing to put their ego to the side and adapt.
Maybe they won't keep up to the clip a 20s-30s year old will be with learning new tech, but I think there are both pros and cons between a young person and an older person.
Getting a product out of the door is more a human problem than a technical one. Sure there's the cliche image of the older, embittered dev who is set in there ways and refuses to change but it's just a caricature spread by by young people with no experience and an infinite capacity for working for free. Older devs who can ship are worth their weight in gold.
There was recently some advice (on HN?) that if you really want to make money, you specialize in 2 things, not just 1, and not Jack-of-all-trades. So having a first career and then moving into a second one is one way to do that.
Last year we hired a couple junior programmers, even though we were only aiming for 1. The second programmer impressed us so much with her code samples that we were tempted to hire her as well. But what really cinched the deal was that she had uncommon business sense and knew enough to tell us about it. She has been the best junior programmer that I've ever worked with, and I have no doubt she'll be an amazing senior programmer some day.
I'm 50, been programming for >30 years, and never had a client ask me that either, but recently I've found myself asking that a lot of the time.
I am at that stage where I know that I cannot work as fast as I did 20 years ago, and that my endurance for all night programming sessions is not like it was. Add to that back and shoulder problems, and degraded eyesight from sitting in front of a monitor for years, and I am thinking about what happens to my clients and my work if I am forced to take a break for health reasons.
I've spent time talking to a lawyer (and some of my clients) about putting source code in escrow with them, and letting other family members know where they can find a list of critical logins for all the services I use in my day to day work. Call it a 'work will' if you like, but I want to ensure that if I am not able to do the work anymore, for whatever reason, I want my clients to be looked after.
Counter that with "what happens if you get diagnosed with cancer and the next week your on chemo" This happened to a young guy in our team at my last bit one place and to my project manger earlier in my carrear
One of the great things about programming compared to many professions is that the requirements to start are pretty low: you need a machine and (realistically) Internet access, and a willingness to search for examples and answers. It doesn’t require you to clear space in your garage, or invest in large equipment, or go anywhere far away, or have a company backing you to acquire the necessary training; you just start. Even better, progress can be realistically made in spare time without necessarily abandoning whatever job got you this far, assuming you aren’t working 90-hour weeks.
It is also one of the few disciplines that is included in part-time degrees at some universities. This means you can even be taught radically new things in the field without necessarily giving up your day job.
I absolutely feel that it is harder to learn a new career as you get older. You have much less time as an adult than a traditional college student, and my brain doesn't retain things as well as it did 18 years ago. Also, the repercussions for failing to successfully transition into a new career are much more severe for someone approaching 40 than someone in their early 20s.
There was significant risks associated with my decision, financial burdens (loans, credit card debt accumulation), and also some opportunity costs of not earning income for over a year. I quit my primary job, leaving me with no safety net. It was scary at my age to do this, but by taking on such huge financial risks I was more even motivated to succeed - to fail would have been devastating.
As of now there's no such thing as programming species, natural or genetically engineered. Like any other skill, programming is learnable. One's age should not be a barrier to learning it as long as they enjoy their mental health[1]. Some skills are easy to learn and some are hard and take many years of practice before one can do it with some mastery.
We learn skills out of necessity or out of passion, sometimes out of both. Whether we become good at something depends on a number of factors, and obviously there're efficient older workers and incompetent younger workers in every industry, and this dualism applies to programmers as well.
A computer is a means to an end. People in disciplines such as biology, mathematics, sociology learn and use programming as a tool to solve their day-to-day work-related problems because it helps boost their productivity.
I'm nearly 40 and just started my first software development job.
In my case, I already knew Python and Ruby from working in ops, so it wasn't completely new to me as was the case for the people in the article. What is new to me is having larger programming tasks that require focus and teamwork. The nature of ops tends to involve a lot of context switching and as a result most of my projects were small and self contained. Learning how to collaborate with others on the same code base is a big adjustment.
I am also incredibly impressed with how patient my colleagues are. I know "how to code" broadly, but that's not the same thing as "how to be a software developer." I'm fortunate enough to have the opportunity to learn as I go.
I started 2 months ago, trying to follow the courses of Edimburgh Software Engineering ( http://www.drps.ed.ac.uk/16-17/dpt/utswenm.htm ). At the moment I'm doing Haskell, Linear Algebra and Computational Logic, but I see that everybody just do some courses with a more practical approach (Python, NodeJs, Ruby on Rails, etc.) I have some web development knowledge (manage several drupal sites and have 2 linux servers online) and have some mathematics knowledge (I am economist). Do you think I should also take the fast path? Am I loosing my time by learning maths, logic and Haskell? I'm 36
I've been programming professionally for 15 years (C# & SQL Server) and I've encountered exactly one Algebra problem in my entire career.
Now some jobs require the most advanced math on the planet. For example the guys that developer the SQL Server query optimizer and absolute math gods and they have to be.
However for 95% (my own made up statistic) of software development jobs advanced math is not a requirement.
Software is the path I chose to achieve many different short/mid term goals for my life. Finding an ok paid job, exploring another form of freedom of mind, the ability to create things I want, guiding/teaching my kids better with deeper understanding and know how of the development of human-control-machine-to-achieve-result (even though I only have a tiny piece of knowledge of it), sensing the new opportunities, etc.
While I'm still struggling with the first one, I found the rest are all very well achieved.
To all late starters: keep going as long as the resource is available and good luck to all of us.
edit: typo and replace "tech" with a more detailed description.
In my opinion, this question is not answerable because:
- it calls into question the individuals motivation and ability to materialise that motivation - this is impossible to measure.
- there is no such thing as a "software developer". We write software, this is true; however software is so ingested into society that one software engineer may be performing an entirely different role to another. And different roles naturally demand differing skill sets - this is impossible to specify.
So, without meaning to offend, bundling up the entire aged population and asking if they can do a job that is hugely variable is a bit of a non-sense.
I almost finished a Bachelor in Business and Economics and worked abroad in a completely different field before starting my career as software developer.
If you have the interest you will pick up the stuff you need for the job fast. Even though many of my colleagues have been programming since childhood I feel that their growth curve has leveled out compared to mine, at the point that we're on par in some areas.
I think it's great this article is getting so much attention, considering the huge amount of bias and "ageism" that exists in the field.
Just because you can be an entrepreneur before 30 doesn't mean you'll have the life experience to be good at it, and many junior-level software development jobs expect a level of commitment that's unfeasible for people who "have gotten a life".
Really unfortunate that it pitches php development as a way to get started as an older developer. As if an older developer doesn't already feel antiquated and behind, let's make it worse by teaching them an established technology that is not usually the language of choice for companies on the bleeding edge of technology, which i, I imagine, where these people are hoping to be
I'm not sure that's really a problem; if anything, it might be a smart move. PHP due to its large installed base, might become the legacy software niche similar to COBOL. While the younger generation might not want to touch it, older developers might have no problem with it - provided such opportunities are still available.
i thought the argument for agism was that, once you hit around 30 your salary is peaked because it only takes 5-10 years for a college grad to catch up to the state of art. and the counter-argument is that if you are so good you can make high risk projects successful, your salary is bounded by the business value of the project
I believe that anybody with the aptitude for abstract thought can learn programming and mathematics at any age, and that anybody without the aptitude for abstract thought is never going to become competent at programming or mathematics no matter how early they start or how hard they work at it.
I was expecting to see people like me who try programming every few years (since 1983) but never got into it. My fingers say yes but my brain says no.
The people shown in the article were unexpected I think they are even more interesting to jump right into programming from a jobs that you wouldn't expect.
Eh, that's quite a stretch. I guess people that always were logical thinker can pull it off, while people that were not can't learn it even at 14, 18 or 23.
I think it depends on what you're aiming for. If you just want to make Javascript work on some sales page, it's probably enough to just be able to type and spend some time learning.
If you want to write the next Facebook, Pokemon Go, or Visual Studio, then no, it's not enough to just be able to type. There's a lot of planning and logic involved in them that isn't obvious to non-programmers and non-logical people just don't have the aptitude for.
it's true, I saw a ton of folks in college who just weren't cut out for programming when trying to get into it. I'd almost venture to say personality and intellectual inclination play a larger role (within reason) versus age.
Everyone on the internet can read & type, that's how they are able to get on. So this is hogwash, however, if you do have enough motivation and willing to work hard, you can learn to program. What level of programmer are you going to be, now that's a whole other discussion.
I'm afraid I don't have them to hand, but I've read studies that suggest this isn't true. A certain amount of mathematical/analytical competency is required, and it looks like this develops at a relatively early age.
Being a young engineer may make you marketable. But having deep domain expertise and engineering talent at a later age gives you extraordinary super powers.
I went through an intense several year period of studying jazz music beginning around age 16. I remember the discipline it required and the speed at which I was able to progress.
When I got into programming at age 33, it felt exactly the same. The discipline, the hours, the speed of progression; all very similar. Having devoted many thousands of hours to mastering a skill in my teenage years and again in my 30s, I'm not aware of any differences in capacity to improve at one age over the other.
I attended a boot camp and had ~25 classmates all over the age spectrum. Some were smarter than others, some worked harder than others, but there was no age correlation on either of those observations. I also didn't see any age correlated patterns in success in the job market. Some old and young students got jobs immediately; some old and young students had to fight it out a little longer.
If I lose my passion for software at age 40, 50 or 60, I would be very open to pursuing something new at any point in my life.