Microsoft: Seven ways to figure out this coding thing
So, you're wanting to learn how to code but not sure where to start? Or perhaps you just want to know what the fuss around computer science is about? Or is it that you know you need to help your students figure out programming? Here are some ways to get started.
1. Hour of Code
Hour of Code is exactly what it sounds like and is a perfect "first time" introduction to what goes into coding. With a super simple block-based approach, you'll go through a series of lessons that show you the basics of programming, all in under an hour. There are many different Hour of Code tutorials but our favourite (and one of the most popular) is the Minecraft lesson.
The Minecraft Hour of Code tutorial also comes complete with teacher resources including a lesson plan and where to go next. Hour of Code comes from code.org, who have a number of other tutorials you can use to build on the skills you get in the first hour, and also prepare you to introduce programming in the classroom.
2. Creative Coding through Games and Apps
Here at Microsoft, we designed a fantastic introductory course into the world of programming. Teachers can introduce students from late-middle school to early secondary grades to coding with the Creative Coding through Games and Apps (CCGA for short). While the main target is early secondary grades, it's an ideal way for you as an educator to jump in the programming pool as it not only gives you the lessons needed to learn, but also a complete curriculum package and a "prepare to teach" course to help you feel extra ready.
CCGA is one of many courses available through our institution offering, Microsoft Imagine Academy. Within Microsoft Imagine Academy, you'll also find official curriculum to help with other programming tasks that could be just right for you or your students. Find out more at Microsoft Imagine Academy and find Creative Coding through Games and Apps resources and training.
3. Touch Develop
There are many languages and ways of doing programming out there, and one of the most popular ways of getting into the spirit of things is with block-based interfaces. These take away the complexity inherent in classic programming languages by restricting you to building blocks that you drag and drop and do minimal text entry to complete sequences of actions. One popular entry in the landscape of coding blocks is from Microsoft Research, called Touch Develop. Used completely in the browser, you'll find tutorials and scripts to get you started, and it just so happens to be the language that CCGA uses too!
The next phase of block-based programming from Microsoft is already on its way. Known as PXT (short for Microsoft Programming Experience Toolkit), it has a similar interface to Touch Develop and other Blockly-based code editors but also allows you to switch between blocks and the code behind them to see how it really looks. It's already available for programming the BBC micro:bit, and is an open source project from Microsoft Research so others (you, maybe?) can contribute to its future. Find it here: Code the Micro:bit.
4. Construct 2
I make no secret of my love for games programming and creation. I think it's an excellent way of getting students excited about the world of computer science and it can be a load of fun at the same time. Construct 2 from Scirra is an excellent next step from block-based coding. It uses a familiar interface to many Windows applications and a simple method of building a game from the ground up through simple drag and drop and setting properties and conditions. In fact, Construct 2 (which runs on Microsoft Windows but outputs to all kinds of platforms) also shares common interface elements to more professional coding interfaces like Microsoft Visual Studio which is helpful later in the journey of learning to code.
There are many game creation tools out there and I need to note that I'm not saying Construct 2 is the best way, just one of the many great ways, of getting into games programming. All of them have pros and cons, like YoYo GameMaker: Studio which needs a bit more scripting knowledge, or Stencyl which is arguably less technical than Construct 2, or even CocoStudio's cocos2d-x which is based on the C programming language.
5. CodeCombat
Prefer to learn a language but don't know where to start? Websites like CodeCombat have created a game out of learning to code. In CodeCombat, you create a character and go on an adventure, with each little piece of the kingdom leading you further into the world of programming. You need to write actual code, but it walks you through the syntax and why things are done a certain way in such a fun way you'll probably love doing it. It's available in a few languages, with the very popular Python and JavaScript both represented.
If you're not into games-based learning as much as I am, you could also check out websites such as Codecademy, for a more straightforward approach. You'll still get a series of tutorials that build on each other as you learn to code, without the frills and fancy.
6. Meetups
Programming can be a bit of a wild jungle at times, and if you're doing it on your own, there will likely be times you get stuck, or are not really sure what would be the best way to solve a problem. Meetups are your answer! If you're old school like me, you might call them user groups, but it's effectively the same thing. Meetups are a way to meet in person with others who share your interest. And you'll probably discover that there are plenty of programming groups in your area. Go to the site, plug in your location and a good search term (programming or coding are a great start) and review the groups. In my example here, the top hit is a "Learn to Code Seattle" group with over two thousand members. Awesome!
If you don't want to find a user group in person, you can always opt for online. Code Newbie allow you to find a community of programmers that suit your own style and pace of learning. As a plus, you'll also find physical meet ups here to, for when you want to transition from virtual to physical meets.
Visit the Microsoft Educator Community is a rocking place online to find other educators doing the same thing you are in the world of tech.
Extra bonus side note: We have a Yammer group dedicated to Computer Science Teachers. If you're really getting into this whole coding thing and want to find like-minded educators who already teach coding, you should totally check it out.
7. Online courses
There are many MOOC (Massive Open Online Course) providers out there with varying ways of getting you through their multitudes of content. Many of them have beginner level courses on coding, and edX is one of the most popular destinations. Here you'll find online courses, many of them using video-based education coupled with activities that test your knowledge. Microsoft publishes a number of introductory courses on TypeScript, C#, jQuery and other programming languages that can be used to ease your way into programming. We also publish courses that are "programming-adjacent" like the well-received Data Analysis using Excel course pictured here.
edX is not the only option you have at your disposal. Microsoft Virtual Academy is a free-to-use resource for video-based learning and has many introductory-level courses around different technologies. Lynda.com, KhanAcademy, Udacity, Coursera, Udemy an Pluralsight all have introductory programming courses, so if you already use one of those websites for other types of learning, you should totally check them out.