Study Design patterns, follow the SOLID principles while working on some pet projects or even while solving a simple problem may be.
You will be amazed on the benefits you get out of these principles. You will be able to describe your entire design in few English words.
Speak to senior developers and get your class design reviewed, a little bit of "why do it this way" questions will help you a understand a lot of things.
Are there any such programs that have been successful so far ? Or what are the reasons behind failure of such programs ?
I would love to know more about this. Thanks in advance