That's true, but software development is special because not everybody can do it.
Don't get me wrong here, I actually think that mostly anyone (lets say over average) can learn to code, including very young children or over 40 adults ... the difference between normal people and people that make a carrier out of it is that building actual applications is a lot harder than printing hello-world or sorting an array or scripting your home appliances.
I think that if you don't start doing software development early in life (at most in your early twenties), then chances to make it as a software developer are rather poor.
A couple of reasons come to my mind:
- like with every hard skill out there, it takes a phenomenal amount of time until you're able to be effective at it
- we constantly have to learn, just like doctors and while doable, it gets tiring. You can learn new stuff based on what you already know, so you never restart from scratch, but many people simply stop giving a shit
- getting a hello-world working feels like magic at first, but repeat that 10,000 times and pretty soon it starts feeling like drudgery. That's the story of most things you end up working on. And it is impossible to work only on new stuff, in fact most of the work in software development is drudgery
- related to the above, the motivation of senior software developers has to pivot from working on cool stuff to seeing happy users, or to money earned, or to other tangible byproducts or your work, because "cool" is relative and the initial magic starts fading away (which is why I believe many developers move into management)
- the demand for "good" software developers is high. But it's actually pretty hard to find a job as a software developer if you're not at least decent or come from a good university. This makes it a hostile environment for rookies, being a bitch to get your foot in the door
- software development is not only hard, but must be complemented with people skills ... being able to communicate effectively with others is of extreme importance, knowing how to do efficient marketing is also essential if you want to build your own products or if you want a good carrier path