Thanksgiving 2017 I was hanging out with family near Las Vegas and generally having a great time, but I couldn’t stop thinking that maybe I should go back to school.
I was never actually good at school. I have a degree in Community, Environment and Planning from the University of Washington, which outside of my passion for sustainability, I was drawn to because the classes don’t use traditional grades and the students get to help set the curriculum. After completing a 2-year mission for my church and dropping out in the middle of a disappointing semester in BYU’s masters of public policy program, I went back to the only other skill I had: computers.
Last Thanksgiving I decided to do something about. Starting with the most obvious thing: polling people on twitter.
I got a ton of feedback. It ranged from: “Yes, it was great!” to “that’s the biggest waste of time in the world”. The more I spoke with people and learned about what computer science people actually learned and how much math and science was involved I realized a formal CS degree was really not going to work for me.
There’s a wildly popular book ,“The Imposter’s Handbook”, which markets itself as a way for self-taught programmers to fill in the gaps missing in their knowledge. I decided to read it. I also bought “Nine Algorithms that Changed the Future” just to to wrap my mind around the kinds of problems these CS people are solving. (Later I decided to try “Cracking the Coding Interview” and “Grokking Algorithms”, but neither could keep my interest for as long.)
Enthused by my reading and feeling confident I could really learn the fundamentals I decided to enroll in Udacity’s free Intro to Computer Science course. I also signed up for Intro to Machine Learning at the same time and threw myself in to learning Python and studying the basics of Python and CS.
A bit nervously, I applied to Udacity’s Flying Car Nanodegree program. I knew I didn’t really have the required Math and C++ skils, but I figured I could figure it out. The tie-in for me with both computer science and my interest in transportation, renewable energy and efficient cities made it seem like it was the perfect program to propel my career into the future (or something like that).
The course started off really strong. Within the context of flying people around the bay area we covered interesting things like A* Search, Bresenham’s line drawing algorithm, KDTree’s, graphs and more. All of the algorithms made sense and were fairly easy to grasp (more or less!). My computer science knowledge was clearly growing and it was giving me confidence! Hurray!
The day before the interview with my friend’s company, I got a call from the recruiter saying they can’t hire people outside of the State of California. As much as I wanted to work on something exciting and prove my new skills were worth something, my family and I love living where we live and aren’t giving up the family time that remote work gives us. Surprisingly though one of the other companies where I had applied, Cruise Automation, wrote me back and said they’d be willing to interview me for a similar position and would be open to remote work. I was stoked!
While it was only a few days away, I crammed videos from MIT’s Introduction to Algorithms course in preparation. I was also skimming through Grokking Algorithms and the Imposter’s Handbook repeatedly, hoping I’d glean something that might prove useful in the interview. Unfortunately, it didn’t help.
I left the interview nearly in tears, really in a state of shock. How did I blow that!? It wasn’t even that hard of an interview! Somehow everything I’d worked for, the last 6 months learning CS, taking on these new challenges, had led me to that point. And I had failed.
I got to the airport, opened my laptop and the solution to the search algorithm immediately came to me. It was in my brain all along, but in the high pressure interview situation it just wasn’t coming out in time. I sent the solution back to the interview panel, apologizing and hoping they might forgive my late answer. The following Tuesday I got word back that they decided to pass.
Gutted from the rejection and also knee-deep in organizing the AnxietyTech conference, I decided to drop the flying car course and throw myself back into my existing job. Had this whole experience been a total waste of time? I needed to take some time to not think about it, or anything really.
This Thanksgiving, a year after I had started this journey I thought it would be a good time to reflect on all of this. My wife and I were talking about our accomplishments for 2018: We’d organized 2 successful mental health conferences together, got a Pyradoodle 🐕 and spent a ton of time with our kids at our new cabin in Astoria, OR. She shared some of her goals for the upcoming year: working toward a Masters Degree in Children’s Literature and opening up a children’s bookstore. And I thought about mine.
Suddenly all of my memories of last years’ goals and hopes came rushing back to me. Dropping out of the flying car program. Not getting that self-driving car job. Not really learning Computer Science enough for it to matter. After sitting with that regret for a while I realized that my life is pretty great. Book knowledge isn’t ever going to be my thing. Neither will writing algorithms under pressure, but I have a lot to be grateful for!
Many of the tech workers out there do have that CS degree. They can get those Google-type jobs that may allude me for the rest of my life. But I have a unique set of skills I learned from being self-taught. Pushing myself to learn and excel with nobody grading or watching over me. Figuring out the right technology to embrace at the right time and teaching everyone else how to use it. To hustle and work hard to learn not just how things work, but how to use them to make my coworker’s lives better. The boldness I picked up as a missionary or the consensus-building skills I practiced in my college program. Those things I could have never learned just from getting a computer science degree.
I already have what I need to be successful. I just need to believe in myself.