Many people start their developer journey with way to complicated things like game development without having mastered the fundamentals. That’s a huge mistake many beginners tend to make. It might seem very attractive to make an own game, but many people forget that developing a game requires a whole bunch of work and knowledge they don’t have when they start. And there’s nothing you can’t learn, but everything takes some time.
If you want to make the right choice and learn the basics of C# first before you mess around with things way above your level, feel free to continue reading.
Note
This article is applicable to all programming languages and areas. Only the linked sources where you can learn the basics of C# or some other specific parts vary.
Content
- C# basics before Unity
- How to start learning?
- The journey afterwards (practical experience)
- Useful resources
C# basics before Unity
As I already stated in the introduction, many people are attracted by the opportunity to develop their own game. Some of these people aren’t ready to spend some time actually learning something, they rather dive into unknown worlds without any previous knowledge. Soon, they find themselves lost and frustrated in this unknown world, overwhelmed by many issues and points they’re not able to continue from. Blindly copying code from tutorials isn’t the solution either. You can’t call an application yours if you’ve just copied code from a tutorial without understanding a single word. You also don’t learn anything at all by doing this.
Most programming problems come from not knowing how to use the language - if you don’t have much experience or you’re not confident about the OOP concepts for example in your mind, it’s useful to understand these before diving into the engine.
So, if you’re not comfortable with these fundamental concepts yet, please forget Unity for now. Focus on more important things, like learning these fundamental concepts. Messing around with things way above your level always turns out to be very overwhelming and you’re just making your life harder. It really makes a difference. Looking at a simple code written in C# before understanding the basic concepts is comparable to reading a language you don’t know at all. You don’t understand a single word.
After learning the basic concepts, you will feel like being reborn. It’s a totally different experience. You’ll be able to understand many things going on there.
That counts for every language.
All that is comparable to building a house or learning a new language.
You can’t start building a house with the roof!
How to start learning?
General tips
Take it easy. DO NOT rush anything. You’ve got time, there is no need for speeding up the process of learning. That could only result in a lack of knowledge in the end, which is definitely not what you want. There is one thing you should keep in mind…
Remember:
The goal is to learn it as GOOD as possible, not as fast as possible!
And that’s the spirit for this task. Always take as much time as you need. If you feel like you need another 2 weeks, take these two additional weeks. If you feel like you need more, take more time. You’re the one who decides what you’ll do and when you’ll be ready to do something. Take all the time you need. You won’t get far if you’re not willing to invest as much time as necessary in learning.
The rough concept of this process consists of a continuous cycle containing a few key points.
- Find a good course
The first thing you need to do, is to build a certain foundation of theoretical knowledge. Don’t worry, programming doesn’t consist of learning something by heart or spending hours learning some theory, certainly not. You just have to understand certain things before you can move on. There are plenty of good courses out there, you may pick whichever you like the most. I linked some of the courses I find useful for people who’re starting with C# down here .
Go through this course step by step and attentively read/listen through each part. Don’t rush through some parts. Every single part is important and you shouldn’t continue if you haven’t understood everything the previous part contained.
- Research unclear things
If you don’t understand something, no matter what it is, don’t hesitate to inform yourself about that. It is incredibly important that you understand every topic very well. If you think you’re not comfortable enough with this topic yet, ask Google first. Try to inform yourself online, there are plenty of sources which explain all these fundamentals very well and support the theory with a few examples. If you still don’t understand it after googling, feel free to ask someone. Don’t be ashamed of not knowing something. We were all once at this point. Always consider asking your question “correctly” as I describe in one of my previous posts "How to ask a question?" .
- Practise, practise, practise
Once you think you might be comfortable with a part, I’d suggest you open a new C# console application in the IDE/code editor of your choice and apply this theoretical knowledge, you just gained, practically. There is no more efficient way to get better at something than to simply practise this. It doesn’t have to be anything special at all. Just some kind of a playground for you to literally play with the concepts you just learned in theory. Most of the courses out there already have a few exercises and examples, so you can build onto that. Also try to get out of your comfort zone and try some new things. Don’t be afraid of making mistakes. There is nothing you can do horribly wrong.
Just practice!
The journey afterwards (practical experience)
You won’t be “done” with that in a few days, that’s clear. Programming is a continuous journey of learning and researching new things, developing yourself as a developer (and your projects). As already said, take as much time as you need. When you eventually come to the point, where you’re fully comfortable with the fundamentals of C#, pretty familiar with the concept of OOP (object-oriented programming) and you already have some practical experience with the console application playground, you may dare some more advanced things and small projects. Try to come up with some very simple project ideas, like some text-based games or a text-based calculator in a C# console application.
You don’t have to worry about fancy things like graphics or incredibly complicated mechanics, you should just get into the flow of using a programming language and actually having fun by achieving certain things.
After being comfortable making that, go a step further. If you’re interested in game development, try to make a “Pong” clone. If you use Unity for that, such a project teaches you some basic Unity knowledge and strengthens your C# knowledge even further. You can also add some own ideas and extend this simple game with a personal touch of individuality.
After that, the sky is the limit. Come up with cool ideas, extend your knowledge and most importantly, have fun!
Useful resources
As promised, here are a few resources which I personally find very helpful for people who are starting with C#: