People are always suggesting C++ for game development, which I personally think is fairly ignorant. Be practical. I've written several game engines, all of which were in Java, C# and C++.
Working with C++ you're going to run into a lot of bugs you wouldn't know how to handle without an extensive understanding of computers ( I mean of the hardware, and not just the language syntax.) I enjoy working with C++ but you likely will be implementing a lot of other libraries, I.e you'll want to learn BOOST which introduces some very useful frameworks but also some essentials that come with a lot of other languages. I bet though that learning that along with game development will be some challenge. Further, take into consideration that you will not need all the flexibility offered by C++.
Further, most game development tutorials for C++ use complex graphics interfaces like DirectX, and you wont want to be dealing with that, especially with your first engine. The math can also prove quite a challenge, especially if you haven't touched more advanced geometry. You want to be working more in 2D (You can do this with DirectX, but DirectX is a totally overblown graphics interface for simple 2D game engines.) If you do 2D with C++, you'd go with GDI or GDI+ for starters, which IMHO is kind of an ugly interface when compared to that presented by Managed languages like .Net or Java.
For non-commercial hobbyist engines, usually C# or Java are more particle(and for commercial projects they usually are as well.). When you get more advanced, and manage to get into a team of programmers, you can look into C++; but for starters, beware. Also, a framework offered to the .Net languages, XNA, is an awesome graphics framework I've worked with for some time before; it gives you the opportunity to work at low-levels such as directly interfacing with the graphics device but also provides numerous high-level modules to work with.
If you think you can jump straight into game development with no programming experience though you're probably not going to be very successful. Game development these days require one of the most important programming concepts to be well understood, and that is Object-Orientated-Programming. Further, you need to understand some basic programming patterns and learn what your language is capable of doing. Even as a "logical thinker" you have A LOT to learn before you can write some of the more complex applications out there.
All in all, if I were you I would start with using a game engine in a managed language like C#.
Also, since your new, I'll tell you this; some of the more ignorant programmers will bash managed languages like C# and Java, but in reality these languages aren't much slower in regards to performance. Just-In-Time compilation makes the code very fast to compile, and execute and further provides a safe executing environment for the program to run. Also, because these languages are compiled with a lot of meta-data, you can use what is called "Reflection" to make more generic modules.
Though, when choosing a programming language for your project you have to consider that managed languages will usually slower and sometimes that small performance gain or loss can be significant. Managed languages for example must run the garbage collector in the background thread; where as objects in unmanaged C++ are deallocated by the programmer or by the compiler(if they're on the stack and leave their scope.)
In summary, start with a managed language, and don't start writing a game, they are much more complex then they might seem to write. Maybe after a while you can give it a try.
Also, C++ will not "teach you the most"; maybe about the hardware, but not about programming. A lot of the time I have to "hack in" OO designs in to C++; so start with managed languages like Java, which allows you to learn a lot about OOP.