Numbers and me, we never got along. Growing up, I was always the opposite of mathematically gifted. My very Soviet parents tried to get me into Russian math from a young age. When that didn’t take, they demoted their expectations to the much lower mathematical standards of the American educational system. That bar turned out to be too high as well, and I was consistently flailing.
All through my school years my parents tried to throw countless tutors at the problem. But despite the fact that I desperately wanted to master the material (and felt quite a bit of distress from my feeling of inadequacy), I never made much headway. In retrospect I think I must have some form of dyscalculia.
I graduated out of this, literally. I took one single precalculus course in my freshman year of college to meet a prerequisite, and that was the last time I set foot in a math class. I was relieved. I know just enough math to get me through my day-to-day life, and I’ve never been particularly anxious to learn more. The act of learning was what produced the anxiety in the first place. I remember crying on multiple occasions because it had come so naturally to my classmates, and I failed to make sense of it despite my sincere efforts. I felt stupid.
For years this fear of math was what prevented me from learning coding, even when it became increasingly clear that what I was hoping to devote my life to wouldn’t pay the bills. I was very pleasantly surprised when I finally began to learn to code and found that math does not, in fact, play a central role in most domains of coding. I’ve found learning to be challenging, but entirely within the realm of possibilities.
This week marked a shift unfortunately. The week was devoted to algorithms, and I once more came face to face with my dreaded numerical foe. It proved to be a week of blockages. The squiggly lines reminded me of our troubled history, a most unwelcome throwback. I understood, broadly, how much of the sorting algorithms that were introduced to us worked, but I struggled to articulate it. I tried to get better, but my efforts rapidly yielded burnout.
This was the week that really tested my resolve. Where in previous weeks I would awaken early with the alarm, this week I found myself hitting the snooze button over and over again until I had no choice but to get up. In short, I felt like I was a child again, and not in a good way. Why am I like this? Well, I don’t know. I would definitely like to get over this streak of failure. I find it very unpleasant to know that I am doing so poorly in something that people in my newly chosen field should be much better at.
But beyond that, the fact that this is such a longstanding theme in my life makes it seem like by failing to transcend it I am in arrested development. Nobody wants to be stuck in their teenage years, especially not when the association there isn’t, “I was the best quarterback my school had ever seen and I was well on my way to going professional before I blew out my knee and became a pudgy schlub,” but rather, “I felt like a moron because I struggled with quadratic equations.”
The only way out is through. Realistically, if I want to get better at this, I need to keep flexing that muscle and power through my insecurity until I can competently execute algorithms. But it just feels like such a stretch at the current moment. I have a lot on my plate as is, learning how to code from scratch is hard. This is undoubtedly part of my problem.
I mentioned earlier that I had never bothered to try coding before this year because I had been under the impression that it was math-heavy and math scary. That was wrong, it’s much more the execution of logic. Mathematical thinking is of help here, but ultimately the thing that makes or breaks a coder (in most domains) isn’t the ability to do advanced calculus, but the ability to think through the logical interrelations of the variables and functions in one’s code.
I can handle this better than the interplay of numbers, but I am still very shaky on the entire thing. It reminds me of learning a language, something that I have much more experience with. The sense of frustration is the same in both domains. I know what I want to say, and I broadly know the vocabulary that I need to get my point across, but up until a certain point, every sentence is a deliberate act.
Tackling both math and thinking like a programmer in one fell swoop is a tall order. There are people who could do both, but to me it feels like multi-tasking. I am fully aware that mastering algorithms would make me better at thinking like a programmer, and I know that I will need to get around to it eventually, but I’m afraid that I am out of my depth at the current moment.
Numbers and me, we never got along. And maybe that’s okay. Maybe it’s not about getting along, but about learning to coexist. This week felt less like a coding challenge and more like a reckoning with a very old, very stubborn part of myself. It’s exhausting to be reminded of past failures. But there's a strange comfort in recognizing a pattern. It doesn’t make it easier, but it does make it familiar.
I’ll return to plugging away at these algorithms when the time calls for it not because I expect to learn to love them, but because I must finish what I start. I must, even if it feels like climbing a mountain with a sprained ankle. And who knows? Maybe I’ll trip over a rock in just the right way and all of the pieces will suddenly fall into place.