i would sign up for a cloud guru or similar. you pay like $40/mo and they give you mostly good+ content, plus, importantly, fully-functional AWS (or other) cloud environments to actually type commands into without costing yourself a fortune.
i would study for and pass the AWS Developer certification as quickly as you can/like. you still need supplementary materials to pass the cert tests the first time, fyi.
at that point you're more than good enough to get hired and do real work.
after that, continue to do more certifications, i'd probably go with the devops cert next.
build a stupidly-small and simple app and put it on your github, and make sure you do all the things you're supposed to do and not do - like store your secrets in public. the mistake here is you will think, "_This_ is really truly stupidly simple." -- but it won't be, and you'll spend too long on it, etc. The point is to actually go thru the whole dev cycle, complete it, put a bow on it, and be able to talk about it to prospective employers.
complete that stupidly-small and simple app with docs, etc., then move onto another.
to me, 'learning to program' is a bit misleading, because learning a language is relatively simple - what gets complicated is learning all the other stuff -- like git, which is impossible. so you just gotta be comfortable with git, and an IDE, and writing code, testing it, deploying it, the 'full development lifecycle' (FDLC).
i would pick one language to focus on - and i'd argue that can be whatever tech or type of business problem really interests you.
so if you want to help build the website for some cool high tech company like flexport, then learn javascript/react.
if you want to do data science, then learn python/pandas/anaconda/etc.
if you wanna do iOS apps, then learn Swift or Kotlin for Android, with the corresponding adjacent/required tools/technologies.
being a generalist is worse than useless -- i would not advise it.
'devops' is a good place to start, imo, b/c it's literally half dev and half infra, so you don't have to be really good at either -- just dangerous.
same goes for tech support -- you can look for 'technical support engineer' or 'support engineer' jobs and be employed within a month (like, 4 weeks from today, even without more knowledge than you already have) and start learning on the job while you do your coding/learning in your spare time. this is a slower route to a coding career, but it also provides you an easier way to slide into dev - you'll know developers, you'll know the product, you'll have relationships, you'll know every bug/feature/etc., you know how the entire support process works, etc.
good luck!
...ps, this never happens, but i'd love to hear how it works out for you - would prob have to be on a new thread b/c i think they auto-close after a while.