or am i better off getting a c# book and sitting down and making the boring console programs etc
With this attitude, you'll still be asking this question years from now.
Those boring console example programs teach you the fundamentals of the language and the basic concepts programming itself. You have to know these things to be able to make your games.
For instance, people always say that they want to make RPGs. Which is fine, but they think because they know how to draw a sprite on the screen they can suddenly make an RPG. Drawing is the last step, not the first.
RPG games have inventories. How do you make a class that will represent all your items? How do you store and keep track all those items on the character? How do you find the one you need? How do you check to see if a character possesses a required item? How do you sort them by type? How do you remove x about of item y? How do you swap items between characters?
The answers to those questions are learned when you make those boring console programs.
The programming behind a graphical game doesn't look any different than the programming behind a boring console program. When one is done it's update loop, it draws a picture. When the other is done, it draws text. Everything else is the same.