The Long Road to Salaryman
Developed in Isolation
Sometimes I look around the office and wonder how I wound up here…
What a Nerd
The first time I ever got interested in Japan was when I was a junior in high school. I was working at Arby’s with a Vietnamese guy who was super into anime. He lent me the whole run of Cowboy Bebop—on VHS. I watched it all, loved it, and was hooked on Japan. While I used to play nothing but sports video games, now I was playing JRPGs. I signed up for Netflix, back when they mailed you DVDs and rented every Kurosawa and yakuza film I could get my hands on. When I started college, I got a job working at Best Buy, and nearly my entire paycheck went right back into the store—games and anime DVDs.
I do the Japanese language routine in college, and since I was decent with languages, I picked it up with ease. I was consuming every bit of Japanese media I could find, which helped with the language studying. My ABC (American-born Chinese) girlfriend and her family were somewhat offended at how into Japanese culture I was.
Fast-forward a couple of years, I’ve broken up with the girlfriend, and I get a chance to study abroad in Nagoya, Japan. I do that for a year, mostly using my time to buy more Japanese games, see anime in the theater, and drink myself silly at nomihoudai [Japanese all-you-can-drink specials]. It was fun, but not productive. I was meant to be working on my senior thesis the whole time. I got almost nothing done that year, and it wound up delaying my graduation for 6 months. 🤭
I finished college with two degrees but no future mapped out. I interned at the local city Japanese-American society, and one of the guys there introduced me to NOVA. If you’ve never heard of NOVA, it was a behemoth of the private English school industry in Japan. I don’t think I’d be exaggerating if I said that half the foreigners in Japan got their foot into the country by working for NOVA—before it went under due to corrupt people in charge.
After NOVA went under, I did 10 years as an assistant language teacher (ALT) at public schools in Japan. And it’s here where programming makes its entrance into my life.
You Gotta Be Good at Math
I got my first computer (running Windows 95) when I was in middle school. I made websites with Geocities and genuinely loved the Web. I was making silly WWF fan pages, looking up strategies on GameFAQs, and following Metallica news, but the Web was amazing to me. I watched The Screen Savers nightly on TechTV and couldn't wait to see what cool shit they were going to introduce to me.
I have a vague memory of poking around at a CGI script on an FTP server one time but had no clue what I was doing. Once, I tinkered with a .php
file. I didn't know anyone who knew about programming and I had no idea where to start. If I had been a tad more curious or driven, I might have dug deeper on my own, but I didn't. As it stands, I heard someone say that to do programming, you needed to be good at math, and math was my worst subject in school. Remember me saying I was good with languages? I excelled at English, French, history, and creative writing. Certain kinds of science appealed to me, but math made my head hurt. And teenage me thought that since I sucked at math, I'd suck at programming. I enjoyed history and government though, and it led me to study political science in college. Combine political science with a love of Asia, and I wind up doubling-majoring in international affairs and Asian studies. That's how I ended up studying abroad in Japan.
set future to "programming"
So how the fuck did I go from teaching English to 4th graders in Japan to building web apps for marketing people?
It's 50% because of OmniFocus and 50% because of the kids. It's half OmniFocus' doing because I was a power user of that app (GTD-based task manager for OS X, if you're unfamiliar) and I heard that you could do cool things with it using AppleScript. I taught myself AppleScript. It was my first language and my first experience of learning a language on my own. While not the most useful language for employment, it was a great learning tool because much like JavaScript in the browser, AppleScript gives you pretty great results right from the start. Choosing files, displaying alerts and confirmation dialogs, and manipulating the filesystem is a breeze right from the start. The time from zero to beginner hero is short. I learned about lists, strings, dates, variables, and conditionals while creating a host of little scripts and apps that helped me daily.
However, it was a bad way to learn about programming. I didn't have anyone to talk to about it nearby. I bought Learn AppleScript: The Comprehensive Guide to Scripting and Automation on Mac OS X by Hamish Sanderson, which is the best book on AppleScript there is, but that's about all there is for learning resources. What you'll find outside that book is a smattering of blog articles about scripting specific applications (which are pretty old) and the MacScripter forum which is like a graveyard for neckbeard hopes and dreams of a world where Apple gave a fuck about you and your hobbies (other than silhouette dancing with your iPad).
Child's Play
What finally got me into web dev (we'll leave my time with Ruby on Rails for another time) was that I wanted to build a game that I could play with the kids I was teaching, in class. What I built was a simple game that would generate math problems where the answers were numbers the kids could then say in English. Scores for two teams were displayed on either side of the math problem and there were arrows to click to raise or lower the scores.
It was a trivial little thing, but it got me to learn not just HTML, but CSS and basic JavaScript. I needed to layout the content in a grid and I needed to manage state for the scores. My implementation would seem awful to current-day me, but at the time, I was pretty proud of myself. I learned mostly from CodeSchool courses and tinkering around in the dev tools. I started with CodeSchool for the Rails for Zombies courses, but it was the jQuery course they had that really piqued my interest. While I never did jQuery professionally, the idea of jQuery and AJAX got me thinking about what was possible in the browser.
Because I started "real" programming with Ruby on Rails (again, not going into it now), I started the math game above in Haml, Sass (indent-sensitive), and CoffeeScript. I was doomed from the start. I went about everything ass-backward, which is why I think it took me as long as it did to get good at frontend development and also to change careers. If I could go back and do anything differently, it would've been starting with plain HTML, CSS, and JavaScript.
One Foot Out the Door
I spent a lot of time studying programming. I don't think I went about it most efficiently, but I did put in a lot of hours. I was doing the CodeSchool courses at home in the evenings and then during open periods at school, I'd take what I learned the night before and try to build something using that new knowledge. So a great deal of my time getting ready for a new career came during downtime at my previous job. I could've been talking to the kids, but I think we know I made better use of my time in the staff room writing for-loops.
When I finally left the teaching gig, it was for all the wrong reasons. I was feeling pressure to get a real job. Being an English teacher in Japan carries a special scent of failure and desperation. I had been telling everyone for over a year that I was gonna become a programmer when I got a little better at it. So I took the first programming job I could find. It was at the same time the worst choice I ever made, but also the best one I could've made. That next job was the most stressful experience of my life. It was a learning experience though. I learned what most programmers were actually like. I learned that people pushing <div>
s aren't the same people we see giving keynote addresses at a fancy conference. Most of the work programmers do can be tedious and soul-crushing. But I'll save that story for another time.
I'll leave this first Developed in Isolation story on a bright note. Taking that shit job got me out of the teaching job, showed me what the real world in Japan was really like, and helped me figure out what kind of developer I wanted to be like. It focused me. It made me see what kind of technologies I wanted to work with. It opened my eyes.