Squats, Rifles, and Javascript

I’m a pretty good marksman. I’m not great. I won’t win any sort of formal competition. But I’m an okay teacher, and I have a few hundred hours of coaching experience under my belt. People on the internet listen to what I have to say, sometimes. There has never been a time in my life when I wouldn’t have told you that I’m a “good shot,” but it’s only pretty recently that it’s been true.

In order to get good, I had to admit that I didn’t know anything, go back to basics, and take a class. Fortunately, I didn’t know that it was a class, or I wouldn’t have gone. I figured that I’d show up, get a “rifleman” patch on the first target, and have everyone ‘ooh’ and ‘ah’ over how great I was, and then I’d go home secure in the knowledge of my greatness. I didn’t. It took me days of consistent effort to learn enough that I could consistently keep rifle bullets within a 4 arc-minute cone.

Similarly, I’m not only strong, but well-versed in personal training and the factors which contribute to myofibrilar and sarcoplasmic hypertrophy. I’ve had periods of religious gym attendance for the past ten years, always including squats and bench press, with deadlifts for the past 8. And I have relatively little to show for it.

I did my first proper full-depth squat in December. I had to admit to myself that my squat form and progress had been unacceptable and start squatting more frequently with greater depth at a lighter weight in order to develop the necessary flexibility. That meant swallowing my pride and lifting a lighter weight than anyone else in the gym, less than 100 lbs. I’m still not perfect, and I’m not as strong as I want to be. But I’m doing it right.

And now I have a job where I need to do Javascript. I am FizzBuzz Javascript proficient. I am not good enough that just diving in and trying to do Node.js or Angular.js in production makes sense, especially not when we’re looking at our relatively uncommon architecture. Javascript allows you to pass arbitrary-length argument lists. That’s Javascript 101. I didn’t know that.

Part of the reason I’m so bad at Javascript is that I’m a real programmer, and I don’t need to learn no stinking for loops. So I’d find a worthwhile tutorial, and the tutorial would start with the basics, and I’d get bored and give up and copy-paste and cargo-cult the workable DOM manipulations and lightboxes. This isn’t 2009, and that’s not a great idea for productivity any more.

So I’m going through Eloquent Javascript. And it’s boring and it’s slow but mercifully it’s got that inline editor stuff that’s really super cool. And I hope I get to where I need to be.