Getting started

There are lots of different ways you can teach someone to code - and you don't need fancy tools in order to do it.  I have done development on many platforms, starting with basic on an Apple IIe, then on to Unix, Linux, Windows, Mac, and some random platforms in between.  I an going to teach my clones to do dev on a Windows platform, as there are plenty of tools available, it's plenty open, and we can go pretty deep into messing up the system through code.  If you don't have a Windows machine, there are plenty of tools out there for other systems, but you won't find them here.  :)

On Windows, I like development with Visual Studio (, and there is a free community version for download that is perfect for getting started.  At the time of this writing I hadn't played with the 'Code' version, which is available on multiple platforms to create Cloud-based solutions.  So, for the sake of getting started, we will be using the Community Edition, and will focus on the C# programming language.  It's friendly, pulled in many of the lessons learned through the Java platform, and can be picked up on relatively quickly once you have established a few simple syntax rules.

If you are a purist, you can teach classic Unix-style development on Windows through an application called Cygwin (  This isn't just a text editor, but more-so an environment that includes many tools such as ssh to allow you to interact with multiple platforms, and a VI editor the same way you would find classically on Unix.  You will however need a compiler depending on what language you want to teach, and the bonus (or not) here is that there is no 'intellisense' - you have to learn not just the language syntax, but also the libraries.  For those who choose to venture down this path, you will simply need to download the C# compiler, and all of the work we are doing will still work for you... at least until we migrate to leveraging the integrated tools into deploying cloud and mobile solutions.  :)

Now that we've established the environment, let's get started.