Any tips on figuring out programming in Unreal?

So for the past few months I’ve been attempting to learn Unreal Engine. Most tutorials feature blueprints which I guess makes sense as it’s new and simple and their solution to artists trying to make games. However, when learning to code or program anything, I’ve always valued actually understanding what I’m typing in. It makes it easy to remember, especially when it’s not a habit like say, typing in


int main()

before starting your C++ code. When I need to write code spontaneously, I find it valuable to understand what I’m typing in.

However, UE4’s usage of C++ is almost as if you’re learning a new derived language, which is what was once done by users of Unreal Engine. Outrageously though, I’ve found no source which explains the vast amount of macro’s and jargon used when programming games in UE4. Thing’s such as


GENERATED_UCLASS_BODY()

or


void SetupPlayerInputComponent(class UInputComponent* InputComponent) override;

. Perhaps the terms void, class, and override have been mentioned in typical C++, but the Unreal API is a mystery, and I’ve found no place where I can know what any of this actually means, or more importantly -in my view of course-, why I’m connecting them the way I’m told too. It’s somewhat obvious that all these are related, but it’s harder to uncover how they’re to be formatted and linked together. Does anyone know a way I can get a better understanding of the library of macros and terms Epic has taken no time to explain?

Read this: Programming with C++ | Unreal Engine Documentation (All of it).
Also watch the introductory videos.
Don’t confine yourself in C++. You need to learn how the whole engine works first.