I learned C++ with good old books (started in 2004). I first picked up one of those cheap Sams ‘learn C++ in 10 days’ things which isn’t that great, but I found as soon as I managed the first basic (and they really are basic - ie storing memory, adding numbers) tasks my appettite to crack it properly had me replacing the starter book with the ‘bible’ on C++ (Bjarne Stroustrup - the C++ language). Geeky as it may sound that became my bedtime, break time, everytime reading for a few months and really helped me. At the same time I downloaded the Direct X 8/3D SDK and windows SDK and started to build a simple 3D game engine. Being able to actually set a goal, research the solution, then implement it made it far more fun to learn. I also found my own way of coding, formatting, commenting - I like tidy code - and found the whole thing very addictive. I think my interest waned towards the more advanced topics but I knew enough to be making simple 3D games first with my rudimentary D3D8 engine then layered on top of the free Irrlicht graphics engine. Coming from Basic (Spectrum, Amiga) C++ was quite a leap, no C knowledge in between but I was motivated by how ‘hard’ the language was perceived to be and found it made sense to my way of thinking more than the simpler/higher level languages do.
This post is not to just talk about me, I’m hoping it may motivate you to just dive in. I don’t think you should just stick to UE4 if learning C++ is your overall goal, but for sure you could learn ‘enough’ to be able to edit and create code to get most of what you need this side of pushing the envelope beyond what UE4 already enables.
I’ve not coded for around 4 years and am rusty as hell, my old source files from my games make my head hurt but it’s just a case of diving in again and it all clicks. Same with learning. Once you get the basics out the way (the C type stuff) then the OOP/classes stuff you have a good basic grounding in many useful aspects and can learn the rest as you go. Good Luck.