This topic pulls at me as I often wish I had someone talk sense into me when I was younger Frob gave you the answer and it's an answer that is hard to hear when you're starting out. Nevertheless it is very true.
The amount of effort to make a game is consistently under estimated. Now add learning mobile on top off it and just forget it. A common topic of bitching with colleagues is just how painful mobile development is. Console development IMHO is much easier. If someone wants to become a race car driver they need to start with a regular car first. People don't just start off learning to be a race car driver.
Now I am not interested in discouraging anyone at all and I know it sounds pretty preachy but I wish someone had preached it to me when I was younger. Use your brilliance in a productive manner. I spent WAY too much time learning every aspect of a game engine or at least what I thought a game engine should do. In reality I wasn't equipped with the knowledge to even know a full game needed to do. In the end I never finished a game until I was in the industry. I had so many games that were almost done but in reality they were just graphics with a guy type of thing. Perhaps 10% of a game at best.
If I was to start out today I would likely use Unity because there is so much support. The amount of work spent on just getting assets into the game and rendering something is huge. Don't fall for all this ego stuff that says you need to know 3D graphics and be a hard core C guy. Let other people go that way and see what they have in a year. People spend so much time on graphics and simple collision and still haven't even touched on game play. Build a very very simple game in Unity and finish it. Make it very small like pac man or space invaders but finish it. Seriously finish it. Having finished projects will look very good on your resume and when hiring, people only want to hear about shipped games and there is a reason why.
After you have finished your little game you will now be more equipped to ask the right questions. Again this isn't meant to discourage as I say go out and conquer! Just be realistic and work smart. After reading this a second time I am reminded how I had a problem with some planes getting stuck on a couple of towers. The planes were somewhat of a secondary object in the world and it pained me that I had to try and fix the steering for this. I came up with a few ideas and then I moved the towers out of the way. I could have wasted god knows how much time making a better steering system or I could ship the game. Work smart and get it done.
If you still just have to get at it, then use the suggested language for the platform. For Android you should use Java as it's way more supported and the debugging will work out of the box, well maybe. For iOS use ObjC. I hate ObjC myself and it pains me to suggest it, but all the samples are using it and you don't want to add the extra complexity of mixing ObjC with C++.
For the record I use C++/OpenGL/lua. I originally used Java to do BlackBerry development and later some Android and I loved it. The problem was I couldn't get enough platforms with it. Using C++, OpenGL and lua for scripting got me 95% shared code for Android, iOS and BlackBerry 10.