In a recent chat with a friend we touched upon the topic of how learning a new language after moving to a new country is much more involved than just learning which words to say and how to say them. We are faced with new cultural references, mannerisms, slangs, rules and regulations. It’s an entirely new context to parse and understand.
I’m originally from Brazil and moving to Canada was no different to me. My English was functional at best and it wasn’t uncommon for me to have trouble expressing myself and spend more time listening rather than talking. Even after considerably improving my English, I had trouble participating in conversations involving music, politics or general cultural references. I still do sometimes.
Back to the topic at hand, having that conversation made me think that the software development industry is not that different from an individual learning a new language. You start to learn
The most challenging aspect of it is that you haven’t changed your physical location, so your mind doesn’t have this cue to think “It’s alright, I’m new here and I will have to adapt”. What’s worse, our context keeps evolving every few years. It’s no wonder imposter syndrome is so prevalent in our industry. It’s akin to moving to a new country over and over again, let’s call it a “digital country”.
Being an engineering manager gave me the privilege of interacting with developers with a wide range of skills and experience. Every single one of them had something to learn and struggled while moving to a new digital country. Be it a new framework, programming language or a different field. Sure, you can sometimes bridge your knowledge the same way a Spanish or French speaker might have an easier time learning Portuguese or Italian, but everyone struggles with changes.
The language or framework is just the beginning! What are the accepted patterns and practices? How do I express myself within that new context? This learning process is different for everyone and not taking that in consideration is the difference between good versus bad mentoring or even being harmful to the growth process of your peer.
We have plenty of examples of this change in context or people still transitioning within that context in our industry. A senior developer might ask a trivial question from a frontend developer’s perspective, or a system programmer struggling with web development. Change of frameworks, Django, Rails, Phoenix, Rocket? From dynamic to static languages and vice versa? I’m sure you can think of even more examples.
Rather than judging and applying our own standards for what our peers should know we should do our best to mentor and encourage them to be their best selves.
Be kind with your fellow peers, don’t expect them to have the same cultural and technical references, maybe they just haven’t been in the same digital country that you have been for long enough.