We're fast approaching the autumn release date of Windows 8 (at least the weather makes it feel that way), which means the entire world will soon be subject to Microsoft's advertising campaigns and a whole host of new tablets.
Love it or hate it, Windows is very much at the top of the operating system hierarchy, with 90 per cent of the world using it in some form or another today. That's a whole lot of users just waiting to buy apps from the Windows Store, meaning there has never been a better time to start developing for Windows.
If you're interested in getting into app development, but just don't know where to start, this guide's for you.
Download Visual Studio
In order to start developing Metro apps for Windows 8, you'll have to download the latest preview of Visual Studio 2012 for free. Visual Studio comes in many flavours, with the professional versions costing an arm and a leg. Fortunately for you, the free Express version will probably do everything you want if you're just getting started with Windows 8 apps.
It shouldn't take too long to install -- the download comes in at under 400MB. Once installed, you should take a good look around and get used to all the settings and options available to you. The chances are you'll need them at some point in the near future.
Pick a language
So you've installed Visual Studio and had a look around to see what's what. Now it's time to decide which programming language you want to use to create your killer app.
Metro apps can also be written using conventional programming languages, such as C++, C# or Visual Basic. If you've ever programmed in Java before, you'll find C# to be very similar and it won't take long at all to get to grips with the syntax of the language. If you're using one of these languages to program the application logic, then you'll use XAML markup to build the interface.
If you've never programmed before, I'd recommend that you start with C#, as you can then progress to other similar languages such as Java. It's also a good stepping stone if you want to go on and learn C++ in the future. It can be quite daunting programming for the first time, but don't worry, there are plenty of resources to help you on your way...
Whether or not you've programmed before, decent resources are priceless when you're getting accustomed to a new language or environment. Although there are many good online resources available for free, sometimes you can't beat a good old-fashioned programming book, so I'm going to go through a few of both to get you on your way.
If you're planning on developing your Windows 8 apps using web development languages such as HTML5 and CSS3, there are two good books, both published by A Book Apart, that I've used myself and would recommend to anyone.
The first book, by Jeremy Keith, is called HTML5 for Web Designers and is available as an ebook here. At a mere 87 pages long, this isn't a title that you'd recognise as a programming book. In fact, it's a far cry from the 1,200-page Java book that I have sat on my shelf right next to it.
HTML5 for Web Designers takes you through all of the key features of HTML5 without overloading you with information. You'll find chapters on implementing different types of media, semantics and other additions, which play a prominent part in the latest version of HTML.
Of course, being an HTML book, this title is aimed at those developing for the web, but a lot of the techniques discussed will translate well to Metro development too. If you'd prefer to use a free alternative, HTML5: Up and Running by Mark Pilgrim does a great job of taking you through all that you need to know about the language in a browser-based book.
Another book I'd recommend is the title that follows on from HTML5 for Web Designers. Predictably, it's titled CSS3 for Web Designers, and it's written by Dan Cederholm. At over 120 pages, it's more substantial than the HTML5 book, and will introduce you to lots of elements present in CSS3.
For those planning to develop apps for Windows 8 in C#, there are more resources and books than you can count. A quick search on Amazon will bring up dozens of titles, each claiming to be the best available.
If you'd like to buy a physical book, Herbert Schildt's C#: A Beginner's Guide will be a good place to start. Although I haven't read this particular title, I have read a number of Schildt's other books in the past and they've all been excellent.
A good, free alternative is a website called C# Station, which, although in dire need of a facelift, will take you through lots of code examples and will get you used to the syntax of C# really well.
Finally, the Microsoft Developer Network has a lot of tutorials that have been written to help you not only get to grips with the different languages that you can use, but also with the Metro design process.
Hopefully, we've been able to give you a good idea of what you'll need in order to begin programming for Windows 8. Of course, there are more resources available than I could ever list, so if you have your own particular favourites, please don't hesitate to put them in the comments.