Why I Decided to Learn Programming

I’m no stranger to technology. I’m an early adopter of web, desktop, and mobile technologies, I created my first couple of websites in HTML and CSS when I was 12. I’ve been working in community engagement & production in the social/mobile video game industry for around six years and worked as a platform evangelist for leading e-commerce outsourcing company before that. I’ve been reading Hacker News diligently since the month it was released. I am obsessed with technology in general, sometimes unhealthily so.

I’ve always skirted around learning how to code. I’ve played around a bit with scripting, but I can’t say I’m proficient in Lua by any means. I’ve edited countless Wordpress themes, but I can’t author anything in PHP. I always have ideas about things I want to build, but the fact that I don’t know where to begin has always held me back. I’m not the kind of person who likes to give up just because I don’t know how to start.

As a video game producer, much of my role has been to work alongside engineers and ensure that the product they’re delivering is on time and on spec. It’s not the most glamorous of jobs — I’m often the “bad guy”, and I spend a lot of time asking why people aren’t working fast or hard enough. I have to ask questions like: “Why did you choose to build it that way?” or “Why did it take you two days longer than you predicted to build this feature?” I hate asking those questions. I don’t like telling people how to do their jobs or implying that they’re not performing up to expectations. I feel like a hypocrite since I’m not the one in the trenches, taking someone else’s spec and delivering back a working version of what they asked for. And while I’d never downplay the producer role and how important it is, at the end of the day I don’t feel like I am building things. That’s the root of the issue to me.

I’m not the one who decides what to build, designs the user experiences and flows, and optimizes for end user enjoyment of what we’re building. I’m not the one who creates the art that delights the users, the animations that dance across the application, or the sound effects that complement the total package. I don’t build out the features, so I don’t get that fantastic feeling of seeing something I created working in front of me for the first time. I love watching a product grow and knowing that I had a hand in the process that takes it from A to B, but I want to be the one to take it there.

I’ve always loved to blog. There is something amazing about putting words down on a digital page, sharing it with friends, family, and strangers, and watching it spread around the web as readers comment on and critique it. I thrive off of the feedback and the feeling that other people might get something from their experience: a new perspective, education about a topic they weren’t familiar with, an emotional feeling while they read what I’ve written. I’m learning to code so that I can have that same experience — I want to conceive an idea, sit down and prototype it, and then build it from scratch and launch it to be used by people around the world. I would also love for someone to come to me and tell me they have a fantastic idea and are yearning for someone to make it become a reality. That sounds like the ultimate job satisfaction — to build products that someone, even if it’s just the designer, will appreciate.

I started out with JavaScript and Python at Codecademy, then moved on to a Ruby on Rails class that taught me how to build an app from start to finish. I’ve moved on now to Team Treehouse and am working on a project with a programmer friend of mine. And I’m chronicling my journey in learning to code over here, so feel free to follow along.