Game Development Community

Game Institute

by Willbkool · in General Discussion · 12/23/2003 (2:14 pm) · 13 replies

I was thinking about taking some online courses from the Gameinstitute.com.

Does anybody know if they are worth my time?

I've taken a C and C++ course at my local uni, but thier intermediate and above classes are all in java. :(

I have several books, but I like the structure of taking a class.

#1
12/23/2003 (3:38 pm)
A few people I know have taken various courses there. The consensus seems to be that overall it's a pretty good place, but there is some variation in quality between the courses themselves, with some being very good and others just being mediocre.
#2
12/23/2003 (5:33 pm)
One thing to watch out for is what "kind" of C++ they are teaching, I have seen books published as recently as Summer 2003 that still have the majority of the code samples that are not ANSI C++ and they are promoting enum hacks and all kinds of other non-sense. School classes ( at least in the US ) are notorious for being 12 + months behind the "real world" in the software field. I see lots and lots of code on the web that is example code from different universities that still promote void as a valid return type from main()!

Do some independant research to make sure you are learning the right things. nothing worse than learning something the wrong way!
#3
12/23/2003 (8:18 pm)
Thanks guys, btw, I took C++ over the summer, and we used void as a return type for main(). lol
#4
12/23/2003 (9:37 pm)
You can do void as a return type for main, just don't return 0; at the end :P But thats bad now! int main() I say!
#5
12/24/2003 (6:35 am)
You can't return anything but an int from main() in STANDARD C++, anything else is NON-STANDARD, the standard "REQUIRES" main() to return an int now, all compliant compilers won't compile the wrong return type anymore.

It's not funny that such bad practices are being taught to people paying money to learn something the wrong way!

I wonder what other C++ practices/idioms you were taught that were completely wrong!

Remember somebody asks you a question in an interview and you answer with the wrong answer that crappy teacher/school just cost you a job! And most questions I ask during interviews are the simple ones. Because if you don't know the basics correctly how the hell are you going to understand the complicated stuff correctly.
#6
12/24/2003 (6:52 am)
Would anyone want to work at a company so anal they'd base a hiring decision on the return type you slapped on your main function?

For that matter, void main() works on lots of compilers. When it doesn't, you get an informative error and it's a two second job to fix it.

In short, who cares?
#7
12/24/2003 (7:09 am)
For one the ANSI Standards committee cares, and I care about quality, it is the principle, that if something as basic and simple that is not understood correctly then I don't want to know what else you think you know but don't!

I mean if someone can't get something so basic and simple RIGHT, how can I have any faith that that someone understands anything about pointers, macro expansion, or templates beyond just enought to do it wrong? Personally I don't have the time let them go be someone elses problem.

And most of the things that are taught that are really bad practices don't come with "informative errors" but with lots of subtle side effects that only happen in certain special cases and result in "undefined behaviors".

I have been burned to many times having to go back and fix other peoples code because they did things completely backwards and was completely un-maintainable and did not even do what it was supposed to do in certain cases. In every case it has been someone that someone else hired that mis-represented themselves in an interview that I did not conduct.

In short, the "who cares?" attitude is what has done a tremendous amount of damage to the software industry in the US!
#8
12/24/2003 (7:40 am)
Jarrod, it's a good idea to quiz potential hires for skills that actually matter, like class use, can you code a linked list that works, and so on.

But there's a line. On the one side of that line is reasonable job requirements. On the other side of that line is railing about meaningless stuff that just flat out does not matter. Main return codes are firmly in that camp, as far as I'm concerned. Your hyperbole about this causing the fall of the software industry is amusing, but IMO unsupported by reality.

Look, there's also a standard way to fold blueprints. I actually sat through an engineering lab where we were drilled in the proper way to fold variously sized pieces of paper. Some standards comittee had written up a nice document on it, and my college professors had to use up precious class time to make sure we could do it the 'right way.'

There are standards, and then there are standards that actually make a difference in the world. I think the software industry would get a lot more done if that understanding was more wide spread.
#9
12/24/2003 (11:02 am)
C++ has all the power for code obfuscation that C has, plus all new ways that can turn it into a "Write Once" language.

Sometimes I think the C++ Standards committee is out to make things worse instead of better, in order to boost the sales of expensive IDEs.

I had to develop the coding standards for one company I worked for back in 2000. After much research into the subject, I discovered the major rules for coding standards:

* A company SHOULD have coding standards
* The coding standards should be documented

And that was about the size of it. Everything else is negotiable. In technology, things change so fast that anybody who is productive is unlikely to be up on the latest trends and developments all the time (one of the reasons it is important to give employees training opportunities). Having been on both sides of the employment decision-making process, my own feeling is that I'd rather have an experienced person on the team who has a proven record of achieving results and adapting to change than someone fresh out of the best school who knows all the latest buzzwords and is indoctrinated in the absolute LATEST paradigms and standards... half of which will be obsolete three years down the road. The important thing is their ability to adapt & adhere to the coding practices of the team they will be working with.

So I do agree that once you know that main() should return an int according to modern compilers & standards you should comply. It's not a great idea to get mired at a certain technology level when you are in the software / IT industry. But I wouldn't consider the use of a deprecated standard to be a stoning offense - or even something I'd ding them on when considering them for employment.
#10
12/24/2003 (3:07 pm)
Boy, ask a simple question..... lol

Well the way I see it, is that if I want to take another class in C++, I'll have to do it online, because my local uni only has an intro class, and all their intermediate and advanced classes just changed to java. I just took an intro to java class, and don't want to pursue java any further, I just don't see a reason to. Of course, my programmer brother says that programming is programming, and that learning something in java is fairly easy to translate into C++.

So, what do you experts think, take more java at my uni, or try an online course at the Game Institute?
#11
12/24/2003 (3:56 pm)
I program in both. Java is a popular language right now - it wouldn't hurt. And your brother is right - programming is programming. The thing you get from a university education is not just knowledge of *a* language, but the ability to learn new languages.

When I started college, Pascal was king. A few years earlier, COBOL and Fortran was where it was at. I understand before that, it was JPL. By the time I finished school, C++ was the up-and-coming language, and everyone was talking about the glory of Object Oriented programming (which was just coming into vogue around the time I started school).

Now, and for the last three years, it's been Java. In five years, it may be something else.

Don't just learn a language. Learn to engineer software.
#12
12/24/2003 (5:10 pm)
I'd do the java class AND the GI class. Ive heard that some of thier classes are ok.

Programming is programming, its not particularly language dependant. But make sure you do plenty of messing around with C++ while youre doing the Java, just so you really understand pointers.

I think once someone understands pointers it opens up a world of good (and bad) coding possibilities. Maybe thats the standard I'd use to test someone with, do they know how to use pointers, if they dont, they arent there coding wise yet.

Phil.
#13
12/24/2003 (10:04 pm)
That's exactly what I was thinking Phil. I started a minor in Computer science, already have intro to Java, Science of Computing, and Calc 1 done, next it's onto Intermediate Programing, and Discrete Applications. I wasn't sure if I was going to finish it though, but what the hell? Only 24 semester hours and I have 9 already done. :)

I've also taken courses in BASIC, Pascal, and C back in the late 80's, and I made A's in all of those. Wish I had stuck with it. After getting Torque, I realized I needed to brush up on my programming and took a C++ class last summer.

The GI courses aren't very expensive, at least not for me, so I'll take some of those to. I don't know if I'll ever become a real professional programer, but I sure like messing with Torque. And who knows, maybe I can soon do more than mess with the scripts. ;)

Thanks for everyone's advice.