1) its the basic idea plus a testing stage. More you plan out ahead the easier time you will have at programming your game.
2) Pick a language, seriously just pick one. Learning the language is gonna be the easiest part of game making. If the particular language ends up not being right for what you need you can always change to another. Everything you learn in one language will be applicable to another. If you end up programing for any length of time you end up learning a few other one anyways.
3) Yup great idea start off with some simple games first till you get the hang of some of the basics. Each game should be a challenge to build and teach you something new.
5) libraries? You'll be using them. They are there to simplify things but there's tons of choices out there. They are there so you dont have to reinvent the wheel. Learn to use them
4) Game engines could say they are a collection of libraries with there own editors ... There's quite a few game engines out there at this point I would just keep an eye out for a few see how there developing.One of the issue you will run into if you jump straight into trying to use a game engine is it'll be easy to get overwhelmed.
pick a language, start learning it, just use a text editor and compiler to start off with till you under stand some basics, pick up an ide, figure out what source/version control is ...