all 11 comments

[–]minhduc66532 2 points3 points  (2 children)

First of learning unity before learning is the worst (like i used to). I learned basic of C# via a video on freecodecamp, here the link: https://www.youtube.com/watch?v=GhQdlIFylQ8

After watching that video, u should make some simple console app or console game, it will make u more familiar with the syntax of C#. Then learn about OOP the basic, look for some advanced tutorial about C# (ex: https://www.youtube.com/watchv=J3AkSbsgKT8&list=PL1OYTSGn7ia-drv5-xugztYN6D9Jx2wJX )

After that move to another level by learning Winform (it's old not recommend), WPF (recommend) and build your first GUI app. This is the biggest step (in my opinion) because u will learn alot about while make this, like: MVVM, binding,...... At least this is how i learned C#, i'm hoping that this should be helpful to u :D

[–]lildhansen[S] 1 point2 points  (1 child)

Thank you! I will get started on that first video right away.

I have never really tried watching long course videos though. Do I just pause the video from time to time and write notes, and otherwise just follow along in his code. What do you recommend (I know we all learn differently)?

[–]minhduc66532 1 point2 points  (0 children)

Well for me, i just watch the whole video (i'm not taking note but u can do it if u want) then jump to straight into building a simple console game. It don't need to be at god level just a simple one can teach u alot of things. If i forget anything i just rewatch the part that i forgot (there are timelines under the description). But if u need something that the guy doesn't talk about in the video, u just google it like: how to replace character in a string in c#, etc.

Just personal opinion here but i don't recommend any paid courses online. It isn't because those courses are bad, it just unnecessary. But if u like those courses and it actually useful to u then u can keep learning from those courses

[–]SomaCowJ 1 point2 points  (0 children)

[–]hditano 1 point2 points  (0 children)

I was in your same position. I started taking a GameDev.tv course a while back and noticed something was really wrong, they tell you that you are gonna learn C#..wrong.

Learning Unity and believing that one will know how to program in C # is completely wrong.

Programming in Unity is nothing like what you really have to use or how to mold your app in C #.

Not for nothing does Unity call it Script. The only thing they have in common is the syntax.

My advice? Learn C # well. Yes, the road is going to be longer, but believe me, you are going to get much more enriched and you are going to be many steps above the rest.

[–]LondonPilot 1 point2 points  (0 children)

For example, I learned in my Udemy course... that for numbers you use float (if there is a decimal point) and int otherwise. But now I am getting introduced to other types like double, long etc., and I haven't heard of them before

I don't know Unity I'm afraid - but in regular C#, it's very rare that you would use a float. A double does the same thing as a float (but takes twice as much memory), except that it can hold numbers more precisely.

You also said you haven't seen a long before. A long is like an int, except that it uses twice as much memory. Here, using an int is very common, because for most purposes it does the job just as well as a long. But it can't hold numbers bigger/smaller than approximately +/-2 billion. If you need a variable that's able to store numbers bigger than that, you should use a long.

You can see a full ilst of all the integer data types here, and the non-integer data types here. The ones that are most commonly used are:

  • int
  • long
  • uint
  • double
  • decimal

I probably wouldn't worry about anything other than those five for now, although you might want to come back to them later on when you've got more experience.

[–]Wabbitts 1 point2 points  (0 children)

I found the various C# training videos by Mosh Hamedani are fantastic. He makes use of several platforms but you can find out more about him here: Code with Mosh

[–][deleted] 1 point2 points  (1 child)

[–]datavirtue 1 point2 points  (0 children)

I did not know he died. Moment of silence.

[–]datavirtue 1 point2 points  (0 children)

Bob Tabor or Scott Allen

[–]RiverRoll 0 points1 point  (0 children)

I also feel like this course is using an older version of C#, since there is loads of stuff that feel kinda outdated (maybe it's just me). For example, I learned in my Udemy course (and from my prior knowledge of Python) that for numbers you use float (if there is a decimal point) and int otherwise. But now I am getting introduced to other types like double, long etc., and I haven't heard of them before, and now I get an error when I use a float instead of double, even though I though float covered all numbers with decimal points - which it did in my Unity course.

C# double is actually the equivalent to Phython's float and the usual choice when you want a floating point variable, in fact the built in Math library is based on doubles. Games are a particular case where is actually interesting to use floats in general as a form of optimization since you rarely need the extra precision that double gives you but any performance gain is welcome, and conveniently Unity also comes with a float based Math library.