For you guys that learned C# on the internet alone, what was the most efficient way for you to learn? Youtube Videos or reading an ebook? And I wouldn’t mind if you recommended me a book/video tutorials.
PS: After learning how advanced would you say you are with C# now and how hard was to use it in unity?
I have learned C# from internet by myself as you said. Also There are coder friends in my day job which are helping me sometimes. I am watching unity3d learning videos from offical web page. Also i am buying full game prototipes from asset store. And looking at their codes.
The real problem is not just learning the syntax (how to write a code), its how to design your code. How you manage the classes… So the starter kits and game prototipes are usefull in this way.
I have no idea what the best place would be to learn C# as your first programming language.
My experience can be considered ‘adulterated’ in the sense that I learned basic c++ first. So I got the hang of OOP beforehand. When I started using Unity and then decided to go with C#, I found microsofts official c# site the most useful.
Self internet-taught C# programmer here (with very little programming background of any sort before then). Just wanted to chime in and say dotnetpearls is awesome, as is MSDN. Between those and StackOverflow I can usually find what I need.
The biggest thing for me is just to not stop learning and to not limit my education to what I know I need to learn. The biggest ‘aha’ moments have come from things I didn’t know were available to me. To that end I keep an eye out for cool open source projects all the time and poke through their code to see if anything strikes me as particularly elegant. I also try to keep up to date on common patterns and code smells.
Resharper has definitely helped me become a better C# programmer as well by pointing out helpful things (though for game development you don’t want to blindly follow it’s advice or you’ll end up with LINQ statements creating garbage all over your code base. I love LINQ for infrequent things, but shy away from it for anything I do repeatedly and often). I’ve got two programmers working under me now and I try to find ways to make learning new techniques just as interesting as developing results (so that we have better programmers working for us a year from now at the cost of a little productivity each day).
I subscribe to http://www.safaribooksonline.com/ for $10 a month. Get full professional quality books on pretty much any technical subject you can think of including C# which gives you the solid foundation, then youtube/google after that.
The book I used initially on there was the O’Reilly ‘Programming C# 4.0’. There are also a number of Unity specific books on the service but can’t say I have actually read them as I find Unity’s own docs section quite good.
Then you can complete this video course, here. On this course, you can safely omit reflection and event chapters. You want to watch the delegate lesson, several times(yes not once,sir )
For event, this is the best tutorial for unity developers as of I know.
You probably would not resist yourself for LINQ, this is best resource from beginner’s perspective.
You also want to learn co-routine. Attention, DO NOT GO microsoft’s site at first for co-routine. [it is best if you complete here all 8 pages of unity documentation though] For co routine, you should at first read this. Then this. For full explanation of these beast, you can check this answer too.
When I wanted to learn Objective-C, I watched all the lectures from the Stanford iOS programming course. I accessed it through iTunes U, but there are lots of different places to find on-line university classes. It should be possible to find an equivalent C# course.
You will be able to follow along a professionally developed course with assignments along the way and introduces topics gradually in the order you can understand them in. Usually there are assignments and other people following the course who can give you feedback on them.