What to expect from the course

What to expect from the course

This part discusses what you can expect from the course and what it’s like to learn to program.

Learning to code can be similar to learning a language entirely foreign to you, like Russian or Chinese.

At first, you don’t understand much, you can’t read, and you can’t express yourself. This is normal.

Because of this, it’s essential to set your expectations straight when taking a programming course like this one.

Learning to code to the point that you can do anything you want takes time and experience.

The three phases to learning programming

When learning a new tongue, you have to learn vocabulary, grammar, and expression.

In code, you have to learn syntax, existing code from other programmers, and how to combine them to make the computer do what you want.

Going from the very basics to solving many problems and creating your games takes at least five to six months of sustained practice.

Note that you will be able to achieve many things while learning. But you should not expect to be able to do absolutely everything you’d like.

There are three phases to learning to code:

  1. You will first need to copy code and combine small building blocks for learning.
  2. You’ll start to tinker with existing programs as you improve. This is the modification stage.
  3. When you’ve done this enough, you’ll be able to create complete things from scratch.

An engine like Godot allows you to get results long before you understand everything. In this course, you will get results quickly as we designed practices and toy programs for that purpose.

Learning to code games is difficult

Game development and programming, in general, are complex.

It is normal to face errors and get stuck, even more so initially.

Professional developers face errors all the time.

Unlike what you learned at school, errors aren’t harmful in programming: they’re a learning tool.

Errors are messages prepared by experienced developers who anticipated that you would make this mistake.

They are here to help, and you want to embrace them early on.

I don’t mean to say that errors can’t be frustrating.

Programming involves a lot of problem-solving, so it often takes multiple trials before resolving a bug or figuring out how to code a game mechanic.

You have to learn to enjoy the process of solving problems. As you practice code, you will gain patience with those things.

Note this is not like solving math problems. Programming is much more creative.

“This is not real code”

People commonly critique tutorials and programming courses for not presenting “real” code.

By that, people mean that tutorials generally do not use the same code as a commercial game project, or that they can’t use the code as-is in their game projects.

There’s a good reason we don’t show you production code in tutorials.

The code of complex programs is terrible for learning

If we tried to teach you to code as in a big game project, it would be overwhelming and discouraging.

Actually, production code is often not good at all.

You wouldn’t benefit from it. It’s quite the contrary. Looking at actual production code hurts your learning initially.

Games can get highly complex and have tight production constraints. Because of that, their code gets messy.

Your typical commercial game’s code structure could look something like this.

The code grows in many directions to handle many issues, some caused by the code itself. Even for an experienced professional joining the team, just making sense of a large project can take days, if not weeks.

You only want to explore this kind of code when you already have quite a bit of experience.

Tutorial code is real

There’s no such thing as “fake code” if it gets the job done.

The code you see in this course is real if it works as intended and gets results on the screen.

Yes, you often won’t be able just to copy the code from a tutorial and directly paste it into your project.

But you won’t be able to do that with large projects either, because computer code is highly contextual!

Every project has different needs and needs different code.

Programming is not about following recipes

We need to debunk one last myth: you can’t follow recipes to make good games.

Rather, programming independently is more like how great chefs cook: inventing recipes, learning how to combine ingredients on the fly, and working with what you have.

You will always have to adapt what you learn to your projects. This is true for you getting started as much as for us after years of programming professionally.

Summary

In summary, you should expect that:

  • It will take you time to learn to code.
  • It’s normal to get stuck at times, and errors are a good thing.
  • Learning to code is like learning a completely foreign language. At first, you won’t be able to turn all your ideas into code.
  • You will get results along the way, and we will do our best to make your learning experience interesting.

This course tries to get you through all three learning phases, modestly: copy, modify, and create.

The course will not precisely cover those six months of sustained practice* we say you need.

But we want to give you everything you need to create simple games on your own.

After finishing the course, you should have everything you need to gain experience with the massive amount of resources out there. We’ll also give you a path to keep growing.

The following few guides are quick how-tos to use the course platform.

* Note that six months is a rough figure and depends mainly on how much time and effort you invest into your practice.

Godot