Lecture 6

getting with the program

I’m wending my way through lecture 6 of Programming Methodologies.

Somewhere in last lecture, Mehran put up a chunk of Java code that would draw some rectangles and lines and ovals on the screen, and I paused the video to write it all down. And I realized after I wrote it that I’d understood all of it, without waiting for his explanation.

The vast majority of learning to program is learning how the syntax works. It’s a frustrating situation, honestly. It’s as if someone were to tell you that you simply cannot learn French until you’re fluent in Latin. It’s been the hardest thing to accept in trying to make a game: you will not be able to script without knowing at least something about how to program, and no robust game engine will let you make a complex game without scripting.

Now scripting is technically simpler than writing in pure programming language; it’s easier to learn UnityScript than to learn C++ (though I believe designing the Voyager 2 flightplan was simpler than learning C++), but that’s all theoretical. You’re not going to learn UnityScript without knowing something about code. Partly it’s because no one can teach you; there’s no way to summarize how a scripting language works without presuming some basic understanding of programming. You can’t teach someone French if they don’t know what a verb is.

Now some people can obviously pick it up, and they might make a good game with ugly scripting. But they couldn’t then pick up ActionScript. They’ve learned by ear.

This has always infuriated me, since I just wanted to make a damn game. I never wanted to be a programmer, and there’s no way to learn just the parts you want to know. To make a game, you’ll need to know how to program. You’ll at the very least want some basics.

What sucks about that is there’s no way to come in at the middle. Not that I’ve found anyway. You can be so proficient at using a computer, but that proficiency will not make you take to programming like a fish to water; using iTunes like a master doesn’t help you write in Cocoa.

So you have to go back. You have to learn a simple language from the ground up. There’s a reason the Programming Methodologies course uses Java (Fareed pointed this out to me today): Java is a very stripped-down language. It has very few unique words. It’s a good way to learn the way code fits together, and getting proficient in Java won’t make you ill-equipped to shift to a different language. It’s a simple one.

The problem with Python is that, while it’s so simple and logical and pretty, you can’t start out in Python. Largely because no one can teach you Python but a programmer, and a programmer will assume you know something about primitives, components, variables, etc. Explaining such basic things will probably take them back to where they learned those parts, which will likely be something like Java or C.


But I’ve long-since accepted my fate. I’m too interested in games to stay ignorant of code. Learning Java isn’t horribly difficult, and I’m piping in what I remember from that first Python tutorial I read, from what I gathered about UnityScript. It’s finally starting to make sense.

Fareed and I had a Skype session today where we just talked code for an hour. There were chunks I didn’t understand, but for once I could kinda follow the conversation. I did get to ask a few good questions; I know the distinction between float-point integers and doubles now, and understand some things about whitespace. Yada yada. If you want to bond with your programmer, learn to code just a little; they can talk about it forever. The passion programmers feel for their subject is incredible. They remind me of painting majors from back in art school.

I realize some dark things about C programmers. They remind me of the plongeurs from George Orwell’s Down And Out In Paris And London (an excellent book on poverty). A plongeur is a person who works behind the scenes in a French fine restaurant; in the time Orwell was writing (the 30’s), they tended to work 80 hours a week and their only free time was spent sleeping or drinking in a pub. He said they did not care about the work itself, as in the quality of the meal being prepared. He actually argued that fine cuisine is a needless luxury, unnecessary to society in any meaningful way, and just meant that a hundred people’s lives were handed over to providing a modest luxury to wealthy people. What the plongeur cared about was the boulot, the pride in succeeding at something hideously hard. It doesn’t matter what the work is, simply that it is hard to do.

I detect a streak of that in C programmers.

Not to mention.


0 Responses to “Lecture 6”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: