Coding Resources

Not being a full-timer anymore means, finally, that I have enough time to learn to code.

Or at least try.

Again.

newspeak

Programming is really damn hard to learn for a non-programmer, something that most programmers can’t seem to remember. Most people who speak English aren’t equipped to tell you how to speak English, and coding really is a lot like speaking a language (or being able to read it at least). But no one speaks code as a native language except computers. You can’t “pick it up.” A couple years ago I was trying to learn Python from a tutorial, and while the writer had many criticisms of other coders for writing impenetrable tutorials, his was still only dimly illuminating.

It seems most programmers stop thinking like laypersons. I even notice that most coding tutorials start speaking as if they’re talking to a computer, saying “if” and “else” instead of “if” and “otherwise” (“if you are unfamiliar with JavaScript, read this next section; else, skip to page 22”).

It’s taken me two years to finally feel like I’m understanding what I’m learning, and since I may not know how to talk to mortals when I’m done I thought I could try to compile some useful learning tools, noob-to-noob.

programming methodologies lectures

I believe I’ve linked to this before, but the Stanford lecture series on Programming Methodologies is on YouTube in its totality.

It starts here.

These lectures are by far the best distillation of programming I’ve found. They were actually sent to me by someone on the Unity staff. I wrote in saying that their scripting tutorial seemed written by a fluent coder and it wasn’t explained in enough detail for a noob to understand and start scripting. I gave some notes on how it could be improved, but they did me one better – they linked me to these lectures.

Mehran Sahami has figured out the exact order in which to teach the concepts of coding to people who know nothing about it. The lecture series will not make you proficient in any language; it starts with Karel The Robot and moves up into Java, but these are tools for teaching you the fundamentals of code. From this series you are supposedly going to come away able to start learning any language. I’m in lecture 4 myself and I understand more after 3 1/2 hours with Mehran than after 2 years of intermittent self-education.

The most important thing imparted so far is top-down programming. Mehran says that most people do 100 hours of bottom-up before they learn top-down, but he’s trying to start people off with top-down. Every tutorial I’ve seen so far has not only been teaching bottom-up, I’ve never seen one mention that this is one of two methods. As soon as I realized I could start with the big idea and just keep breaking it down into simpler and simpler methods until I was down the primitives, coding snapped into a sensible concept to me. For the first time it didn’t make me depressed to think about.

unity

I knew when I started learning Unity a while back that it was the most user-friendly game engine I’d seen. It still wasn’t as out-of-the-box usable as they let you think, but it is incredibly simplified and understands quite well what is useful for non-CS folks (interesting since it was almost certainly made by CS folks). Being able to adjust variables on the fly in the GUI while the game is running is probably the best implemented idea I’ve seen in a game engine.

Now that I’m starting to understand coding structure and terminology, I’m just beginning to explore Unity again. It seems the best way to start implementing what I’ve learned in small bite-sized chunks (instead of writing a large scripting document, you write many small blocks of script and attach them to different game objects). Then I can see it run and debug in small chunks.

Unity is still a lot to learn, but here are a couple of free resources in addition to Unity’s database:

Free Scripting Tutorial – unity-tutorials.com has a free scripting tutorial you can download. Most of their tutorials are of the money-cost variety, and I think charging people money to teach them a free program is a little dubious, but this particular tutorial is available to anyone. I haven’t jumped into it yet but it’s good to have on-hand.

Tutorial Tuesdays – Alec Holowka has an intermittent series of Unity tutorials as well, and I like his a lot. He has a good sense of what the most important features are and wastes no time getting you to them. You’re not going to get far if you don’t understand some basic scripting, and there’s a bit of a wall between him and anyone who doesn’t quite grasp code-speak, but as of lecture 4 I seem to be able to follow what he’s saying. He’s also just a really nice guy, and he releases project files for little games he’s made with it so you can see exactly what he’s done.

up next

UnityScript and ActionScript are supposed to be somewhat similar in syntax, so I’m hoping to jump into AS3 after I get my head around Unity. Flash Game Dojo looks like a good place to go for that, or at least it will be as it gets some more content. As I find good tutorials for ActionScript I’ll post them as well.

I’m still not sure what an argument is.

Advertisements

1 Response to “Coding Resources”


  1. 1 3d tetris 06/24/2010 at 1:38 pm

    learning programming from scratch can be difficult be do able, have motivation all the way all the best


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: