Welcome to the community!
My current work situation prevents me from taking the traditional college route so I'll be entirely self-taught.
If you are aiming to eventually work as a professional in the industry this may harm your chances of finding employment, but it certainly won't make it impossible and plenty of people do manage to get into their dream role without a traditional college education.
If you just want to make games for yourself, either as a hobby or as an independent developer this is no problem at all.
I plan on eventually making games but want to learn to program first so that I understand how/why things work rather than jury rigging something together in Unity/UE4.
That's a really excellent attitude to have coming into this, and should be a good approach.
On to your actual question:
With all of that in mind, is C++ a good starting point for me?
It's not necessarily a bad starting point, but it can be less approachable than other programming languages. The skills you learn in (almost) any programming language will transfer to (almost) any other you end up working with, and any good professional programmer will work with numerous languages during their career. That is to say, you won't necessarily stick with the first language you learn and shouldn't worry about choosing the "ideal" language or trying to necessarily choose one you think you will need professionally in future.
C++ is one of the main languages used professionally in the industry, and you will almost certainly need it eventually if you want to take that route. Personally, I would not suggest it as your first language. C++ is also the language you would use to work with Unreal Engine, along with the visual Blueprints scripting interface.
My personal recommendation, however, would be C#. C# is the language you would use to work with Unity, and can also be used with the popular MonoGame library. It's quite popular with indie and hobbyist developers and is also used frequently for tools programming in the industry. It can be a bit more approachable to beginners than C++, and your experience will easily translate to C++ or other languages in future. You can find some opposing arguments supporting C++ as a first language in this discussion.
You'll get different suggested languages from most people that answer, and really it's a matter of personal preference with no one being objectively right or wrong. Any language you're comfortable trying is fine; it's the fundamental skills of programming you need to learn, not the basic details of any specific language.
I've been cut short by a crying baby, but I hope that's helpful -- I'm sure others will chime in with advice as well!