The first thing that jumps to mind is "Why are you forcing your self to do
this?". Which I won't address, but it might be something worth seriously asking
your self. If you don't like it, why are you wasting the cycles?
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.