DEV Community


Solving the Problem

After spending 6yrs teaching high school math, I'm just starting my transition into software development.
・4 min read

For a long time, I had a bug. Symptoms would flare up every now and again, but most of the time it was a low-level, nagging sensation. I'd go about my daily life -- teaching high schoolers math, for the most part -- but there was some part of my brain that didn't feel quite right. It wanted something else. Folks had been telling me for a while, and I suppose their idea gradually wheedled its way into my own subconscious. "You should learn to code." "I think you would really like coding." "You think like a programmer." They kindled a curiosity, one that has refused to be doused. I started to feel the itch, and as the months passed, it grew so that I couldn't ignore it any more.

I suppose I’ve always loved patterns and problem-solving: My favorite card game by far is Set. There’s something so satisfying to me about the simultaneous flexibility and rigidity of the 'set' structure. A strict logic determines what “counts”; and yet within this set of rules, myriad possibilities abound. You could search by color - green, red, purple; you might strategically count the singles, doubles, and triples; or you could eyeball the diamonds or the squiggles alone. Sometimes, though, it’s a matter of taking in the whole picture, foregoing a methodical search and almost giving in to imagination in an attempt to find a newly elegant and efficient way of making the sets pop out.

But anyways, logic and patterns and puzzles have always made me tick. So perhaps it’s not surprising that when I left college (my supremely useful Gender & Sexuality Studies degree in hand), I pivoted toward math. After all, as G.H. Hardy says, “A mathematician, like a painter or poet, is a maker of patterns. If his patterns are more permanent than theirs, it is because they are made with ideas.”

Over my years of teaching math, Pre-Calculus became my primary passion. Pre-Calc asks students to discard prior notions of math as a discipline bounded by rigid rules. It is a class that emphasizes the problem-solving process, moving away from a dependence on formulae and focusing instead on an investigative/exploratory approach. My goal is to foster a curious and thoughtful mindset, to urge students to experiment and to develop in them a willingness to move through ambiguity. Indeed, this is what I love most about math: the imperative creativity involved and the possibility for elegance. Perhaps driven by an abstract question or ultimate goal, the problem-solving process itself remains open-ended, the only limitations being our ability (or willingness) to imagine different paths towards a solution. I’m enthralled by the search for simplicity amidst seeming chaos, the incisive equation that cuts through so many calculations and drives at the heart of the problem. There is beauty and art, I think, in tinkering and streamlining, asking discerning and deft questions, and crafting the most precise and graceful explanations.

Programming is a natural extension of this type of thinking. As in Set, as in math, there’s a well-defined logic providing a framework, a structure. A language dictates certain rules of syntax and communication. But beyond that, it’s a wide open puzzle. It’s not just about getting from Point A to Point B. Achieving some product by brute force doesn't count. It’s about the how: How to nimbly navigate, to execute and maneuver with elegance and concision.

So it may have started as a mere itch. My initial interest in software engineering may have stemmed mostly from a desire to immerse myself in a this type of thinking, one that seems particularly worth fostering in this ever-evolving, future-oriented world. But the bug has turned into a fully-fledged passion.

As I've immersed myself more and more in software engineering, I've come to believe that software engineering is a potential-filled tool for empowerment. As someone who holds a deep-seated passion for social justice, I’m interested in finding a way to marry tech and engineering with work for social change. I want to empower students, youth, and underrepresented populations to speak with conviction, and I want to provide them with the relevant tools for letting themselves be heard. I want to use code to build technologies that address disparities rather than perpetuating them. I want to work to eliminate implicit or unintentional inequities in new technologies. I want to push tech companies to create a rich texture of voices, experiences, and stories in their workforces. I want to use my coding skills to bring folks together, to help organizations and social justice initiatives coordinate with one another, to engage a wider spectrum of society and start conversations, to offer a platform for discussion and collaboration.

To be honest, I’m not sure how to do these things with code yet. But coding seems like a crucial tool for empowering people with information, reaching folks who have been traditionally underserved, and making connections among coalitions so that they might work together to maximize their impact. And so I'm here, learning to code. I'm here, pursuing new knowledge in the hopes that being able to code will help me pursue these bigger-picture changes.

Discussion (0)