On Spanish and Code
When learning Spanish, I had a hardwired tendency to want to translate an expression from English directly word-for-word by framing the new expression into the stencil of vocabulary and syntax that is already established in my brain. For example, to say the phrase “today is Sunday” in Spanish requires nothing more than the swap-out of its Spanish equivalent, “hoy es domingo”.
This tendency to “transfer the forms and meanings, and the distribution of forms and meanings, of [my] native language [sic] to the foreign language” (Lado) also applies to code. Many times we have been instructed to begin projects without computers, creating models using wire frames and other resources in order to layout the problem and simplify it, or “translate” it, into basic English, as it were. This helps us to create a comfortable framework for thinking through the problem without getting caught up in “any essential difficulty in the features of the new language themselves” (Johnson).
However, this default calibration also comes as a disservice when an idea in another language is not expressed structurally in the same way as it is in English. For example, in the English sentence “I like dogs”, the subject (“I”) performs an action (“like”) on the direct object (“dogs”). The same sentiment is expressed in Spanish as “me gustan los perros”. In this sentence, the subject is the dogs (“los perros”) performing the action of pleasing (“gustan”) onto myself, the direct object (“me”). In this case, it is more or less a direct translation in regards to vocabulary while syntactically, the two are completely distinct.
While the Ruby language can be said to read like English, a computer and a human communicate differently. Ruby reads code as instructions and executes them. Computer communication switches from monologue to dialogue primarily in the cases of user input or throwing errors. The dynamic, the back-and-forth, the inherit methodology in the language, is different from the exchange of data in a given English conversation that I am used to. For this reason, I have found it imperative to detach myself from past solutions and approaches in English in order to understand the Ruby problem in front of me which is fundamentally different from anything else I have dealt with. For example, when we learn something new in Ruby that does not seem intuitive or logical to my English- and human-biased mindset of communication, I try to consciously shake the patterns of learning that I know and replace them with a “general (non-domain specific) cognitive system — a general abstract problem-solving system” (Johnson).
It is evident, then, that the transfer of old habits to a new language can be both detrimental and beneficial to the acquisition of a new language. To maintain a consistent yet flexible English translation of a Ruby problem in my mind facilitates and accelerates the learning process insofar as the language structures involved in solving the problem are the same. However, in the face of error, the fluidity, or lack thereof, in the conversation, seems unorthodox and appropriately derails prior known modes of thinking. This subsequently develops into a frustration we experience “when trying to solve a problem by pursuing solutions that have worked for us in the past, instead of evaluating and addressing the new problem on its own terms.” (Morozov). It is at this point that it becomes necessary to dissociate communicating in English from communicating in Ruby, and instead, foster the mental correlation between problem-solving in English and the learned formal properties of Ruby, “unaffected by time and experiences” (Johnson).
Johnson, Marysia. A Philosophy of Second Language Acquisition. New Haven: Yale UP, 2004. Web.
Lado, Robert, and Charles C. Fries. Linguistics across Cultures: Applied Linguistics for Language Teachers. Ann Arbor, MI: U of Michigan, 1971. Web.
Morozov, Evgeny. “The Einstellung Effect.” New Scientific Concepts to Improve Your Thinking. Ed. John Brockman. New York: Harper Perennial, 2012. N. pag. Web.