Tak jak napisał to Dig, musisz pisać, pisać i jeszcze raz pisać. Inaczej się nie nauczysz programować. Najlepiej znajdź sobie za wzór jakiś program i spróbuj napisać to samo. Chyba, że masz jakiś konkretny pomysł na projekt to wtedy zacznij go realizować.
Odnośnie przeglądania kodu innych to zajrzyj na CodePlex. Jest to serwis do hostowania projektów open sourcowych stworzonych w technologiach Microsoftu. Jest tam bardzo wiele różnych projektów z różnym stopniem zaawansowania. Napewno znajdziesz coś ciekawego dla siebie.
Jeśli chodzi o książki to zaczynałem od "C# i .NET" i mogę szczerze polecić na początek.
Do wzorców projektowych na początek polecam "Head First Design Patterns". Książka jest bardzo dobra na początek. W łatwy i przyjemny sposób tłumaczy o co chodzi wze wzorcach projektowych. Jak już załapiesz podstawy to wtedy będziesz mógł sięgnać po klasykę literatury: "Patterns of Enterprise Application Architecture", "Design Patterns: Elements of Reusable Object-Oriented Software". Oraz trochę z nowszego wydania: "Microsoft- .NET: Architecting Applications for the Enterprise".
Odnośnie pisania kodu wysokiej jakości to polecam: "Code Complete".
Ogólnie ucz się programować. Język jest tylko narzędziem.