Saturday, March 12, 2011

It's never to late to learn new skills

It is now roughly a year since the last post. It was an interesting year but I won't be writing about it now, perhaps sometime in the future i will. Instead I am going to write a little about my new project in personal development.

Learning some basic coding skills

I realized I have spent the last 20 or so years learning all the basic skills for making games except for programming so it is about time I do something about that and get a decent hunch about how to do the programming part too.

I will primarily focus on learning how to program in JavaScript. This choice is based on three fundamental arguments.

1: JavaScript is sufficiently capable of teaching me what I need about Object Oriented Programming and Test Driven Development. From what little I understand about it these methods of writing code is rather transportable between different languages. It is also rich enough for making fully fledge gameplay although perhaps not the most ambitious scales of simulations such as individually thinking soldiers in big armies or fluid dynamic physics and such but those are not needed.

2: JavaScript is coming very strong in the world of game development. My prediction says that in a few years most people who build games build them with JavaScript, CSS and Html5. And several will be using various webgl libraries so create nice 3D games too.

3: JavaScript has an awesomely fast speed of iteration. Change something and get feedback in the implemented game within about 2 seconds. About the same speed for getting feedback from jsTestDriver for unit tests or FireBug/Chrome console for coding errors. This rapid Cycle Time extends to the deployment pipeline which, by having a git clone in the public area of My Dropbox all I need to do to send a test product to a tester on the internet is:

- Git pull
- Paste the link to the test subject. Or make them refresh if they already are there.

The new version is live and in use within about 10 sec on average a bit depending on how moody dropbox is, the time ranges from about 4 sec to up towards a whole minute whenever dropbox is having problems or suffering from heavy use or whatever it might be that makes it slow during american office hours.

There are a few more arguments I could raise about the choice of tech to study through such as having the internet full of people who are going through the same experience, lots of open source material, plenty of documentation with browser API's and so on. Now i got to go back to figuring out how to replace nasty if sandwiches with less horrible code.

Another good reason is that a good friend and great programmer said something like "JavaScript feels so rebellious compared to C". I like rebellious things.