How I learned to code: the art of letting go

This post was inspried by Chris Macdonald's post - which in turn was inspried by others.

Origin story

I was not an engineer type growing up. If anything, I was ... artsy. I used computers for school, and learned how to touch type, but other than that, I had no interest in anything technical. I drew a lot, and wanted to go to art school.

In college I majored in graphic design, but even then I focused on print design. There were web design classes at that point (read: how to use dreamweaver) but I found them frustrating. I didn't like the feeling that everything you did had to be just so in order for it to work.

First jobs

I got a job out of school designing billboards. That was ... actually pretty cool. Then I moved to the middle of nowhere to follow my girlfriend (now wife) and found a job at a newspaper designing ads.

At this point I could already see where the world was going. I knew that I would have to make the transition to the web. I picked up a book on HTML and started to learn on my own.

Now, get this - as an exercise, I would actually write out html with pen and paper. I did this deliberately to slow down, and make sure I was thinking through what I was doing. As wacky as that sounds, I think it helped.

Embracing Web Design

At this point my wife and I moved again and I found a job at a small graphic design agency. This was when I started working on web design in earnest. These were small sites. And I didn't do the programming - we hired that out to someone else.

However, I discovered the books of Andy Clarke at this point, and started to fall in love with CSS. It felt like doing design work, but with code as the medium.

We moved again (this time overseas), and while my new job didn't have anything to do with the web, I tried to learn JavaScript at that point. I'll be honest - it didn't take at that point. I'm not sure what my blocker was. But I was moonlighting and working on web designs, and even starting to do some actually web development.

We moved back to the states, and this time I got a job with the title "Web Designer". I worked on some large government websites at that point - I would work on the design, as well as the coding. I designed and built sites for a couple years there.

Identity conflict

I found that I enjoyed the development end of things. I felt like it came easily to me. Much more so than design had. Design was always a struggle for me, mentally. To be brutally honest, I think I'm a far better web developer than I ever was as a designer. That was a hard thing for me to learn to let go of - it had been my identity for all this time. I was a creative, not an engineer.

But I found a new identity that was sort of both: a front end developer.

First development job

I was hired by an agency at that point to work mostly on Drupal sites. I started the job not even thinking about my level or anything. I was just happy that I was going to be able to write code all day.

I remember one day, I had a concern about another developer on the team and a choice they had made. I talked to my boss, and she said "Oh, you're much more senior than him." It never occurred to me that I would even be considered senior in ability to someone else.

I learned some basic jQuery, and a lot of Drupal. I considered myself a Drupal Front End Developer. And this was in Drupal's heyday - that was a thing.

Letting go, again

I moved on from that role to another agency, one that was not focused on Drupal. I had to learn to let go of that part of my identity again. I was then simply a "web devloper". That was a difficult but healthy thing for me to do.

While the job was fantastic, it was a victim of the great agency implosion of 2015. I was lucky, and landed a new gig four weeks later.

PBS

I landed a senior front end developer role at my current employer, PBS. At this point, I was very confident in my CSS, HTML and jQuery abilities. PBS is a python shop, so that was something I needed to start to pick up.

We hired an awesome JavaScript engineer who very patiently, taught me so much about JavaScript - both vanilla JavaScript generally and React. I would not be who I am today as an engineer if it weren't for her. (Thank you Sally!!)

I tried to absorb what python I could from the engineers around me (like Chris). I would say I'm still an intermediate Python developer at best. But that tends to not be my focus.

It was in this job I learned to write tests - unit, integration and end to end tests.

Letting go a third time

I was promoted to tech lead, and did that for a couple years. But then we formed a "Web" team, with me as the manager. I've been in that position since (as of this writing). This was perhaps the hardest transition of all - I went from being a doer/maker to a manager.

That is hard. There is no roadmap to follow - no checklist. And I'll be honest, I'm still making that shift. I still write a lot of code. But I have to think through planning work, and helping my team be able to do their work. I have to think through how can the most work get done by all of us together. If that means I spend a whole week writing tickets so that the other engineers on my team have clear tasks to work on - so be it.

My most enjoyable days are still the ones where I get to code all day. Those are much more rare, but they happen. I'm not sure what the future will hold, but it will likely be less and less of those. But I'm much more okay with that idea than I was even a few years ago.

Conclusion

So that was a bit of an autobiography on how I got to where I am today. Engineer, manager, evolving being.