Personal Essay: The Beginning—Failure & the Fear of It

I didn’t know what software development was when I went back to school to learn how to do it. I thought software was stuff that ran on my computer — which was not wrong, but was certainly incomplete. Microsoft Word was software, but the internet was not. The internet was the web, and I didn’t know how it was made.

All the code in the world I had written consisted of some CSS I edited in a Wordpress theme when building the website for the high school I worked at. I also embedded a Google calendar iframe (and learned what an iframe was). I still think of that calendar as the first integration I ever built. I didn’t realize at the time that was considered “coding,” I thought of it only as one of the few parts of a job that I was otherwise bored by that I actually enjoyed. Some months later, I would hear someone describe Wordpress as the gateway drug to programming, and while I now think that actually undersells Wordpress programmers, it rang true for me.

When I tell people now what I was doing before I changed careers, I tell them that I worked in an alternative high school doing data management and leading the outdoor education program. This is all true, but it makes it sound somewhat more interesting than it was. Data management really meant building massive excel spreadsheets to contain student data because we didn’t use traditional grading systems, so the district-supplied software didn’t work for us. Spreadsheets only I knew how to use, and that were very manual to set up. A desire to automate those spreadsheets was one of the first times I thought, maybe I could learn how to build something that could do this work for me.

Leading the outdoor education program meant that a couple times every year I got to take groups of kids on backpacking trips or to do ropes courses or to the sand dunes. These were incredible experiences, in a way I’m not sure I could describe to someone who’s never seen the impact nature can have on teenagers who have never left the city before. But usually it was purely logistical — coordinating campsites and the rope courses, collecting the mountains of paperwork that the district required for 300 students to be anywhere but the safety of the school building. Buying groceries for 300 students to be on their various trips for a week was not a laughing matter. Grocery delivery was not a thing then, or if it was, it wasn’t in the school budget. This work added up to be something that meant something to some of the kids, to some of the families — it was good work, I think, if there is such a thing. But I was bored.

I knew something had to give, but I couldn’t for the life of me figure out what that looked like. Physical therapy was interesting, but going back to school for three years was not. I don’t remember when Justin first suggested programming, or how I responded when he did, but I didn’t consider it very seriously. It was so unlike anything I’d ever considered for myself that I don’t think the suggestion even felt real. I thought of programmers as people who were good at math and had been taking computers apart in their bedrooms since they were children — I can laugh about this now, but that’s how inaccessible programming felt to me. But Justin kept coming back to it. More than once in our marriage I have looked back on things, on how I ended up where I did, and realized that he sees me more honestly than I see myself sometimes.

But the seeds were planted, even if I hadn’t fully acknowledged the idea yet. I took a Udemy course on web development, which was entirely front end. It walked you through building a few basic projects, but they had no databases, no servers. I still had no concept of these things, or that they were things I could hope to program. I enjoyed it, but I still didn’t know what I knew, and I definitely didn’t know what I didn’t know. I could follow instructions on an online course, but I couldn’t do anything on my own. When I got things to work, it usually felt like I’d gotten lucky with one of my many shots in the dark, not like something I could reproduce, and certainly not consistently (I still feel this way sometimes, even though I have been consistently been producing work for years now).

“Bootcamps” abound these days. They did then too, in 2015, but less so. Some are better than others, as with all things. I applied to both Galvanize and Turing, because they were the two programs that were longer than ten weeks and local to Denver, where I was living at the time. The idea that I could change careers in six months was daunting enough, trying to imagine doing it effectively in ten weeks felt preposterous to me. I called in sick to work to interview with Turing. I blocked an hour on my calendar to interview with Galvanize and did it from my office, since it was virtual. My office was right behind the front desk at the high school — I did have a door, but I also had a big glass window that kids sometimes made faces at me through when they walked by. I wrote code that I didn’t understand as part of the interview process with Galvanize; I wrote no code at all for Turing. I simply had to prove that I knew how to think. I was accepted to both programs.

I got into Galvanize first and I had every intention of going. I finished the application process with Turing as a formality, but the fact that you had to submit a video as part of the initial application packet almost talked me out of it. It’s such a small thing, but at the time it was not — everything about the process was overwhelming (really the decision of whether to totally upend my life was the overwhelming thing), and I had limited capacity for that emotional overwhelm. That 60 second video was almost the straw that broke the camel’s back. I convinced myself to do it though. Keep your options open, my mom told me as a child, as a teen, as a young adult, again and again. Keep your options open.

Here’s what it came down to, really: Galvanize promised to teach me web development, and Turing promised to teach me software development. I’d taken the Udemy course in web development, and I thought I at least knew what those words meant. I didn’t know what software development entailed. Those servers and databases I’d never touched before? I didn’t know they existed, I certainly didn’t know that I would come to love them. I definitely didn’t know that web development and software development are largely the same thing. So, okay. Words matter, particularly when it’s not clear what they mean.

So I was going to go to Galvanize, but I went to my interview at Turing anyway. And like I said, they didn’t make me write any code, which was nice, since that’s what I wanted someone to teach me. But more than that: Turing was in a basement, and the primary thing I saw was people. Writing code. So many people, computers connected to televisions, working through code together. Standing or sitting at IKEA desks, things I didn’t understand on the whiteboards. Code. People who looked like me but also people who didn’t. Galvanize had been…well. Fancy furniture, ping pong tables — there’s nothing else really to say about that. You can imagine it, I’m sure. I sent an email to my contact at Galvanize and thanked her for the opportunity, but told her I was turning down my spot, and that I was going to Turing instead. She never responded.

“You would actually rather be writing thousands of lines of code,” David asked, “than doing this?” The question was sincere, and I understood why he would ask it. It was Friday afternoon, and we were eating cake. I don’t remember why. It might even have been his birthday. Only some time later would I realize that I would likely never write a thousand lines of code in a single day. Programmers in movies might do that, but programmers did not, do not.

I did write code every day though. Really, every day. I was too scared not to. I was scared of everything. It didn’t start as fear, I don’t think. I had a classmate who got it into his head to care about his GitHub streak — that field of little green squares that had to all be green, never grey. Don’t break the streak. I have always been one for checking off boxes, for arbitrary measures of success, as long as they told me I was succeeding.

(Little green boxes say nothing of the value of the thing that you create, or even necessarily that you’ve created anything. Did you know that creating an issue on someone else’s GitHub repository gives you a little green box? You can create nothing but work for someone else, and those boxes will still tell you that you’ve succeeded). The metric is all wrong, but it was something I knew I could accomplish in a time when everything else felt uncertain. I felt truly on the brink of failure — all the time, and also for the first time in my life.

It feels strange to consider now, how exactly I’d followed the path set out for me until then, how little I’d been challenged. That makes it sound passive. I take responsibility for this — how little I’d challenged myself. So now that I was doing something with an unknown outcome, something I wasn’t sure I would be able to do at all, I was petrified.

People talked, and still talk, about “imposter syndrome” a lot. Imposter syndrome is the idea that you feel like any accomplishments you’ve had aren’t really yours — they’re just luck and eventually, everyone will notice you’re a fraud. I don’t think I felt this. I knew so little about software before I started that I began without any preconceived notions of being the “right” kind of person to write software. Failure though, I understood, even if only in the abstract. Failure was something to be avoided — I didn’t even recognize yet that it was something I could learn from, maybe even celebrate. I talked about this fear with the people I trusted most — my husband, my brother, a friend I’ve had since I was eleven. They answered me and loved me through this fear. I cherished this, in particular, from my brother:

“You are now and will always be fully yourself in all your Adrienne-ness; all your successes and failures are already contained in you and they will not change anything, least of all your value to anyone who loves you properly.”

But fear is an emotional thing, and it is not always rational, so no matter how loved I was through it, I couldn’t quite banish the fear. So I wrote code every day, because I could control that sea of green squares. And perhaps it was good for more than that in the end — in writing code, I did in fact get better at writing code.

I let my need to write code every day slide as soon as I graduated from Turing, but only for a few days while Justin and I drove across the country. I don’t remember being particularly nervous then that I would forget everything I knew, but I think that’s only because I was more nervous about the cross-country move, about finding a job, about selling our house in Denver, about finding a place to live in Seattle…well. I had enough to be anxious about. I picked the every-day coding back up again as soon as we were settled, perhaps nervous that no one would ever hire a developer who didn’t code every day, letting it slip again only once I’d started my first job.

It wasn’t “slipping” by then though— it was intentional decision to reclaim my time. I only occasionally write code outside of work anymore, and only when I actually want to, never because I feel like I have to. I did and still do fail in small things, in individual tasks here and there, but not in the big things: I graduated, I got a job, I am good at my job. That sounds like a happy ending — it is, but it’s also not really an ending. I’m still early in my career. I have a job in a field that I had little concept of five years ago, so the idea that I can imagine what I’ll be doing another five years from now is unreasonable. But I’m less scared of that now. I’m more confident in my ability to learn and adapt — hell, my ability to fail. Success and failure are equally transient.