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.
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.
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.
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.
I think the standout piece of advice in that is to use code as a secret weapon in another profession.
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.
* 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.
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.
Shouldn't you be, though? Shouldn't your most valuable work be reserved for you?
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.
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.
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.
Below are the results. The road was hard.
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
Quit thinking you need to have motivation!
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.
Also Co-author of the "Pickaxe Book" - a fantastic Ruby monograph.
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.
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 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.
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).
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.
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.
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.
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.
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.
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.)
The again, it is still much better then middle management in big corporation or something similar.
>>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?
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.
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.
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.
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.
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).
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.
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.
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.)
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.
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
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.
Interesting pick for a first language.
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.
Doesn't have to specific.
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.
Are we talking doctor (plenty of debt if in the USA) or some other occupation?
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.
Keep doing your thing.
The only truth is your code. :)
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?
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?'
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.
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.
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.
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).
Ageism in this field is massive, which is why at 38 I'd rather start (yet) another company than get a junior dev role.
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?
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.
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.
Adjusted for inflation and cost of living my salary probably peaked around 10 years ago.
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?
1. Low barrier to entry
2. High average salary
3. Predictable upward career growth
An example of 1+2 is software. Examples of 2+3 are medicine and banking. Examples of 1+3 are sales and many traditional office/management jobs.
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'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.
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 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.
Or you can pick software where your pay might look like: 100K, 108K, 116K, 124K, 132K, 140K, 142K, 144K, 146K, 148K, 150K, ...
The software pay sure is plateauing. That seems awful, but who is better off?
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.
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'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"
"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."
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.
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.
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.
One thing you'll likely have in your favour is knowledge of another domain to a degree that perhaps no other programmer has.
Even so you might have to go the start up route and then unless you have strong marketing skills you're unlikely to do well.
"Is it just you? What happens if you die?" is a question you'll get over and over.
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.
Never had that question in 20 years.
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.
I have also heard it quoted back to me from existing users to whom I've referred new customers.
One time a sale that seemed be in the bag went away when a casual aside revealed that I had a kid in college.
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.
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.
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.
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.
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.
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.
- 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.
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.
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".
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.
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.
Some companies have older average ages, just have to know where to look.