I find in programming, like in many creative disciplines, there isn't a singular Aha! moment but rather a series of them. One must continuously learn and work. The process is generally prodigious amount of toil and frustration for brilliant moments of elation and clarity.
The ability to do large projects comes from doing large projects. You can read all you want about project management and software design but until you are in the thick of it, none of that matters.
I became a much more liberated and free programmer when I accepted that all of my code is crap. In point of fact, most code is crap and in light of that I strive not to write good code but to write better code than I did yesterday.
In short, forget about worrying. If you want an idea of organization then read through the source of a large project. Better yet, start one. Think through the issues that arise as you try to manage a large project. You will fail, this is okay, good even. Learn through failure and don't invest your self in your code. You are not your code. Be proud of your success and toil but don't worry what others think. We were all bad programmers once and most of us still are.
Note: This is based on my personal taste and experience. I am a professional in the IT industry with over ten years programming experience. Not a huge amount I guess, but definitely not that shabby. Currently I am not a professional programmer per-say, but it makes up a large amount of my daily work.