You should really start by attempting to make clones of old games, and as you gain confidence start to introduce variations in your games, until you're ready to try and make something from scratch.
For example, try and build Pong, Tetris and the first level of Super Mario Bros in either Game-Maker, Unity, UDK or any other engine. If you have no idea where to start, there's plenty of free tutorials online, but DO NOT STICK TOO CLOSELY TO THEM. Over-reliance on tutorials will prevent you from becoming familiar with how to code for yourself, so it's best to try and come up with the solutions by yourself before seeking help.
One good way to approach making your games is list down everything you need. For example, in Pong you need:
Models:
1) Pong bats
2) Ball
UI:
1) Score
Code:
1) Ball Physics
2) Ball launch at start
3) Bat Physics
4) Player score zones (when the ball hits the edge of a screen a player scores)
5) Score increase
6) Game reset
etc etc. If you figure out everything you need to make a game work beforehand, you then have an idea of both the SCOPE of the project, and also give yourself little objectives that may make the project seem a bit easier to work with.
Game Maker and UDK both offer module scripting/visual scripting, so you can just connect blocks together to make actions happen.
Keep making games until you've got some awesome and original stuff for your portfolio. You can use this to impress potential bosses if you want to work for a professional studio. Otherwise, just keep building games until you're ready to release something you made and you love to the public.
I really, highly recommend that if you're serious, you also look at "A Theory of Fun" by Raph Koster, and also watch all of Jonathan Blow's speechs, as well as Extra Credits (which covers a lot of game design) and read Gamasutra.
And don't be afraid to ask for help :)