I've been involved in programming of some form or fashion since 1980. My first attempts were in BASIC on a Timex Sinclair 1000 and later on the Atari 600/800 computers. I distinctly remember a long evening my wife and I spent writing our own program (saved on cassette tape) to print four line address stickers on our dot-matrix printer. We were impressed with ourselves to no end with making that one idea work.
As a person that works in industry, my interests have always lie with using computers to make machines work for me. Forty plus years later and I'm still doing that at my third hospital as a plant engineer.
Along the way, I've studied other languages; C, C++, Perl, and Python. Yet, I tend to fall off the wagon very often. Learning a programming language shares many similarities with learning a spoken language. Each has syntax, grammar, and structure in order to get meaning across to "another". On a computer, the "another" is the processor/operating system instead of a human. Fluency in your chosen language requires repetition and practice; daily repetition an practice.
A couple of years ago, I realized that not only am I getting older physically, I'm getting older mentally. I'm not done learning and I haven't met my goals. So, I resolved to do differently. I went back to practicing my favorite languages as often as possible.
It has been a slog. I've become more diligent about "doing" the practice, but my ability to sit down and use the language items I learn has been mediocre. I spend a great deal of time looking up my answers on how to do something. If my learning of Spanish is any example, I'll be senile before I begin to use any of these snazzy languages. Not to mention that new languages are popping up faster than dandelions.
This past week I went back to my roots of programming. Nope, not BASIC. That one I still use often as it is the basis of many building automation systems I maintain. I mean my roots in C, the first compiled language I tried to learn. I discovered that if I focused on a language that I had some basic fluency in using improved my learning of the skill. Because I wasn't attempting to remember where each semicolon or parentheses went, I could focus on the language elements instead.
As I thought deeper about my dilemma, I also realized that I don't need all the fancy modules one can import in the other languages. Most of those exist in or for C in some fashion. At this point, I'm probably not ready for fancy modules in any case. I need to focus just on developing one program idea and producing a usable product.
I have no delusions about writing the next killer app or even getting a job as a programmer. That ship has sailed. All I am working towards (besides the avoidance of dementia) is to be able to write my own programs to do my own things; preferably without lurking through Stack Overflow.
Learning a programming language takes time and practice. In this way, it is similar to learning another spoken language. For me, it's become important that I focus on the language I know the most about and making that language work for me. All the while, hopefully, not forgetting to progress to other new languages as well. I can't say this is the best or only way to learn a programming language. Your results may vary, but for this old hacker, it's beginning to show promise.