I am looking for a tutorial on how to start modding. I have a decent knowledge of c#, so Java shouldn't be too much of a problem, but I am looking for a tutorial which doesn't just say "this is how you do it" but explains what each bit of code does and why it works. Are there any tutorials you know which do this?
I'd say the best tutorials are from McJty (Jorrit Tyberghein) or SilentChaos512 or some others. Otherwise Mcreator is a visual/to code program you can use but like with most it's probably best to just use Eclipse or IntelliJ or other IDEs that your familiar with.
Any modloader or version your interesting in developing for at all?
Brief History/Current Modloaders you can develop for (I'm no developer these are the things I know of as a player)
Since 1.13+ Forge and Fabric are the two modloaders that will be the future of modding for 1.14+ at the moment, Fabric being one that uses mixins, that is lightweight, modular and does develop alongside releases & snapshots but it's new and has been out since December 2018 I think.
Forge is good for everything built in compared to a modular approach but during 1.13 (ported to 1.14 as unfinished) they removed legacy code and probably changed a few things up but either way it's still in beta but it has a lot of the things developers need and ask for built in while Fabric is modular and lightweight and being built from scratch and has existed for about 10-11 months now publicly compared to Forge's longer existence as the only modloader people really used.
Liteloader did exist for versions 1.7.2 to 1.12.2 (I'd say 2014 to 2017-8 or so and was made the creator who made the mixin system, Liteloader was good at display elements and menus, like a minimap, armourhud, fishing tweaks and so on, no asset focused stuff like Forge, Rift or Fabric are) Rift to me is a 1.13-1.13.2 Fabric prototype (that's what I see it as, devs don't develop for it anymore as Fabric is the successor/evolution of it but players still do use Rift for some reason).
I do remember having some Fabric documentation somewhere you can use to get you started if you want to develop for it:
and if you want help from the devs to get you started more so than I could (not sure if the same documentation I posted is what they direct you to) you can find it on the Fabric Discord here: https://discord.gg/v6v4pMv
For Forge development I'd say besides tutorials as Forge tutorials have existed for a while, try the Forge Forums and see what they have to say/can assist you with: