<div class='quotetop'>QUOTE(GrimFang4 @ Jan 16 2007, 07:45 PM) [snapback]275209[/snapback]</div>
Quote:
It took me from knowing absolutely nothing about programming about two months to learn how to make and then make a functional game using C++ and SDL (Simple DirectMedia Layer), and this was during a full-time job!
[/b]
|
Perhaps the speed of your learning was possible because you knew nothing about programming, rather than in spite of it. In any event, a quick search of Google and Usenet would reveal that 2 months is extremely atypically short, to learn to program in C++.
OOP (which is what C++ is for) is a method of thinking they're teaching these days to anyone who expresses an interest in learning how to program. The structure of university courses teaching computing and IT-based subjects is strongly centred around getting students used to the idea of using OOP. Whereas in my day (the days of DOS) it was considered something extremely extraordinary that I was a schoolkid who knew how to use BASIC inside and out, and could handle other computing tasks, when other kids struggled with the concept of "booting up" a PC. Traditional line-numbered BASIC uses a completely different thought process (procedural programming) which is nothing like your OOP. In my experience, people have not become any brighter since the 1980s, but the environment has changed and educational institutions are not indoctrinating people with systems of thought and methodologies for which certain existing industrial conveniences, like C++, are already well-suited. It's fine because if you now consider that the students are to be considered objects belonging the class IndustrialProduct, but the new students might be less adaptable to other programming approaches. Realistically, few of us here will be going into the games development industry, so there is no value in the industrial standard (i.e. using C++ so that code is easily maintainable and programmers more replaceable). Also, would McProgramming students be as suitable as myself if they were forced to deal with assembly language programming and had their high-level tools taken away? I really doubt it.
You are a university-level physicist and certain concepts such as discrete mathematics are naturally a piece of cake to understand for you, but they might not be to the hypothetical "complete newbie" who might be a kid or someone who just likes to have a smoke/drink and play Sonic after work, and then one day has a brainwave and becomes enamoured with the idea of making a cool game, and doing a better job of it than the pros. But that person would be able to prepare their game pretty fast and without doing any study on the obscure formal syntax of a programming language, by taking advantage of what's there.
I chose a non-science and non-computing path in my formal education, so what I now know about non-OOP C programming and OOP programming concepts is entirely self-taught and self-directed. OOP is doctrinal, and as someone who has ploughed through Randall Hyde's book it also seems to be an unrealistic representation of what's going on under the bonnet. If you're resigned to using such a high level of abstraction as C++ or Perl or Java, as well as other people's extensive free dev libraries such as SDL to build your game program, what's the big difference with using a Rapid Application Development tool? It's progress. If you prefer C++ and it's the fastest way for you to get things done, continue to use it by all means. But it's not right to recommend it for beginners because your situation is for the reasons given atypical. Whatever you use, it all turns out to be zeros and ones.