First of all, I was preparing a reply, but the above posters have pretty much covered the topic well. I'll still include my suggestions in case you find any of it useful.
Second, just to comment on the previous replies, the above advice is spot on.
To grab a small number of key points from above:
A) Make sure you understand the basics of GML, there are common concepts to most programming languages like loops, conditionals, expressions, variables etc...
B) Learn to use the debugger!
C) Find a small project that interests you and attempt to make that, following the guidelines mentioned above.
---=== My suggestions follow ===---
Read the GML Overview section in the manual as often as you can until you understand all of it. (Everyday if you have time, once a week at least).
Especially learn how to use:
Conditionals : if / else statements
Loops : while() loops / for() loops
Control : switch () statements
Understand what the keywords continue / break / return do.
Learn what an array is and how to use it.
Learn what a ds_list is and how to use it.
Suggested Projects in this order:
1) Basics [ Time to complete : 1 - 2 days ]
Learning Goals : [ Just to get your hands dirty and start to get to know the ins and outs of Game Maker and its workings. ]
- Draw something to the screen, have it change based on user keyboard input.
- Draw the users exact input to the screen.
- Take the users input and change it in some way, and output that to a different part of the screen simultaneously
2) Blackjack [ Time to complete : 1 - 2 weeks ]
Learning Goals : [ User input / Output, managing game state, basic AI, using data structures ( an array or ds_list to handle the deck of cards) ]
- Create a game of one player blackjack against an AI dealer. You can use a simple text based display. (Don't worry about graphics for now).
3) Choose a very early arcade game and re-create it from scratch. For example, Asteroids / Pong / Breakout. [ Time to complete : 3 - 4 weeks ]
Learning Goals : [ Real-time reaction to player inputs, collisions, drawing graphics to screen, managing multiple game objects in play ]
4) Modify your project from 3 by adding Intro Screens, Menus, High Scores, Game Over, if you haven't already. [ Time to complete : 1 - 2 weeks ]
Learning Goals : [ Game polish and making a game into a complete package for the player ]
4a) Stretch Challenge - Add local multiplayer to your game from above. [ Time to complete : 1 - 2 weeks ]
Learning Goal [ Handling more than one player input at a time, abstracting game logic so it can handle multiple players ]
NOTE : Whenever you get stuck (i.e., something is not working right in your game, you are getting compile errors, game crashes etc ) - locate the line of code causing the issue and immediately read the manual entry for whatever code you are using. Make sure you are using it correctly.
Whenever you feel like you want to make something happen in your game, but you're not sure how to code/implement it in your game - have a search through the manual to see if there isn't already a function to help you do it.
For example, say you need to know the distance from the player to the enemy - if you check the manual, you will find there is a function (or multiple functions) that will do exactly this for you. ( point_distance() / distance_to_object() are two that you could use depending on what you are trying to achieve exactly )
Actually skim through the entire manual at least once so you are at least familiar with what is available.