Eugene Fedorenko is Designing, Writing, and Reading

The language of programming

My friend Artem Chistyakov wrote a blog post exploring connection between English language and programming:

The teacher proceeded to decipher the program line by line. Avoiding English translation altogether, she assigned each lexeme a meaning and encouraged us to memorize them. After a while, we’d look at the program above and interpret it as if it was written in emoji.

🔲
➡️ 100
⬇️ 100
🖌 "➡️ 20 ⬇️ 20 ⬅️ 20 ⬆️ 20"
🏁


I still often think about this approach to teaching programming and how it bypasses the natural language link altogether. It’s amazing how a series of simple commands meant to be self-descriptive to an English speaker presents a serious coding challenge for everyone else. And coders we were. Twenty-something little compilers.

I had a very similar experience learning to operate computer and program as a child. Not really understanding what English-based commands like cd or mkdir really meant, they were basically magical spells to me. To this day I have these “Aha!” moments when I realize that something like <hr> is actually a shortcut for a “horizontal ruler”.

His observation about Excel is spot-on, too (and I didn’t know that those formulas get translated back and forth!):

I won’t lie, this looks outrageous even to me. But not to my Dad, who is a civil engineer and doesn’t speak a word of English. He is dangerously fluent in Excel’s formulas, which he uses extensively in those hundred-sheet documents bristling with filters, conditionals, and pivot tables. Then the roads and bridges are getting built based on those calculations. He doesn’t know what IF means, but he uses ЕСЛИ all the time. What’s amazing is that if he emailed you one of his spreadsheets and you happened to open it in your “real deal” MS Excel, every formula would appear in English, but work just as he intended.