alphadog said:
Totally agreed. C is a very useful for a game developer... eventually. But, deferring those "innards"-type issues to when one has begun to master syntax, algos, best practices and other basic development concepts is a good thing.
I guess, to use a swimming analogy, I think the ideal learning approach is one that lets a student start at the shallow end and work his/her way to the deep end, rather than throing them into the deep, shark and piranha-infested C/assembly end of the language pool. :)
I don't think that's a good analogy. Going from easy to hard (shallow to deep) is not the same as going from high level to low level.
A better analogy would be to compare it to other disciplines with high level and low level concepts. For example, it would more be like learning linear algebra before arithmetic.
Quote
I guess it would be interesting to hear what someone who had never programmed at all had to say. Personally, I don't think it would be a problem, though.
At my university, we are taught Java before anything else. There are many people that come to the uni without knowing any programming so it is their first language.
I can tell you that a lot of people get very confused with objects and classes. The most common misunderstanding is that they don't realize that member variables "belong" to an object. To them, member variables are global variables that any function can access. After all, that's what you experience when first programming in Java as you just have this one big class and when you have one big class, member variables essentially
are global variables.
They also don't understand the concept of instantiation because, again, in their first programs they just have one object, and they don't even explicitly create that object so they don't appreciate that it has been created, and they can't see the distinction between an object and a class.
This is not just blind speculation. This is what people go through, and it's all stuff that I constantly have to help people with. Of course, some people will "get it" quite quickly, but the majority struggle to grasp these high level concepts because they have been introduced through necessity rather than utility.