I’m a mathematician. Mathematics is an end in and of itself. It is the language of the universe, and was woven into the fabric thereof. When I am discovering mathematics, I am deciphering our existence and fundamental properties of the world around me. Math is an absolute truth; we may as humans be subjective in how we interpret it, or how we claim to have invented or used it, but mathematics is what it is whether we like it or not.


A natural extension of mathematics into engineering is computer science, especially software and coding. While math and CS are often grouped together to form the T and M in STEM1, they should not be viewed on the same plane. Coding is a means to an end—mathematics, analysis, and such—and, while it offers great power in solving problems, cannot be elevated to the level of God; it is a servant thereof.


With respect to pedagogy, how should code be learned or taught? Coding exists because it is necessary to solve problems that would otherwise take humans too long. From the simple handheld calculator to the most complex transformers in machine learning, coding is subservient to its problem, the root cause, a fundamental question. It would suit us to respect the relationship between code and problem, to teach code not as an entity interesting in its own right, but in its ability to solve problems. Even the more intricate and nifty features about a particular programming language should be viewed with respect to their grander utility.


In 2017, before I formalized the Triplex Mindset, I did not contemplate coding with respect to its surroundings. I viewed it in isolation, simply a nice mechanism for experimentation. I learned Java first, then Python, and a few other languages, but they never felt close to me, nor did I have a good big-picture view of how to compartmentalize the various properties and aspects of coding languages. As a result, though I could (as with most academic subjects) pick up the concepts at excellent speed, I never enjoyed coding, certainly not in its own right, and also not as a method of solving problems, as I hadn’t developed that understanding yet.


Instead, I conceptualized coding as a mission in itself, so that it should afford some philosophical height. As a result, whenever I received a syntax error or a file wouldn’t load, I grew frustrated as if the mistake never should’ve existed. That mindset caused me to gloss over errors, ignore understanding granular code, and distance myself from actually writing code—wrong to the core. Because I viewed code as on the same level as the tasks requiring its implementation and use, when code presented its true nature, I was repulsed.


The breakthrough happened in late 2020, when I learned HTML and CSS for websites. It was then I understood that code was meant to be the bricks and mortar of a house, that it was the same type of activity America’s construction workers engaged in: laboring steadily and consistently to create a house. There was no high-level philosophy for coding, no secrets or tricks. The only path to success is to get your hands dirty, immerse yourself into the code, go through the ‘low-level’ debugging, search up documentation and existing efforts to solve problems (e.g. programming forums), performance tune, and continue the process. And once I found that this applied across the coding world—not just HTML and CSS—I gained an appreciation for the role of coding: it is indeed an empirical, practical, experimental process, and does not belong as a theoretical or high-level pursuit. Thinking so would not only misrepresent and thus insult coding, but also myself, as I would never learn to appreciate coding for its blue-collar nature.


Now, when I code in machine learning, for project algorithms, and for my private dashboard built like a website, I don’t dread the code anymore. In fact, I’m growing quite fond of it. Because I correctly interpreted the role of code, I no longer complain about fixing syntax errors, searching for a bad return statement, or using a different type of list. Instead, I’m excited for the next project, when I create a wonderful house with code, in all its glorious blue-collar nature.


Footnotes

1 I dislike the acronym STEM. I don’t think there is sufficient cohesion between mathematics and science, distinct ends in themselves. Mathematics bears a philosophical component of fundamentality that science doesn’t. If the acronym were TEM or MET I would probably support that.