# Learning a new language

June 21, 2012
By

(This article was first published on The stupidest thing... » R, and kindly contributed to R-bloggers)

It had been a very long time since I’d tried to learn a new programming language. I started C in 1987, S in 1992, and Perl in 1997, but nothing really new in the subsequent 15 years.

A friend now has me doing D, wanting to find time to learn ruby, and, most recently, playing with JavaScript and D3.

I’m really excited about D3. It’s long past time for dynamic, interactive graphics to be routine. And with D3, I think it can be.

The object-oriented stuff is most foreign to me.  When your programming skills are stuck in the early 90s, there’s a lot to catch up on.  It’s hard to adapt to a new way of thinking. But I’ve used “this” a couple of times, which makes me feel quite accomplished.

The hardest part has been slowing myself down; I’m too impatient. It’s critical to have a challenging problem for motivation, but I tend to want to jump into complicated things when I should be a bit more methodical.

I want to make things like this. (I don’t really see a use for it yet, but it’s fun.)  So I start mucking about with code that I don’t yet understand and end up going nowhere for hours.

The important thing is that I’m having fun; eventually I’ll be able to usefully apply some new skills.  For now I’ve got this: [Click for the dynamic version.]

PS: I really like Scott Murray’s tutorials on D3. After working through those, other tutorials became much more understandable. Eloquent JavaScript is a super-cool, open source, interactive text on JavaScript; also take a look at the “fork” for CoffeeScript, Smooth CoffeeScript. (I’m thinking I’ll switch to CoffeeScript once I’ve learned a bit of JavaScript; the useful libraries and examples are mostly in JavaScript.)