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.
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:
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.
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.
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.
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.
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.
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.
In summary, you should expect that:
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.