Trying to introduce someone to programming? Your kids are interested in code, but their school doesn’t offer any resources? Maybe this can help.
Short Form
In short, check out these two “Hour of Code” experiences:
And after that, move on to Unity:
- Beginning Game Programming with C# on Coursera
- Creating a 2D game with Unity
- gamedevmentor on reddit for finding help making your first game
Long Form
Visual Programming
Code.org has some visual programming tutorials that run online so they’ll be easier to get started on than trying to get MIT Scratch running on your PC:
They have Flappy Bird, Frozen, and Angry Birds themed tutorials that work in the same way as my introduction to programming: you write code to move a character around a level.
These Scratch tutorials are part of Code.org’s “Hour of Code” where they worked with other online learning centres to create student’s first hour of programming. Code.org has a big index of tutorials here: https://code.org/learn
Scratch is visual programming which is great for kids and people first getting into programming, but visual programming isn’t used by professional programmers because the mouse-driven interface isn’t very efficient. (Although sometimes it’s used by game designers like in Unreal Engine.) There are other options for learning more traditional programming.
Textual Programming
Khan Academy has a big interactive traditional programming syllabus and has an Hour of Code offering with lessons and challenges. The lessons try to explain how to think about writing your code instead of just copying the teacher. They’re more advanced and use JavaScript which is a commonly used programming language that’s closer to what I use at work: Khan Academy’s Hour of Code
Khan Academy also has a parent’s section to help you understand what it’s all about.
Learning Through Play
There’s also a game you can play by writing code to control your hero. It’s like the Scratch examples, but you have the choice of several real programming languages. Python and Lua are commonly used in game development. It’s called Code Combat.
You can play Code Combat for free, but they have a $10/month subscription that gets you more levels. I think once he’s finished with the first 80 free levels, he’d be ready to move on to making his own games instead. To stick on the free track, skip the levels that ask for a subscription (the blue stars).
Online University Courses
There are also online courses from universities. I’ve taken courses with Udacity, but there’s also Coursera and edX. These courses will probably be more advanced than most of the above. Here are two Python courses (Python is a great introductory language because it looks close to English, but still follows typical programming patterns and form):
Here’s a course for programming in C# with Unity (most game development studios I’ve worked at build tools in C#).
Unfortunately, the quality of the courses on these websites varies a lot. Some are really interactive and some are just videos from lectures at the universities. Depending on the popularity of the course, there may be many classmates who will want to discuss the lessons. I think they all have an online question and answer systems.
Summary
Code Combat (to encourage learning through play) or Khan Academy (for a lesson-oriented approach) are probably a really good start, especially if the Scratch stuff seems too easy/simple.
From there you could move on to more advanced Khan Academy lessons or Unity. Many commercial games are made in Unity and it’s free until you make a game that makes $100,000 in revenue or funding per year.
I played around with Code Combat and it seems like a fun way to get started. I think eventually it will teach branching logic, looping, variables, and other important elements of programming. After getting those fundamentals, Unity is the easiest way I’ve found to make a game, but it requires actual programming. (I used this tutorial I used to get started in Unity.)
Most of these courses will require the newest version of your browser to work correctly. Check here to check if your browser is up to date.
Enjoy your adventures in programming!