I’m a traveler and a professional programmer. Both require constant learning and adaptation. Both require me to change the way I think rather frequently. And, both have taught me to embrace new perspectives.
As a traveler, I’ve been fortunate enough to spend several years at a time living in various places. The most different for me so far was Bulgaria, and it started with the language. Bulgarian lacks a word for “fun”. It also lacks a word for “privacy”. People often express these concepts in Bulgarian, but the have to use several words to do so. I don’t know why this is true, but it had an effect on the way I lived and thought in Bulgaria that has stuck with me.
As a professional programmer, it’s important for me to keep learning new programming languages to address the state of the industry. A few years ago, I could see that massively parallel programming was something I should understand, so I started a bit of programming exploration in erlang. Oh what fun! It showed me different ways of thinking about data and reducing nearly every operation to pattern matching. Flash forward a few years and I still program primarily in python, but my appreciation for the concepts of erlang remain strong, and they influence the things I write and what I know is possible.
For me Bulgarian and Erlang are both languages that changed the way I think. Bulgarian has enabled me to recognize where my assumptions lie about ideas and concepts and to imagine what other assumptions could be questioned. Exoticism has fallen away. Erlang showed me that pattern matching is at the core of nearly everything computers do to make decisions. I can now imagine far more complex situations and programs which usually leads to simpler code.
To expand your mind, borrow someone else’s language and fall in love.