C is pretty important and should, in my opinion, be valued higher than C++. It helps a lot with reading pseudocode in any decompiler, but you wouldn't really need to be a genius to read it regardless. C++ is more important for the actual development of your patches, and C is for the static analysis part. Assembly, specifically x86/64, is a must to at least know how to read and have a basic understanding of how it functions. Windows API is a no-brainer as well; it's the OS you're working with and the OS the payload you're working with is developed for.
Also worth noting that you won't be a Haxor1337 god after solving your first crackme. Reverse engineering mostly doesn't rely on being an absolute genius and finding complex solutions to fix something; it is mostly about pattern recognition and knowing what you're doing, realizing what you're looking at is virtualized or packed e.g. VmProtect, Themida and such, VEX instruction encoding prefixes for AVX/AVX2, and much, much more.
Also, ScyllaHide is pretty valuable but not a 100% guarantee. If the developer is competent, there are still the possibilities of RDTSC delta checks, vectored exception handling, or some PEB fields that aren't covered by ScyllaHide. Also note that ScyllaHide is ONLY a patch to the userspace; anything below that will not be covered by it.
I highly recommend you use a second air-gapped or highly restricted machine for your actual dynamic analysis. Instead of relying on ScyllaHide, you should try HyperDbg or TitanHide, since these actually work on Ring-0 and VMX root, unlike ScyllaHide

. Preferably, the machine should be a snapshot-ready VM or a full-on second machine with the same setup. Internet traffic should be automatically captured AND highly restricted.