I agree with Draco18s, having started and stopped modding multiple times. Only things I'd change is play "current" version of minecraft. I'd start with simple items then blocks. After simple block learn about the different minecraft rendering layers. Then continue with Draco18s directions. After his directions work with particles.
Some things to know is there's a lot of material out there and most of it is out of date. Most the time you'll be taking out of data material and updating it. Don't ask any questions about any material below 1.10 on these forums or your thread will get locked very fast and you won't get the answer you need. When you have completed items, blocks, and particles, I also suggest you get familiar with the major mods out there by playing with a couple of the large FTB modpacks in creative mode. This teaches you what players are looking for and what is possible. Then formulate an idea of what you want and look up some of the githubs of mods with similar type stuff.
Things to look out for is everyone structures their code differently. Some will place a function in the block code, others the client proxy, others in "main", and some in a strange class you haven't seen with any other mod. There is very little reason to how people setup things other than that's how they got it to work and makes sense to them. You just need to take their code and play with it until it breaks to figure out what does and doesn't work for yourself.
I use youtube videos and these examples.
https://bedrockminer.jimdo.com/modding-tutorials/
https://github.com/Choonster-Minecraft-Mods
https://github.com/TheGreyGhost/MinecraftByExample
Rome was built up brick by brick. Aim small and expand as you accomplish more and more. Don't build on top of a foundation you don't understand or you'll find pieces of your code not working that should and won't understand why. I have personally tried skipping each one of these steps that were also suggested to me multiple times, and it never ended well, which is why I've started over so many times.