I just wanted to create a small post that could act as a starting point or reference for all those people seeking to embark on a career in programming.
We’ve all played games on our PC’s, games consoles or on the internet through a browser. Or perhaps you have used some applications on your computers to either get your everyday work done or just to pass the time 🙂 and hopefully asked yourself “How could I create something like that?" I bet many of you answer that with “I’m sure it must be quite tough!” or “that will take ages” or “I bet its boring :)”
Well, luckily a lot of people at Microsoft have been working hard to make getting into programming much easier and much more Fun! Many programming languages are either to complicated to get started and therefore you give up before you even begin, getting stuck just trying to install what the programming needs before you even get to write a line of code. Other programming packages are simply too easy and basic to be of any use. While others teach you some great fundamentals but then you have to learn a whole new language and way of doing things as soon as you change the problem you are trying to solve.
So, enter what I would like to call the ‘learning tools’
Small Basic, currently v 0.7 is a really simple application with just 15 keywords to get you started. What this means is that there are a few commands that will take you a long way towards learning the basics of programming like, sequence, looping, iteration and decisions with a very English, or more specifically, BASIC feel to the language that removes the need to learn a whole bunch of commands. Don’t be deceived, you can still create graphics, sounds, show images, accept user input, read the mouse position and lots, lots more! There’s a great document to get you started here. Inside there are nice examples of how to get used to using variables, reading user input, branching and the fun of looping to fill the screen with lines and text! Random number generators and the turtle also lend them selves very well to fun and creative a ways to use graphics and teach looping. What amazed me is the fact that you can also use Event driven programming so that you can respond to user clicks and other events and also graduate your code into the fully fledged programming language VB.NET. So if Small Basic is not enough to do what you planned, you don’t have to throw away all that code and start again, it will all be translated into a new project that you can extend and build upon.
The next free application that is great to teach fundamental programming skills is called ‘Kodu’. This programming tool from Microsoft Research teaches game programming using what’s called a Visual Programming Language or VPL. The idea behind Kodu is simple, let kids and adults alike create games quickly and easily for their Windows based PC or XBOX game console. There is no need to learn a programming language and ‘worlds’ can be easily created using either an XBOX 360 controller connected to a PC (wired or wireless) or using the keyboard and mouse with the latest version of the software. Designing the game is quick and easy without having to ‘code’ the User Interface, however there are some pretty nice features to help make your game very playable and enjoyable. Objects can be added to the world in various shapes, sizes, colours and with ranging features. What’s more, each object can be made to react to events, such as colliding with the games hero. The idea is simply ‘code’ using the gamepad, WHEN ‘something happens’ DO ‘something’, as you can see in the screenshot on the right. There are numerous start worlds that will teach you the skills to play and build your own game worlds, as well as to act as starting points for you to customize and make your own! Nobody likes starting from a blank piece of paper :) Kodu is currently in in Technical Preview, meaning it’s not quiet ready but it’s free for anyone to download from here and get started in the world of Game programming.
The next lot of programming applications need a little bit of skill and more determination to master, but as they say, ‘no pain no gain’. Having said that, the next two are based on Visual Studio and in my opinion it’s a great programming environment that not only helps you get started quick but also takes you a long way into creating complex business application, real time systems, desktop or mobile applications and even websites, all with one tool and one interface. Visual Studio is Microsoft's flagship programming product that come in various editions and versions. The latest is the 2010 edition that is still in Beta. Unfortunately, just for now, the two tools I will mention are not supported in this version but mostly likely will be when the product ships in this year. So for now I would suggest downloading the Free Express Editions based on the 2008 edition from here.
So if you are into game programming the first place to start is XNA Game Studio 3.1. This free add-in can be downloaded installed into Visual Studio Express to provide new game creation templates. Basically, what this means is that the Visual Studio will be the programming environment and the add-in will give you a starting point and framework to get your games up and running quickly, without you having to worry too much about things like the game loop, how to handle multiplayer games, making sounds etc. Here the developer uses C# to code events like collisions, paint objects to the screen and keep track of bullets etc with just a few lines of code to get started. The coder can use the power of Object Orient Programming to Inherit objects properties, methods and events so as to learn how to not only be a good programmer, but also how to save tonnes of time!! The XNA Creators Club has plenty of tutorials and resources to help you get your PC installed with all the great free tools and articles to read to help you on your way. The site also acts as a great place for the game creation community to meet, share ideas, ask questions, get help and even sell your games!
The last application I would like to talk about is Microsoft Robotics Developer Studio. Again this is an Add-on to Visual Studio, meaning that you have to have an edition of Visual Studio already installed to make this work. The studio can be downloaded for free from the here, and basically allows the hobbyist, academic and commercial developers to create robotics applications for a variety of hardware platforms. What’s great is that you can get into robotics even if you cannot afford to buy a robot, since the studio comes with a simulation environment that will help you get started really quickly. If you do have a little cash, then a good entry level bot would be the Lego Mindstorm, since these are easy to get hold off, full compatible to be programmed via USB or wireless! Again, you can use the VPL to quickly code the robots actions or you can use the power of C# to program a fully autonomous robot capable of reacting on it’s own to its surroundings via the numerous sensors available, such as sound, vision and touch. The robotic studio gives you the editor, debugging tools and simulators right inside the the Visual Studio developer environment.
OK, so that is my primer for anyone wishing to get started in a career to do with programming, whether you are just starting out or looking to make a switch. No body said programming had to be boring or un exciting! With all these great, free tools out there it’s just a question of finding the time to say, “What do I want to build today?”