You will need a lot of time and patience, but after a 5+ years, you should be able to program almost everything you wish (but be aware that the time needed to do it will still be in years).
5+ years, That's ridiculous. I started programming not much older than him and I picked up C++ in a year, a year later I was writing full blown 3d games in C++. My advice is skip C# and spend a while getting to know C++ and you should be able to program almost anything in 2+ years if you work hard.
I'd advise against skipping anything, especially a language like C# (Which is used almost everywhere today), It is however important to focus on one language to start with, which one isn't all that important. We usually recommend less obnoxious languages than C++ here to beginners but any language works, the important thing is to get started
. (Both C# and C++ are worth learning at some point and neither should be skipped)
The big mistake alot of beginners make with C++ is that they think that memory management is the hard part (It isn't, especially not in C++11, unless you start to muck around at a very low level to gain performance but then it isn't the language that is hard (C++ makes writing low level code reasonably easy)). I wrote my first 3D game using C++ and OpenGL without actually knowing C++, i thought i did, but i really didn't
(i violated the rule of three(The tutorials i used to teach myself didn't even mention it), abused C functions and constructs, didn't take proper advantage of the C++ standard library, made excessive allocations/deallocations and a whole bunch of other mistakes) and to be perfectly honest, i still don't really know C++ (Atleast these days i'm aware of my lack of knowledge)
The big problems with C++ in my opinion are:
1) Undefined or implementation defined behaviour. This is pretty much a minefield, C++ code that runs fine when built with Compiler X might act differently when compiled with Compiler Y or even a later version of Compiler X, I've used C++ for over 15 years now and still step on those from time to time, one of the moderators used to post a link to some C++ test that is pretty good for checking how well you actually know C++ (I don't know of anyone who has actually aced that test on the first try).
2) The whole C "compatibility" crap(which really isn't all that compatible anymore), while this isn't a big deal for experienced programmers(and might be beneficial in some cases since some of the C library functions and constructs have less overhead than the safer C++ versions) it is a huge problem for those learning how to program, doing things the old C way is extremely error prone and is one of the larger causes of security flaws in todays software and most C++ compilers doesn't even spit out a warning for you when you make those mistakes.
3) The online tutorials are generally pure crap which makes 1 and 2 far bigger problems than they have to be, a good book makes learning C++ properly
a lot easier.
Edited by SimonForsman, 23 November 2012 - 07:30 AM.