Suggestion for new course

I purchased the Unity 2D course on Udemy a few years back, and just now am jumping back in to restart and complete the course.

Going back through the new material, I’ve realized a course I’d LOVE to see come out of GameDev.tv:

A comprehensive C# course.

Though, with one major concept in mind which I’ll describe below… Please remember, this is just an opinion / suggestion, feel free to disagree.

One of the hardest things for instructing any type of material is communicating that material in a way which a beginner can understand. Since his knowledge is light years beyond the beginner with no coding knowledge, he takes for granted things which are extremely simple / obvious to him. No fault to him! It’s very difficult to create content on a complex topic which will be digestible to absolute beginners.

GameDev.tv, I’d LOVE to see a beginner C# course from you guys. Not one that has us copy steps with a challenge here and there, but one which explains every aspect of C# syntax, and has us try to build simple scripts and such using the syntax we know to that point.

For instance:

THIS part of the code Does THIS. Here’s the idea in depth.

And THAT part does THAT. And here’s that idea in depth.

And here’s the basic syntax needed.

NOW, how could you write a simple line of code which produces “X” result, based on everything you know thus far?

When I used to teach kids Scratch (albeit, a much simpler framework, though the idea relates well), I’d never walk them through an objective for them. I’d teach them concepts, and then give them a task which utilized those concepts we had just gone over, and they’d figure out the logic of the language / platform on their own, through trial and error (even when they would get stuck and ask questions, I’d come over and ask questions back, leading them to figure out their issue on their own). It was great, because at the end of each task, I’d have 20 different students who came up with 20 different answers on how to do the task. There was no “right” way to do it. And truly, it’s like that in coding. This developed the understanding of what they were doing. Which is repeatable. While if I only showed them how to do something , they’d forget and lose interest.

I could tell at a certain point in the last lesson (lesson 26), that we are missing that same discovery process I had with those kids in this course. It was when Rick gave us the challenge to create an array, and I had no idea where to even start . So I just defaulted to watching how he did it. I simply did not have enough information in my repertoire of understanding to continue with the challenge on my own.

Don’t get me wrong, Rick does a VERY good job at making certain concepts accessible. But there seem to be huge gaps in actual understanding as to what we’re doing and why doing something does what it does, and we’ll just end up copying what he’s done. So, we don’t have the understanding of what we’re doing. Great course! But room for improvement, for sure.

Show a student how to do something, they’ll copy your result, but forget it immediately.

Help the student understand what they’re doing, well, now they get to create for themselves.

Whilst this could be cool - there is already an abundance of quite good C# courses and books out there, and some really good ones too. I definitely think newcomers to Unity should do some extra coding on the side, I can relate to your post a lot - when I first discovered Unity I did try and follow along but I quickly found myself relying on courses and tutorials. This wasn’t really due to my lack of knowledge of C# per se, but more my overall lack of experience coding and thinking like a programmer, solving problems etc. My background and work is all in the arts so this stuff was pretty out of my depth at first!

What helped me was the book “C# players guide”, and also doing a bunch of challenges on websites like Exercism. Then making my own console apps and games. When I went back to the Unity 2D and 3D course it was 100x easier.

I think part of the problem with the C# primer section is that people probably rush through it wanting to get to the ‘fun’ stuff. When I learned slowly on its own I really took my time to spend days, if not weeks on certain topics, which really honed my understanding of the basic stuff (loops, arrays, data, etc).

I’ve been a rather slow learner at this stuff, but in doing things nice and slow I’ve learned so much which has helped me with making my own stuff and understanding things properly. (like going back and redoing basic high school math, trig, vectors etc).

1 Like

I really appreciate your post here! Really great to have some pointers in the right direction. I do still hope they make a specific C# course with the flavors I mentioned, since if everything was contained within the GameDev.tv brand, it would be so nice and convenient… A one-stop-shop! And I’m sure they’d appreciate the extra money and engagement.

Your comment is great, I’ll be checking out that book you mentioned and Exercism. Thanks!

Yeah that’s a good point re it being contained under one brand!

Yeah that is a really good book IMO with lots of good exercises and it’s skewed to have a ‘game’ feel even though it’s not really about game programming as you’ll see. One of the more beginner friendly books out there that still contains a lot of intermediate (and beyond) material.

1 Like

Hey just wanted to let you know… I bought the C# Player’s Guide right away when you suggested it. And ZOMG, wowwww, this is exactly what I was hoping for! The way he lays out the concepts is absolutely brilliant. Give you understanding, then offers challenges which put that understanding to practice. It’s so beautifully presented. I honestly can’t tell you how long I’ve been looking for a resource like this. I’m already about a third of the way through and totally addicted =]

1 Like

I’ve been working on a course of my own, a free presential course I’m planning to give here where I live, and the method you described is definitely one of the best to teach someone, but there’s an issue with it, in an online environment with thousands of students it can become really cumbersome, people will get stuck, even when copy-pasting people get stuck, but you can help them more easily because the teaching asistants can detect easily (sometimes) where the error is, but if everyone has different code, that would be a nightmare for everyone, you wouldn’t see the end of threads in these forums asking for help, you would need to hire like 20 teaching asistants or more, that’s not feasible.

Stoked to hear that. I felt the same way when I discovered that book too, it was a real game changer for me!

1 Like

I hear you that any way info is presented there will be pros and cons, however, in my opinion the most effective method is still teaching in such a way that promotes that sense of discovery for the student. Wrote memorization does not always ensure comprehension. Sure, people can copy and past the pythagorean theorem, but do they have the understanding of why it does what it does? One of my favorite quotes I heard from a mathematician went something like: The issue in modern math education is that we don’t teach students to understand concepts, only to memorize formulas and spit out correct answers. And that really sums up my point.
With any type of learning platform / method, there will be pros and cons, but when we consider coding, there won’t really ever be one exact “right” way to write a program. There can be measures of efficiency, sure. Personal preferences, yes. And I find the more I explore coding, if I can understand the concepts, then I have room to create, vs just trying to recall that line of code that an instructor demonstrated. The feedback on that book from people who have read it speaks for itself. People are hungry for that type of coding material. So much of the material out there defaults to “watch me create this program, and you copy what I do”, when the actual process doesn’t work like this anyways. When actually coding, we have an objective in mind, and we have concepts / tools in our tool belt. From there, we employ some critical thinking, and through trial and error (plus many google searches filling in gaps of what we can’t remember / don’t know yet within that language or platform) we discover our way to the solution.
You’re right, in that having this on a large scale presents its challenges. Though, I will always consider those challenges as worthy trade-offs to the more effective style of learning