стоит вообще начать не с программирования, а как минимум с проектирования.
начни скажем, отсюда:
http://rational.aplana.ru/methodology/rup.aspпоскольку современные методологии подразумевают объектно-ориентированных подход - то читай доки, а точнее книги -- сначала по созданию юзабельных интерфейсов, потом по ооп, паттернам проектирования, по рефакторингу. подойдет страуструп, банда четырех, и в частности фаулер. ссылки уже были в соседней теме, где обсуждалось ооп.