Most of the time, it's not what you know, it's who you know. I've had countless jobs that require experience and qualifications where I had neither, but got the job because I knew somebody that worked there.
Here's a fact of life: getting a job is a vicious circle; employers want experience, but you need to become employed to acquire experience.
Zereo summed it up well. Businesses are a delicate thing where every choices management makes can really hurt the financial flow. Hiring the right candidate is part of those choices, and more then technical skills make a good employee. Experience with solid references employers can check will make those manager feel more confident that you will be a good and ethical worker. (don't call in sick once a week, or say something rude to a customer that is about to invest $$$ in that company, etc... ) In the past, I've fired an accountant because he couldn't use a phone with multiple lines and was an idiot talking to important customers. He had the ability and understood A/R and A/P inside out. But he lack too many other "life" skills too be useful.
You wish to become a great programmer and already consider yourself possibly there. I wont expect you to, or ever, understand how a business flows, as there are other "experts" within a company which worry about that. However what you need to know is that their decision is a logical decision and it is often not based on just one thing; (Like your programming ability for example), but based a large amount of factors in which you will learn as you grow older. Its impossible for a 13 year to be there, it defies all logic, it would mean you started defining your resume when you were born...
And you do this , mov eax, 0, instead of return 0, because you think assembly is faster. You must not realize that C++ is compiled into assembly language. And if you want to be more efficient, then you would use xor eax, eax, which is what a compiler will generate with optimizations enabled.
It is funny, because xor eax, eax on modern CPUs executes exactly the same as mov eax, 0 (only because CPUs are smart to guess xor eax, eax is a special case; if they executed xor by really xoring the register, it would be slower than mov). The only difference is, xor is *shorter*, so it takes less code cache, so it is preferred.
Anyway, experienced coders leave such optimisation tricks to compilers. Experience not only helps you solve hard problems, but also might save you solving some hard problems by yourself. So actually an experienced coder might be much more productive, than smart, but inexperienced coder, spending a week of work that could be done by the compiler / library / etc. That's why experienced are usually preferred over smart. And top level companies need both experience and brains.
I think it's much more important to learn the design patterns and standard library for a language than anything else - if you know the design patterns and standard libraries, you can easily Google search or ask for help with small compilation issues or syntax questions.
An Advanced Programmer is one who is familiar with the design patterns and libraries needed to accomplish a task and knows how to detect code smells and react to them.
In many cases, that means you need to be very good at creating, managing, and thinking in abstraction layers, which requires generally high intelligence.
From my own experience:
In all my programming experience, the one thing prior experience does not help me with is making the touch calls about whether to go for ideal programming design or to go for the most practical, short-term design. An ideal design will be constantly refactored, whereas a practical design will be used and used up, and require major work to continue use.
If there is one thing that experience has always taught me, it's that you shouldn't do something just because you can or because it's cool - you need to weigh the advantages and disadvantages of every feature you add, because finding the balance between ideal design and practical design is the most important aspect of programming.
I agree LB that is why I always recommend every programmers after they get the basics of C++ down to buy Effective C++ (both 55 ways and the 35 new ways) and Effective STL which all three are by Scott Meyers who is a genius in my opinion. These books show you some very very helpful ways to improve the way you code. They have helped me tremendously and if I didn't read them I would probably still be struggling with how to make a full program.
It is one thing to know all about C++ and what everything does. It is a whole different thing to be able to effectively use and combine all that knowledge into a working program. And only experience can teach you this.
First off let me say I don't believe the OP is able to "hack" anything other then his own computer and definately don't believe he can break into anything government related.
With that said I found it quite amusing that in that post you just posted he think he is immune from any large trouble when it comes to "hacking" a government just because he is 13.
Here is the US if you are found to be a terrorist (Or even they believe you to be a terrorist) which is what cyber warfare against a government is. They don't need a warrant to come get you, they don't need to charge you to lock you up, they can send you away for a very long time without any evidence even if you are 13, and hell they can now even bomb US citizens with drones if they believe you are a terrorist (Which they already have done).
So my advice to the OP is DON"T GO ANYWHERE NEAR TRYING TO HACK GOVERNMENTS