Best way to learn to programming with csharp in terms of unity

I don’t know where to look to learn how to use csharp,

I was wondering how everyone else learned to use it to program games?

You have to distinguish three things here:

  • learning how to program in general. This includes basic concepts like flow control, OOP and some basic understanding how a computer works. This is all completely undependent from the language you’re going to use. Concepts, logic and the actual hardware work the same way (or at least almost the same) in all languages.
  • second is to learn the language of your choice. A language consists of vocabulary and syntax rules (grammer).
  • Finally you have to learn APIs that you might need. In the context of Unity that includes what Unity does provide to you. So basically if you look at this page for example there’s a list on the left side of the page. It lists all classes that Unity provides to you. Each item has a documentation page which explains briefly what each class does and what it provides. Note that there are also APIs which seemingly belong to the “language” which is actually not true. The actual vocabulary of C# is rather small. For example classes like the generic List class is not part of C#, it’s part of the Mono / .NET framework.

Now comes the real problem here. Depending on how much experience and knowledge you have, the first point alone can take years to actually get comfortable with. If you’re willing to spend a lot of time of intensive learning / reading the most important things can be learned in a few weeks or even days, however to get an advanced or professional level it takes a lot of time. Experience can’t be gained over night. Certain problem can only be understood when you actually encountered them.

If you have at least a basic understanding of general concepts like what is a datatype (int, string, class), what is a control structure (if, while, for), what is a method / function, you should already know about 30% of what makes up the C# language. The key is always reading and studying, all the time.

I started programming with my dad at the age of 11. Now i’m 33 and i learn something new almost every day. If i’m not learning something new at least i get more confident in even the most basic things by using them over and over again and by just thinking about them. I often think about problems while lying in my bed.

TL;DR: There is no best way to learn anything because it highly depends on you, your favourite learning methods (reading, hearing, doing, …) and what you already know. Generally when you have already worked with any programming language, learning another one becomes much easier. The more languages (preferable very different languages) you know the easier it gets to pick up a new one since as mentioned above 90% is usually the same / similar.

Thanks for the answers! It was really in depth.

In regards to the first part im pretty much covered but the fifth point is pretty much me at the moment, thanks for the help!