
7 minute read
Anh Huy Nguyen “My Odd Issue with English”
MY ODD ISSUE WITH ENGLISH ____________________________________________________________ by Anh Huy Nguyen, Grade 12
At first glance, it is ironic to me that I was one of those people who had more trouble with English than with computer science (CSc)—the subject that many see as among the hardest subjects in the world. Upon further inspection, however, I realized that both of these subjects require a different kind of mindset, since a computer program is not like an essay. Not at all. But first, let me explain the general mindset you have to take in order to study Computer Science, from the perspective of a newbie in the field. Only then will you understand my trouble with building the Lego set that is English.
Advertisement
Since coding can be hard to understand to people not in the field—what with its technical lingo and mathematical terms and all—here is my attempt at explaining what programming is in layman’s terms. Coding is about writing instructions to a computer, and algorithms are a set of instructions to the computer. Code can be written in different programming languages such as Python, C++, Java, etc., each of which are a unique set of tools. Because computers operate on binary operations (0s and 1s), these tools are designed to translate what you write in accordance with the language’s human-readable rules (or its syntax) into such operations so that the computer can understand. In essence, writing code is similar to teaching a toddler how to do a task, except that the toddler will interpret your figures of speech as entirely possible.
In CSc (and its cousin, software engineering) one must be able to develop algorithms for many problem sets. In order to do so, one must dissect such problems into multiple pieces. Then, they have to find appropriate algorithms for each of those pieces and combine all of them together to get a theoretically functional program for that specific problem set. After that, they can revisit it to see which part should utilize a different algorithm that has a better performance in their coding language. In the event that the program is beyond salvation, they might as well recode the whole thing and put the previous mess on Reddit in “r/programminghorror” or equivalent for those sweet karma points. In the worst-case scenario, Stack Overflow (SO) is your friend—the one that would give you answers without explaining what they are; unless the challenge is an assignment in university where code plagiarism can incur severe consequences. In short, coding is all about divide-and-conquer, separating each problem into highly specific but simple and smaller ones that can be easily tackled using the base knowledge or just yer good ol’ Google and SO.
So, now that you’ve heard my brief explanation of a coder’s mindset, you should also be brought up to speed with my English essay woes. You see, English essay topics, unlike programming challenges, can be interpreted in multiple different ways. This can be explained by what I call the LEGO vs Gunpla (Gundam Plastic Model—basically model kits of cool robots from the Gundam universe) analogy, with writing essays and programming being LEGO and Gunpla, respectively. (They do not require glue to assemble and are awesome to play around with, so why not?) Also, LEGO is highly versatile and Gunpla is highly specific, regarding the way to build an object. But both of them require some degree of rigidity, similar to how essay arguments and algorithms require a solid logical structure.
MY ODD ISSUE WITH ENGLISH ____________________________________________________________ by Anh Huy Nguyen, Grade 12
Take LEGO, for example. Say you have to build a cup using LEGO pieces. The first thing you will notice is that there are multiple variants of a cup; a coffee cup, mug, or even a bucket (if you are lenient on the definition), similar to how an essay topic can be interpreted in many ways. Furthermore, a cup can be made using different piece compositions. Those compositions can either be complex combinations of various kinds of pieces—like the L-shaped plate, the regular 2x4 brick, etc.—or, you can just keep it simple with the ol’ reliable 1x1 and 2x1 plates. (These are the ones you are most likely to lose when building a LEGO set.) The finished LEGO product can have different shapes, sizes and colours, but in the end, they all fit the criteria for a cup: an open-top container used to store liquids for either storage or consumption. Likewise, the written result is an essay that is extremely unique with different styles, elements and structures.
Now, as for Gunpla, the task for you is to build a Gundam Astray. It must be a Gundam from the Astray line; it cannot be the RX-78 Gundam nor the Unicorn Gundam: it must be an Astray Gundam. Likewise, there is only one interpretation of the criteria of a typical problem in programming. Even though the requirements are strict, there are multiple kinds of model kits following the same criteria: Astray Red Frame, Astray Noir, Astray Blue Frame D, etc. There are many different types to choose from that still fit the criteria for a Gundam Astray, yet there are a limited number of choices to do so. This is similar to how there are many different possible solutions to a coding problem, yet the number of such answers are rather finite, since they have to obey the strict rules of that problem.
Back to the models. Although their main body parts are all extremely similar to one another, the different equipment and colours make them stand out from one another at the same time. Also, the pieces comprising those body parts are unique to the Astray line; and even then, some parts can only fit on a specific part of the robot. For instance, parts for assembling hands will not fit the leg without glue. In comparison, each solution’s characteristics can be different: one algorithm may use a different syntax or even another coding language. Like building any model kit, the steps to construct it are clear-cut: cut the pieces off the plastic grid, assemble the frame, then the armour and equipment. Similarly, coding must follow an order: the program will not work properly if the input receiver is executed after the algorithm that processes those inputs. Along the way, you can improve your model multiple ways: from simple things like strengthening the joints, to more complex stuff such as painting it or even creating new fitting pieces. Comparatively, you can make the program run faster via implementing different solutions (changing the base frame) or improving it further (customizing the kit to improve its durability and/or its looks) or even creating a specialized algorithm just for the problem.
In the end, within that strict definition, your result is definitely an Astray Gundam—the one with that recognizable, eponymous frame (and possibly a ton of swords and guns put on it to satisfy your inner child). No one can argue otherwise unless they design the model themselves. In the end, you get programs with narrow criteria that solve the same problem
MY ODD ISSUE WITH ENGLISH ____________________________________________________________ by Anh Huy Nguyen, Grade 12
with variations in areas like how fast they are executed or how much memory they consume.
Upon studying my analogy, I hope that you can now understand my frustrations. There is a structure to an essay in response to a topic, so I keep wanting to apply my programming mindset. If I keep on stubbornly using that mindset in English, my brain essentially suffers from a stack overflow: thinking through all the possible aspects of an essay topic too many times so that my brain gets overwhelmed with a million different topics to write about. Take this very personal essay, for example. The topic is to write about anything that is non-fiction. There are millions of topics to choose from—such as “the Canadian experience” or “why procrastination is good for your life”—and thinking about the possible scale of EACH topic can be exhausting.
That’s why, in my opinion, English is a harder language than Python—one of the most beginner-friendly programming languages—or even the dreaded Assembly–that one language that talks almost directly with the computer’s binary. Code can be concise and beautiful because its syntax depends not on grammar or expression, but on the discrete logic of the coder. Even though it can be hard to understand (especially the infamous one-liner), it is mostly due to a lack of knowledge in a language’s syntax or specific algorithms—those are discernible things to possibly rectify and improve. In contrast, in essay writing, there are possibly countless numbers of ways to express arguments that fit the given topic, not to mention all the debugging that comes when dealing with concepts such as abstract “flow” or the rationality of the non-binary nature of arguments (nuance is king in English). But at least it is not all futile, since the mindset of programming, like programming itself, is modular; it is possible to pick and choose what aspects of that mindset are applicable to English to build an essay.