You start with learning to program, you learn to use third-party libraries for handling video, keyboard, etc, you make a few simpler games to understand the internal structure of games, and then you're starting to get closer to making anything like Edge (although you should never ever call it anyhting-Edge, since that name is taken already).
Programming language doesn't matter much, programming techniques work in any language. I'd recommend Python as it's light-weight and encourages experimenting, another popular choice is C# (never used it).
You may also want to read the following article, which also lists a few games you can try programming.