If you are new to coding, and new to doing any kind of coding, don’t try to create custom terrain. that is a bad idea. I repeat A BAD IDEA. First try something easy, like an item. And look at the core registers and stuff. Then figure out events and stuff, fml and registry loading. Once you’ve done that study up on terrain generation and Open Simplex or other types of noise. Once you’ve got all that under your belt you can start by mucking around with codecs and things until you can assemble an implementation of a chunk source (I forgot it’s name so if I’m wrong pls don’t ping). Once that’s done you can try to register it and then replace minecraft default noise chunk source with your own. Good luck.
By the way, look up how to make custom biomes. That might be easier.