03.our-approach-to-teaching-code

Our approach to teaching code

This page is optional. We wrote it for those of you who’d like to understand how we approach teaching computer programming and why.

The root problem

We design every course and new format in response to our students’ problems.

Countless beginners expressed their frustration over the years as they were looking to learn to make games with Godot.

Many teachers believe that a game engine is too complex of an environment to learn well, and we used to be part of them.

If you teach a game engine straight away and move quickly, it’s overwhelming. Your typical step-by-step tutorials often have this problem.

In the past, our approach was to invite people to learn Python first and come to Godot with programming foundations already.

Coding games is challenging but fun

Learning to program is difficult. Learning to code games is even more difficult as it involves coding the mechanics, audio, art, performance, physics, and much more.

In theory, it’s too much to take on all at once if you’re just getting started.

However, you never have to tackle it all at once: you can always break down the complexity.

There’s a lot to learn, yes. It’ll take you time and practice before you can make your game.

But at the same time, you’ll get visual results early on and be able to share them with people around you. In this case, the motivation boost makes it worth embracing the complexity.

The problem with most tutorials

There are a couple of ways in which most game programming tutorials leave beginners on the side:

That’s in part because tutorial-makers tend to be young and inexperienced developers. Many teenagers and young students make tutorials as they learn the fundamentals themselves.

Also, many make tutorials as a way to get visibility or to make a quick buck. They don’t particularly like to teach and tend to stop after a while.

The last reason is education is time-consuming and often undervalued.

How we can do better

The following video exposes the problem, our mindset, and how we can help in greater detail.

Click the image to watch it on YouTube.

We dove into research on how we learn and memorize things for this course.

We’ve also been looking into user experience design: a field concerned with making your experience smoother by listening to your needs and feedback.

We use it more and more in the industry to make games more engaging and easier to learn. It turns out we can also apply its methods to education.

Instead of teaching with only step-by-step tutorials, we want to cycle between:

Rather than just using videos, which aren’t great for learning to code, we want to use all the tools at our disposal to help you learn more efficiently.

If necessary, we will create new tools, like the GDScript Learn app.

We make the learning part smooth and exciting with short lessons, concrete exercises, and many toy programs.

More importantly, we figured out a couple of teaching principles to ease your way into code:

I hope this helps get a sense of how we approach teaching in this course.

How you’ll learn

To become a game developer, you can’t just follow step-by-step recipes. Tutorials can be a nice stepping stone, but they’ll never make you an independent developer.

Game development is a creative problem-solving activity.

As a game developer, you think of a game you want to make, its mechanics, and you figure out the code based on your skills.

Please always keep in mind that your goal with this course is to build those necessary skills. And to build a skill, you must practice.

That’s why only you can turn yourself into a great developer, through deliberate practice.

That’s why the focus in this course isn’t on step-by-step tutorials. We’ve made hundreds of them over the years and know their shortcomings all too well.

Instead, you’ll learn this way:

In the next lesson, we’ll talk about what you should expect from a programming course like this one.