making a 100% original fan game may be kinda tough
but i started from doing whatever simple crap with the drop and drag crap in GM, but then i found dayjo, who started to teach me how to code crap and went through making some simple ocarina playing engine with me rofl
but really, all i've done is checked out many examples from the gmc often, tried editing them to do stuff how you want to do it etc
and then just thinking up your own ideas for really simple small engines and going for it. using code from other examples you have/can find to help out etc and just building up your knowledge from experiencing many different things many times
but follow existing game examples and trying to change them and using code from them to make your own whatever really helps imo
stuff like memorising commands and functions and whatever is 110% useless though
as in GM there's a library of those at the bottom of code, that matches what you're typing, so say you want something to do with a sprite, type in "sprite" and you'll get all commands and functions starting with sprite so you can just browse through, see whats good and then search for that specific one in the help. also of course you can generally search in the help and look through things that look like they're on the right track and find whatever. GM's help is really handy and i do exactly what i just said all the time because i forget many commands/functions/whatever
but all in all, just getting experience of how stuff works and building up via examples is probably the best way imo