I'm Not a Ninja
One of my favorite things I do as a consultant is something I call "Office Hours." For an hour so each week, I work one-on-one with a client's dev team to help them with anything they've been having trouble while building awesome web applications using Aurelia. This week, one of these clients didn't have very much to ask me, and the session was pretty much over after only fifteen minutes. We were about to end the call when they remembered that one of their junior devs needed some help upgrading to the latest version of the Aurelia CLI on a project he was working on. They asked if I would help him with that. I said, "Sure!" and we quickly finished the upgrade. There was still a lot of time left in the session so I asked him if he had any more questions. One thing led to another, and I was explaining my two most recent blog posts to him.
As I walked him through the code, I kept explaining that I originally had no idea how the binding behavior that Jeremy Danyow had sent me worked when I looked at it last year. I showed him the process I had used as I worked to learn how he had accomplished the "wizardry." What I eventually realized is that the code wasn't that complicated, but it did require some deep knowledge of Aurelia's binding system.
I was repeatedly saying "I didn't just look at this code and grok it. I had to walk through it and learn how it worked." This junior dev was blown away at what I'd done and wasn't believing me when I told him he can do the same stuff. But he can, and so can any dev.
Here's the thing: I'm not a ninja.
I know the domain for my blog is "aurelia.ninja," but I'm not a ninja. I'm just a developer like anybody else. I decided to write this blog post to talk about how some developers idolize "big name" devs and think these people are wizards. I know this is true because I'm guilty of doing this myself. Heck, I was probably worse than most anyone about doing this.
I graduated college in 2005 and immediately joined a local consulting company here in Tallahassee. I eventually found myself on a team building an ASP.NET application for Florida state government agency. I was assigned tasks and tried my best but didn't always get them done, and sometimes more senior devs were forced to pick up the slack because I was slower at figuring things out than they were. I wanted to learn, and I spent a lot of my after-hours time reading blogs and listening to those newfangled podcasts. I quickly found Dot Net Rocks and listened about all the cool things developers were doing that I wasn't ever going to get to do. I heard the cogent questions that Carl and Richard asked and figured they must be geniuses. I started watching conference talks and saw the amazing thing Scott Hanselman (back before he joined Microsoft) and others were doing and figured he must be the smartest developer to ever write the code.
I was hooked on learning, but I had a BAD case of "fanboy."
I kept working away at improving as a developer, and in 2011 I attended my first ever conference. VS Live Orlando was a fun experience. I learned a ton (including getting excited about Silverlight approximately 6 months too late), and met a lot of really interesting people. One of the keynotes included a Q&A with Mary Jo Foley. I thought super hard about an intelligent question and I stood in line to ask my question of Mary Jo (I have no recollection of the question other than it was about Silverlight). I had listened to Mary Jo on Windows Weekly with Leo Laporte and Paul Thurrott and figured Paul and Mary Jo were gods or something.
I was hooked on conferences, so I paid to attend Build 2012. While at Build, I staked out a front row seat for a Scott Hanselman talk. At the Build attendee party, Scott played Angry Birds on my phone. I came home and told my friends something along the lines of "It's the developer equivalent of a teenage girl having Justin Bieber use her phone."
After that Build, though, things started to change. I attended Build for 4 straight years (2012-2015). As I went to these conference talks and various parties surrounding the event, I started to realize that these people I had been idolizing for so long were just normal people like me. The biggest difference was they were a lot more vocal about whatever they were working on. I started to get more involved on Twitter. I got to know a lot of these people via Twitter.
In late 2014, I asked a mutual friend to introduce me to Rob Eisenberg. He invited me to join the Aurelia team. I found my place on the team as the "community" guy. I spoke at conferences, I answered Stack Overflow and Gitter channel questions. But something started to happen. I was becoming someone that other developers looked at like I used to look at so many people. I wasn't any smarter than I used to be. I wasn't really a better developer than I used to be. It's just I was speaking at conferences.
As a speaker though, I got to attend a lot more conferences. I got to hang out with so many of the people I used to idolize as just people. And that's what every single one of the people I've mentioned above are: people. They're not gods. They're people. Most of them work really hard to be so good at what they do, but they aren't geniuses (for the most part). And neither am I. I just happen to be pretty chill about going on stage to talk about Aurelia or JavaScript or whatever. I still take too long to figure things out. I still am lazy and like taking naps on the weekends. And my cat could care less as long as I feed him.
This isn't so much a long winded blog post about impostor syndrome (there's plenty of those available) as it is a long winded blog post about how I'm a pretty decent developer, but I'm not smarter than you.
That junior developer I was working with kept telling me he didn't think he could do the stuff I did in my last blog post. And my answer to that was "neither could I when I started." So let's get started!