Thanks @gnovakov, those are important questions to consider.
As things currently stand, I have no pension or savings, so I'm probably going to be working till 70 (at least). Considering that I'll be working to an old age, a physical (or manual) career would make that difficult. That's one of the advantages of software development. If my mind hasn't deteriorated much by then, then software is something I can definitely do to an old age.
So maybe if I'm lucky, work full-time till 68 and than start working part-time (or consulting or contracting) till 75 or so. By that time, I (hopefully) would have gained enough technical knowledge to be well qualified.
I may not be as fast as younger developers, but I'm hoping my experience will allow me to make fewer mistakes, thus saving me time in the long run. (I have heard of super experienced people accomplishing somethinig in a day that would take a younger or less experienced developer 2 weeks!).
Some people tell me that what one knows (deep technical knowldege) and how one analyzes things (logic and thinking) can be the most important skills to have as a software developer. Technologies will come and go, programming languages will come and go, databases will come and go, etc. But what will remain the same is - trouble-shooting, problem-solving, picking up new technologies, etc.
One thing that I (and every person that wants to be successful in software) need to keep in mind is that "Software Development" is an industry where you have to continuously keep learning new things, reading, experimentation, etc. all the way until the end of your career.
In that sense, it is different from other careers like being a doctor, etc. in that the human body does not change. But technology does! (or at least faster than the human body does ). So, I have to be willing to commit to a life-long process of learning.
IMHO, a career in software may be a deal breaker for those that do not like continuously learning new skills. Yes, it is a tough price to pay. Hopefully the rewards are worth it!