When it comes to learning game engines, there is not a definite path to go down.

Some people like learning the programming languages this way, some people like learning that way.

Some like following tutorials and not focus so much on code. Some don’t even code at all and either use a Visual Scripting tool or hire people to do it for them.

Everyone says their way is the best, but the truth is that everyone learns differently – what works for me might not work for you.

There are so many ways that you can learn and get started with programming in Unity that i cannot cover all of them. I can, however, provide simple explanations to what i believe are the most effective methods.
These methods are generic, and can probably be used in pretty much every engine you’ll be using, not just unity.

Method 1

Getting familiar with the engine and learning as you go to suit your needs.

With this method, you won’t be learning the programming language specifically. You will be building your game and learning how to write the code for your it as you go. Need feature X? Search for implementations on Google, Youtube, StackOverflow, ask on forums, until you find a solution. Lots of times, people will give you advice on how you can improve your programming and that will help maintaining a clean and easy to use environment.
This method will often lead to writing “ugly code” – since you’re not learning the programming language and its best practices, chances are there is a more effective solution to the problem you’re facing.

Method 2

Learning the programming language you’re going to use and applying it in the engine-specific environment.

In Unity, it’s recommended that you use C#. With this method, you’d see yourself using Microsoft’s tools to learn the language, its best practices and most used conventions and then bringing that C# knowledge over to Unity and adapting it to fit the engine. This method is the most difficult and is often considered scary, because it has you learn the language and then it has you learn how to adapt said language to the engine, giving you a larger amount of work compared to the one you’d have using the other methods described here.

That being said, if you have never learned a Computer Language before, this may be a better route for you. Sometimes tutorials that pair C# and Unity can rush through the basics, which will be confusing if you don’t know programming fundamentals.

Method 3

Learning the language in the context of the engine you’re using.

This was the method that i personally used to learn C# and Unity – it helped me to know both the language and the engine-specific adaptations. Although i had some prior contact with C#, this method does not require it. Pick up a C# Unity tutorial and learn how the code functions, its main elements and how those elements and those functions interact with the environment it’s in. As time goes by, you’ll see that you picked up enough knowledge of the language to use it in another framework and that you already know how to handle it within the engine.

9 Curated Resources

In this tutorial series you’ll find what you need to build a simple 2D platformer – You can adapt the results and make it into your own game. You can always just follow the tutorial, but remember that in order to learn you need to experiment and leave your comfort-zone.

This playlist covers the basics of programming C# console applications. It’s the perfect way to learn C# and the tutor is very good at explaining. All prerequisites are discussed in the first video. After going through this playlist, you’ll find programming in Unity much easier.

One of my favorite teachers, who is very clear and concise. This is a playlist with 26 episodes that covers both Unity and C# programming.

This course is a bit more beginner friendly towards new coders. It has 13 hours of video content where the teacher helps you learn C# as you build Unity.

[Method 3] Unity C# Beginner Tutorial

free, YouTube Playlist

This tutorial series by GameGrind covers the basics of C# Programming inside Unity. It was here that i started learning Unity. It may be a bit outdated, but the main concepts remain the same and it will certainly get you on the right path.

[Method 2] TeamTreeHouse - C#

, Interactive Course

TeamTreeHouse is a paid subscription platform to learn almost anything possible in Computer Science. Don’t subscribe just for this course I linked – but if you think you’re going to want access to a ton of incredible material, definitely consider subscribing. At the least, you can get a free trial and probably finish this course I linked. You definitely notice a difference in quality when investing in a platform like this.

A 35 part series that walks that covers terrain, animation, GUI, Weapons, Enemies, Weather and more. Really not too much programming in this one, so it’s a good way to get comfortable with the interface.

[Method 2] TutorialsPoint - C#

free, Reference Sheet

This is less of a course and more of a really detailed reference sheet that you can always look back to if you forget a part of C#.

[Method 2] LearnCS.org - C#

free, Text-based Course

This website covers all the fundamentals of programming using C#, and assumes absolutely no prior knowledge. If you prefer text over video courses, this is one of the best ones for you. It also has a web editor built in to code in!