If you are a visual learner, YouTube is a cornucopia of free knowledge. Depending on the subject, there are also a multitude of free online college courses from major institutions such and MIT. It really depends on the subject and your learning style. And of course there is also ChatGPT (or similar) which make excellent tutors. 

Yone:

This is a great question.

I will ask two questions in response and give my own thoughts. 1) Are you looking to learn new skills (as a past programmer)? or 2) do you wanting to break into coding without any prior experience?

When I meet my first computer (at 12) I was hooked and after either self teaching (from books) how to program in DEC BASIC, Pascal, Fortran and LISP (as well as a few others I dabbled with) I discovered M(UMPS) and fell in love. After just a month I knew that M was THE  programming language (and system) to make the most of my time and computer resources. Today, I use IRIS as the basis for the entire eco-system of software I create and support. But this doesn't really answer your question. My joy, excitement and love of coding comes from being able to code as fast as I can think and making the computer solve my problems. M/Cache/IRIS along with a few pieces I have acquired over the years (or created myself) allows me to do that for the many systems I create and/or support. For me, it is the instant gratification and the creatively to rapidly create new solutions that gives me the "joy" you seek. "Programming as art" is a phrase not used often these days, but to me, programming (and doing it in M technology platforms) is my "paint and canvas" for my creativity. 

If you can find what it is about software development you can get lost in doing (or to use a more trendy term "find your flow"), you will find the joy you seek. Once, you do, all you have to do is look for the resources to development your skills. You have options like on-line courses, books (I know so old school) or even co-working with a mentor.