Getting more experienced in C++ would be a better start. Not to offend you but, there are reasons why it's recommended for you to build small programs before going into game design. You will be using a lot of pointers. And it's errors are usually hard to track alone in a small one. When you put that in a real time program, and you don't know how to effectively handle it, your program will be crashing a lot.
If you are new to C++, BACK OFF. I am not going to lie, but game development is not an easy task. Especially if you don't plan on using a popular Game development engine. This means Unreal or Unity. These aren't considered actual game engines, but kits. As they make it easier for the user to make games, but hold a limited functionality. And a style that is easy to detect.
I honestly recommend taking a few classes in person to learn C++ before you continue. You will be able to ask your professor for help. Learn concepts that will only be discovered if you even knew their names. Plus you'll need a strong foundation in math. So toss Calculus at minimum.
Then there are books, but they don't go to far outside of the scope of their titles. Even then, it's a limited subject, and encourages only their style.
But if you use a GDE, then that's a different story
Now then.
The IDE you use should be compatible with the language you use. Also, do a bit of research on them. It wouldn't make much sense if you use an IDE who has a lot of bells and whistles, but it will only work for one language. I use Visual Studios because it has some nice debugging features. Takes a bit to learn it, but it helped me a lot with finding logic and pointer errors.
For your second question. Probably the source engine would be your best bet. If you plan on using an IDE, then this one is absolutely invaluable. But why the source engine? Well, it's a full completed engine that gives you access to nearly all of it's code. This means that you can fine tune the engine to match your needs. And even upgrade/add more features. It's also easier to adapt other people's work into code. Most code is done in some version of C. The publishing rights are free I believe once you have been green lighted on steam.
While I agree that C++ seems to be the de facto language still for a lot of the game dev world, you can do a lot nowadays without C++. A lot of engines give you other options, and a lot of frameworks are available for other languages (pygame for example for Python).
Also, just because someone is new to C++ does not mean he cannot learn it... if he is expierienced with other languages or just a fast learner, might not even be that hard. Pointers might be the horror, still, others made it through, why shouldn't he?
Unity and Unreal are just as much an Engine as Frostbite or CryEngine. I don't see why you call them kits. Every engine nowadays will bring an editor and stuff like that. If you mean by Kit that its easier to learn than others, maybe. If you mean by kit can be used without programming knowledge, NO! As soon as you want to do anything worthwhile, you need to program behaviour scripts in Unity. And I wouldn't trust the visual scripting tool in Unreal too much too.
Also, functionality of Unreal or Unity is just the same as with any other commercial engine. Unity free version has some limitations, true, but has other advantages over some of the other free engines out there. Unity Pro has no limitations (just costs you 1500$ per seat). Unreal is not 100% free (UDK is, but that is legacy now. Unreal 4 costs 20$ minimum), but is among the most cutting edge engines on the market. No limits there really (you even get the full source).
Cannot really comment on the Source engine, as I never used it. Heard good things about it, even some bigger studios use it, its free, so yeah, giving it a try will not hurt. And certainly, IF the TO will need to change the engine (which he probably will not for quite a long while, and maybe also lacks the expierience to do that), he can...
For a beginner though, I think the usability of the editor, the size of the Community and the amount of documentation beats almost everything else (besides the price point). Source certainly is among the better engines here, but I am not sure if the editor really holds up, or if the community and tutorials are vast enough (again, I never really dabbled in source).
Books, good point. Here is a book that is a good start:
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=sr_1_3?ie=UTF8&qid=1411573843&sr=8-3&keywords=game+engine
I bought it, and it will tell you how a Game Engine works in a nutshell. There is even a newer edition that might be more up to date.
Gian-Rito thank you for your reply. Yes I'm worried about the art. Maybe I need to find an artist immediately after I launch the project(of course when I studied enough). Now I'll give it a shot on Unity(maybe.....)
Yes, for the time being don't worry about art. You will find enough stock art, free art or ways to proxy art (simple cubes, stuff like that) to start working on some simple games even in 3D engines.
If it stirs up your interest in doing some art yourself, with some training doing simple art is not that hard or time consuming. If not, you might be able to get an artists help if you can present them a very interesting project, or they might give you a cheap rate if your art style is rather modest.
Also, you will not need art "immediatly". The only milestone where you WILL need good looking art is just before you show your game (prototype / demo / finished game) to the public for the first time.
Don't show potential customers placeholder art. This will make a very bad first impression. Until then, feel free to use any placeholder as long as you or whoever else is working on the project can understand what the placeholder is proxying.