I think the easiest way to approach it will be to look at something top-level and work your way down. An example would be the Main Menu screen. Search the code (with VSCode or some other IDE) for the Scene which describes the main menu. Then read it as best you can and try to see which parts get referenced. Usually they are named (somewhat) which can be understood like normal english, but when you encounter a technique or keyword you dont understand jot it down somewhere and then once you've made your way through that scene, google the things you noted as stuff you didnt understand. Specific RMMZ/MV stuff will be scarcer than general javascript stuff, but often once you understand how the Javascript is working, how it is used to do what it does in the RM program is just a matter of figuring out which variable is being referenced where.
Much like spoken languages, most of the words are the same 20 words (called keywords) and the rest are just variables with names (akin to pronouns or real-life names). 90% of figuring this stuff out has to do with figuring out how to get the code to point at the correct location of the information you need. Thank heavens some absolute saint created the google Sheet with the RMMZ/MV references mapped out, as that is tremendously helpful. Its pinned on one of these forums (this one I believe?) and I'd bookmark that as I use it regularly.
You won't need to interact with the low-end stuff very often (how images are made, controls, etc), so I would start with the higher-end, more visible stuff like Scenes and Objects, things which can be more readily seen visually when messing with them. I'd start by looking at how to create a custom Scene (there's tutorials on here) or a custom Window, and from there how to get them to show in a playtest. Once you have access in the game itself to see what happens when you mess with stuff, it will be much easier to learn what things do. Then just work your way down when you encounter issues or bugs by ctrl+F things you don't understand and trying to find where they are written at the lower level.
Also, when messing with the code is it always a good idea to not directly edit the existing base code. There is a way to add/change that code afterwards that basically lets you non-destructively alter those things. That way, if you screw something up, youll still have the original code there as a starting point which you know still boots up. Overwriting methods, namespaces, and aliasing are tools to edit existing code from the engine without ACTUALLY changing the code as written in the literal code files. Plug-ins go in afterwards and can "rewrite" the default code without actually deleting/editing the file itself. Very important.