I'm not really sure how OpenGL/AL works, but from experience you will definitely need a game timer for your game. Timers are good because you can move the player the same amount on all systems, regardless of framerate.
Generally you will set a variable like so:
float timeSinceLastFrame = Timer.GetTime();
Or something, then you can do the following:
Player.Move(timeSinceLastFrame * playerMovement);
If the user has a higher framerate, then the timeSinceLastFrame Variable will be lower, since the frame will have passed quicker. The opposite is true for slower framerates. The playerMovement variable is used to make a general speed to your player (since the timeSinceLastFrame Variable will tend to be a little low). This will map it to your world speed.
But hey, you're learning, that's the key. Keep going, and keep your motivation up. You'll have it going in no time.
The reason I posted that comment was because I've been programming in c++ for years, and when I look at this type of stuff it still baffles me (3D). It's like writing an english paper while trying to learn english at the same time. Hard isn't it? Now imagine knowing english but trying to write a novel.... it's still hard no matter how you slice it
Just keep at it dude.