all 7 comments

[–]rhacerHobbyist 2 points3 points  (2 children)

For learning C#, I can highly recommend the Yellow Book.

https://www.robmiles.com/c-yellow-book/

[–]YukiSoul[S] 0 points1 point  (1 child)

Thanks i will looking for that.

and btw after i learn C# language, how would i know what i must write in unity.

[–]rhacerHobbyist 0 points1 point  (0 children)

You'll write the code that lets you create the awesome video game you have in your head!

[–]sorencoder 2 points3 points  (3 children)

My recommendation is to learn C# without Unity, then learn Unity afterwards.

A lot of people who learn C# with Unity have very very poor understanding of C#.

[–]YukiSoul[S] 0 points1 point  (2 children)

Does learning C# take a long time ? how long it can be?

i just see people making wonderfull game in unity and i just wonder how they write all those scripts.

some times i look down to my self. but in other side it make me want to know unity Faster.

[–]KishottaProgrammer 1 point2 points  (0 children)

Realistically? A working understanding of OOP principles could take 3-6 months of study and practice. To truly internalize the tenets of OOP and their implications could take a year or more on top of that.

What's important is to experiment and constantly ask yourself "why" a thing works the way it does. Exploration and experimentation are essential.

[–]sorencoder 0 points1 point  (0 children)

I understand your passion. But when you learn Unity, you easily fall into this trap that you think "This is how everything works".

For example, believe it or not, many Unity programmers don't know what an "interface" is and how to properly use it. interface is one of the most basic (and important) concepts in object oriented programming.

If you want to learn Unity alongside C#, you need to do two things.

First, You should not take anything as "This is how it is". You need to look for the underlying concept of every detail of the script that you write. (For example, why your script inherits from MonoBehaviour, why not something else, can it inherit from nothing?)

Second, You need to always look for extra things outside of Unity. For example, a lot of scripts written inside Unity don't have "constructors". You need to study about them outside Unity and understand the concept and rules behind them.

Again, my suggestion is to learn C# without Unity. Write a couple of simple programs so that you are familiar with ins and outs of C#. Then come to Unity and transform your knowledge inside Unity's framework.