Perhaps all of us define ‘fun’ in our own terms, and perhaps what is fun for me is not at all fun for you, but something I’ve come to enjoy in adulthood is tracing. I like, when I notice a glitch in my thinking or feeling or attitude, to trace that glitch back to its point of origin. Often, I find there is no singular origin. A glitch in the mind or heart at age 35 is often successive, the result of an array of experiences, each with its own root somewhere in my past, and it can be hard to tell which was the first to germinate, to take hold in me, somewhere.
I spent two months preparing for the course, finishing online tutorials in various programming languages or the basics of web design, certain that if I did not (or perhaps even if I did), I’d be the slowest in the class, holding everyone up with my incessant and directionless questions. So it was a surprise when during the first week of class I realized: I was doing well. I struggled at times, of course, with certain concepts that required more practice and repetition, but overall, I understood the material and wanted more. More information, more exercises, and wished we could go even faster. There was so much to learn, and so little time!
This desire to learn, to digest new and challenging material followed me into almost every realm of the course. Except one: algorithms.
Something happened to my brain when faced with an algorithm that wasn’t ‘beginner’ level. It effectively shut down, sealed itself off like a storm window in the bitter cold. I could spend hours trying to figure out how to write a program that did this or that, but when it was time to practice algorithms, I struggled to maintain my curious desire. My aversion to algorithms trailed me like a bad dream; it kept me questioning, despite my progress in the course, that perhaps web development was not for me, perhaps this was yet another erroneous choice to catalog in the course of my life.
But I used to be a teacher, in one of my previous lives, and I recognized the symptoms I was suffering from. When I taught my students life drawing, there were inevitably those who struggled to recreate with pen or pencil what sat before them. These students did better or worse depending almost wholly upon their attitude. So I made it my job to encourage them: “Not everyone is going to be an artist, but everyone, every single human, can learn to draw well.”
I noted, however, that while I believed in my students, I didn’t quite believe in my own ability to learn anything. There were myriad things I had simply accepted that I could not do. The king in this realm of things I could not do was Mathematics. And it wasn’t for lack of interest. I had long thought math was beautiful, alluring, philosophical even, but I could not penetrate it. I could only read about math, I insisted, not do it. But as an adult back in school, I’ve questioned this belief, and I’ve attempted to trace it back to its root.
School wasn’t my favorite thing in the world. I was insatiably curious, but an under-performer in the classroom. I learned by asking ‘why’, and many of my teachers found my questions irritating, leaving them unanswered. They disengaged, and I did too (and later, when I became a teacher, I NEVER refused to answer a ‘why’ question!). I feared that because my grades weren’t fantastic, perhaps I wasn’t very smart. Classes where I struggled, like math, were further proof that I must indeed be lacking something essential; and I found myself giving up, retreating into worlds where I met new subject matter with relative ease: the visual arts, writing, languages. Surely, if something was hard, it meant I’d never be good at it.
I have no idea where the hell I got that idea, but I’m glad that at some point, I abandoned it. Teaching was an absolute nightmare when I first started. There were more days I can count when I absolutely and totally failed, sans any silver linings. I considered giving up probably hundreds of times, yet I pressed on, eventually becoming an excellent teacher. But I had to learn how, and that path was not merely threaded with struggled, it was struggle.
Perhaps the third time I faced a series of algorithm challenges, I realized that I’d felt exactly this way before. It became embarrassingly obvious the day we wrote an algorithm to sum all of the even numbers in the Fibonacci sequence under four million. Algorithms felt like math, even if the algorithm wasn’t mathematical. Facing a problem I didn’t know how to solve wasn’t just a challenge, it felt like a stop sign. It had a voice, too, and that voice always had the same message: “what the hell are you doing Katie? You’re an artist, you’re an emotional creature, and you think you can write computer code!? You can’t even do this supposedly simple algorithm. And don’t forget, you failed precalculus!”
My historical failure in math was at first a sign that I shouldn’t be entering a logic-heavy career field. But over time, it became less of a sign and more of a pointer. It pointed to the space in my memory where I had decided that difficultly meant STOP, meant I had no business doing what I was doing. I wonder if I took a math class now, with a better attitude, if I’d be a solid B student, even earning a few A’s here and there. I started wondering about all of the things I could learn if I stopped believing that struggle meant failure, meant stupidity. Part of me wants to sign up for algebra at a local community college, part of me remembers I’m already far busier than I’d like to be.
What puzzles me the most is the fact that, outside of a formal classroom, I am not averse to struggle. I seek out challenging situations, I force myself to face my fears(like, I went skydiving because I’m terrified of death). When I was a teacher, I never gave up on trying to find solutions to problems that arose in my classroom. And the essays I write for fun? They aren’t ‘easy’ but require months of research on subjects like geology, physics, & astronomy. So. Why was I avoiding struggling in the classroom?
In computer science, the word ‘root’ carries a multitude of meanings. It can point to a computer’s root directory; the single file to which all other files can be traced. There is also a tree-like data structure in programming, comprised of parent and child nodes (think branches, but growing downward). A node that has no children is called a terminal node, or a leaf node. And the parent-less node at the very top, that is responsible for the creation of every node below it, is called the root node. There is also such a thing as a root user. Depending on the computer’s operating system, the root user might be called its superuser. It can do things no other user can do, it can tell the computer to perform tasks that might otherwise be forbidden.
I think our person is composed of more roots than we can count. Some of the roots that comprise us bring us calm, security, joy, and others continue to cause us harm, fear, and uncertainty. But I am not one for cutting out bad roots. I am interested in tracing my way to roots because I’d really prefer to heal them. I am interested in examining their shape, what sort of soil they grew out of, what they’re holding onto, and how, perhaps, they can be repotted, remedied. If you imagine the single root of a tree, the idea of cutting it out isn’t a big deal, there are hundreds of other roots to assume its job. But if you imagine, say, the root directory of a computer: what happens if you delete it? You lose everything.
To cut out the roots that have caused me paralysis in the face of math (and more recently, algorithms) would be a disservice to my growth and expansion as a human, and as a developer. It would, in reality, be more of the same: cut away the difficulty, don’t parse through it.
There is a very real and very naive part of me that still clings to that fear: what if I am not smart? There is a part of me that still believes: if it’s hard to learn, it probably means I ‘shouldn’t’ learn it. And there is a part of me that still struggles to trust myself, my choices, my goals. So it becomes easy, with all of these parts in motion, to be faced with a tricky algorithm and all but shut down. It’s not just a challenge, it’s an entity with a voice and nasty message and it tries to assume superuser status and direct my thoughts and make me feel terrible about myself.
So what am I doing to remedy this? Well, several things, as there are several roots. I have learned to ask for help, recognizing that sometimes working on algorithms with a friend is a bit more approachable. I am taking an online course all about algorithms. I am forcing myself, each week, to sit down and work through several challenging problems. I am using logic that used to scare me (like recursion) in programs I am writing for fun (a recursive poem-generator!). I am asking those more gifted with this subject matter to explain what they know to me, and I listen.
And, perhaps most importantly: I listen to that crazy voice in my head that stopped me from learning math back in the eleventh grade. I listen to it in order to better understand where it’s coming from, why it repeats the message it does, and then I respond to it, kindly of course, in a sideways attempt to befriend it. I have found that what I befriend can no longer frighten me so terribly, and thus can no longer stop me from doing whatever it is I need or want to do. It is perhaps better to rewrite the messages from our roots rather than cut them out; we can learn from them, and we can love and honor those old parts of ourselves that no longer serve us, repurposing them to become a wiser, more compassionate human in the present.
But the most amazing thing I learned during my bootcamp had nothing at all to do with my future career as a developer: it was the recognition that in learning about anything, we are perhaps, more deeply, learning about ourselves. Learning to code became equally about understanding and unlearning aspects and tendencies of my history. Understanding root in computer-speak became another way of understanding the roots that make up each and every one of us. And doing well at something that I was terrified I would fail at? A reminder that we are so often wrong about ourselves, that we sell ourselves short, that we doubt our abilities and minds and hearts, needlessly.
Learning to code has been equally freeing as it has been constructive, and I am, each day, infinitely glad for this experience: for what it has gifted me both personally and professionally, and for what I can now do with my future because of it.
(I’m also grateful for our teacher, who never once refused to answer a ‘why’ question, no matter how tricky, whether or not he knew the answer off the top of his head, and no matter who asked it.)