When I'm speaking a foreign language, I conceptualise what I want to say - language invariant, then find the correct words, and arrange them so what I say or write is grammatically correct. Sufficiently proficient (fluent or close to) speakers of a foreign language don't try convert their native tongue to a foreign one. I can personally attest that this doesn't work - idiomatic expressions and cultural markers do not correspond (for example, 'yellow' connotes drunkenness in some languages; not English). The point is that multilingual people have developed the ability to take what they want to say, as a set of concepts, and convert them to words in the language of their choosing at that moment. Try to think of it as analogous to how a compiler takes an AST (concepts in natural language) and traverses it to produce machine code (foreign language) specific to a processor architecture.
Learning a third language is easier than learning a second because your brain adjusts to become less tightly coupled to the words and phrases you already know. Having studied Hebrew, I have learned to communicate without the verb 'to be', 'have' (the equivalent is literally 'there is to me'), and indefinite articles (a, an). There is also a preposition (את) that I don't know an equivalent of in any other language.
It is my opinion that multilingual people have developed the ability to express their necessarily-not-yet-explicated thoughts (concepts and ideas) in the language of their choosing. Correspondingly, programming languages are a medium for expressing the programmer's ideas about computation. When I'm programming, I'm thinking about concepts, not language specifics, for example "abstract this segment of code to a function" can become
def removeVowels(target):
...
string removeVowels(String target) {...
}
removeVowels :: string -> string
removeVowels target = ...
I don't think of language specific syntax. I have an idea about computation and express it using the idioms and syntactic features at my disposal. Further examples:
In English, when asking for permission, one would say, "May I.../Can I...", whereas in Hebrew one will often say אפשר - which translates to 'possible to [infinitive] ...'. Similarly, in the above example, the python approach might be:
for ch in target: non indexed iterator
Curly brace type language:
for (int i = 0; i < target.length(); i++) { }
Haskell:
map consonantOrNothingFunction target
but all of these approaches yield the same computational result even though fundamentally different in structure and nature. A good polyglot has detached their language facility from their conceptualisation faculties. I certainly think I have. Multilingualism fosters this detachment, making programming easier.
edit: code sample formatting