Monday, October 13, 2014

The IGM Department and Curriculum

Depending on who you talk to at the school of Interactive Games and Media at RIT you'll get very different answers to the question "How do you feel about the curriculum?" Most of us will give a general thumbs up. While I'm in the general thumbs up boat I feel like there's a disconnect between what we're taught and what we need to know.

Lets talk the intro sequence. When I was here under quarters we started with Java and moved to C#, now in semesters it's all C# with XNA & Monogame. Frankly the move to just one language was probably a smart one, however there's something C# really lacks and that's a decent Command Line Interface (CLI). Anyone who does C# will straight up laugh at you for wanting to use the Microsoft or Mono command line tools.

Many of my peers will give me hell for saying that using Visual Studio for everything is a bad idea. Everyone here loves Visual Studio, even I do, but it's not a good learning tool. It's true that you'll spend a lot of time, when doing actual development, plastered in front of an IDE like Visual Studio but IDEs will change while the Command Line is timeless. I'm not saying that CLIs don't change or that the *nix command line never changes but that being comfortable without a GUI is really important. Anyone who uses Git on a regular basis will tell you that no matter now nice SourceTree is, you will still need to know how to use the Git CLI.

This is getting to the point where I'm sure you're asking me "Well what's your alternative?" And that's a totally fair question. Frankly there is no right or wrong way to learn programming, but every programmer will need to learn to use the command line at some point. I suggest moving from C# and Monogame to Java and a library like the LightWeight Java Game Library (LWJGL) which powers Minecraft. Java's command line compiler is robust and a good set of debugging tools. Not to mention LWJGL gives a better intro to OpenGL and transformations / matrices than Processing does.

Now I don't expect students to be using Vim to write Java and manually link LWJGL for the entire intro sequence, but spending at least the first semester in the command line would be largely beneficial. The lack of auto completion would facilitate more direct learning, Java is a widely used language, especially on Android and being competent with the command line will make learning other essential tools like Git and Mercurial much easier later on.

No comments:

Post a Comment