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.
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.