My parents bought us a Tandy 1000 from Radio Shack sometime in my early elementary years. Cassette tape drive. BASIC programming. We had a couple of good books — written for kids, even then — on writing code. I devoured everything we had and started getting bored. Whether we couldn’t afford new learning material, or the material didn’t exist, or we were up against the limits of the Tandy and couldn’t afford to upgrade… I don’t know. I do remember — during that same timeframe — going with Dad to the local Apple dealer to look at Macintoshes. And I remember really wanting one. And I know we didn’t get one. And that really was the end of my fascination with computers for quite a long time.
Then, about a year and a half ago, I decided I needed to learn a code language. Code Academy launched right about that time, with JavaScript as their first offering. I jumped in and started working through their courses. The exercises were buggy; the support, non-existent. I wasn’t very far along when I decided that particular route to being a genius wasn’t going to cut it. I waffled a bit, realizing that if I was going to make the jump from wire jockey to keyboard monkey, I’d need to start learning at least a single language. I bought a few books… and they’re gathering dust on my shelf.
Fast forward to now: I’m working full-time in something more or less IT-ish (depending on how elitist your definition of IT is), and I’m working with a lot of embedded systems — multifunction printers, to be precise. Sysadmins everywhere love to hate these things, and I can see why. But they’re fascinating creatures, and as it turns out, they’re buggy, poorly supported and insecure. Over the last few weeks, I’ve become increasingly interested in the (in)security of these devices, and in the piss-poor implementation of network standards most of them bring to bear. Since our manufacturers alternate between actively sandbagging us and passively avoiding us, I’ve taken it upon myself to start learning how these things work.
And, as it turns out, there are a couple of languages that get used pretty heavily by security and network types when they’re poking at embedded devices: Perl and Python. Old School, New School. I can hear @doctorlinguist shuddering from here, I’m certain of it. But now something has my interest; it has a real use case, a real problem to solve; and it has legs. Perl and Python are both marketable.
So I mentioned to the .NET code monkey who works behind me that I was thinking about picking up Python for Kids, and he says, “RURPLE!” ‘scuse me? “Rurple! Like purple, with an R! Check it out, man!” Off to the internets with ye…
And so I found rur-ple. It’s meant for kids. And that’s totally okay with me. I’m starting with Python, and I’ll go from there. Perl and Ruby are on the list, too, though. And Java. I know — problem factory, right?
But here’s the thing: Java gets used in a lot of embedded devices. And whether we like it on the web or not, it’s not going away any time soon. So. I’m moving forward.