Originally published on May 25 2011 on Mike Acton’s #AltDevBlogADay.
The world is made of people (Someone call Captain Obvious!). People that do the most various tasks, learning their trade either by being self-taught or by being taught by someone else. Since we, here at AltDevBlogADay, are all interested in the games scene, most of us certainly have some education background. Some of us have specific education on this matter, others might even be self-taught, and, like myself, the rest of us probably has a more general degree in Computer Science, Engineering or any other course somewhat related.
In my particular case, I took the Computer Science course here in Lisbon, Portugal. Since I’m finishing my thesis right now, and will be defending it in a couple of days, I looked back at what I did all these years in college, in terms of projects (I barely went to parties…).
I want to talk about how many classes I had that have a direct impact on the way I code for games, so I took the liberty of drawing some charts to illustrate that.
I figured out that, only three or four classes from the starting degree have a real good use on games. One is Artificial Intelligence; Computer Graphics, which is very vector and algebra oriented here… nothing fancy like learning HLSL; Algebra, which is a prerequisite for anyone that aspires to go into Games; and the dreaded Distributed Systems class where you code C, not C++, ‘till death (hell, I could write another article covering only the evaluation methods and process of that class). So, roughly 13% of my Bachelor’s classes have some application when I’m trying to put down some code for a game.
As for the Master’s, I had the choice of enrolling in two classes that are strictly related to games. One, Interactive Games, is related to the design aspect of the game, where you actually have to create a game from scratch in about one month (you can check mine here) and the according Game Design Document; the other class is Gaming Artificial Intelligence, which discusses some topics like Flying Spaghetti Monsters, pathfinding and other techniques. This makes up to 20% of relevant classes with direct impact on my game programming abilities.
All in all, if you do the maths, this means that around 15% of the classes I had have a direct impact on my game code. Does this make the remaining 85% of the classes and subjects approached rubbish or useless when you think about creating a game of your own? And, as far as I know, this doesn’t just happen with my degree, but with the majority of the Computer Science degrees my colleagues are attending as well in other Portuguese universities.
What I draw from this is that my education is a very generalist one. Is this necessarily bad? I’m far from knowing everything. In fact, I feel that I don’t know much about the tools of the trade that many of you folks here on AltDevBlogADay know.
But, after all this, I’ve got to say… being a generalist makes me feel like this guy actually, because I feel like I can pull off any bit of code, even if I don’t really excel at its subject, by having enough time to look at it. If I don’t instantly know how to do a particular thing, HLSL, C++ advanced programming with hyper-complex callback functions and huge shared memory, I feel that, maybe spending some more time than the more specific programming folks, I can get the job done, just like MacGyver.
Being a Generalist isn’t a bad thing in my opinion, because you’ve had contact with so many different realities, languages and problems, that you can shape and tailor your approach on the problem that you have in hands and, ultimately, overcome it. I would dare to say that being a generalist is actually a good basis, and a good foundation, to be eager and able to learn in a more efficient way on how to become a specialist programmer within the industry, specially when you are aiming to start a career there.