Docedison:
My only real issue with the Arduino is learning the language...
Since you note in your profile that you are a retired electronics engineer, I'm not sure if what I am going to write will have much bearing, but it is what I would recommend to anyone getting into programming. It is a basic level of knowledge to keep in mind, especially if your intention is to become a professional software developer: Focus on the structure, not on the language.
What I mean by that, is that in virtually all modern (and not so modern) high-level programming languages you are likely to encounter, all utilize essentially the same concepts, and the same forms. This is mainly because (especially with more recent programming languages) they all have influenced one another. I would honestly surmise that the languages of the past which have mostly influenced languages of today, would be Fortran, C/C++, and Pascal.
All have basically the same control/branching structures. All have more or less the same forms of variable assignment structures. All have functional/procedural structures.
Of course, only C++ (discounting any more recent versions of Fortran and/or Pascal) has object-orientation. You can clearly see its influence, though, on other languages like Java, PHP, etc.
Languages like BASIC clearly have a flavor of Fortran about them (when I was a kid, translating Fortran code I found in books at the library over into BASIC for my home computer was something I enjoyed doing). I'm not sure where others like Python, Lua, and Perl fit in, but despite certain differences, they too have similarities with the legacy languages.
Once you understand the structures, the rest is just syntax. Think of it like the "romance languages" (Spanish, Italian, French): They all have a very similar structure, with the rest being syntax (it isn't quite the same, though, human languages being human and all, and subject to a much wider array of social, political, and other forces which don't exert themselves in the same way on computer languages, not to mention the age difference); if you learn one, you can (in theory) pick up the others much easier than, say - English or German.
That said, there are programming languages out there (but none you are likely to encounter or use) that will make you go "WTF?" - and some of them are based on interesting constructs meant to make them easier to utilize in certain scenarios or for certain purposes. Once you begin to appreciate what the world has settled on (mostly) for "standard programming structures", looking into these other languages can be an interesting diversion (like LISP, Prolog, Brainf*ck and Whitespace, etc)...