Bilinguals don't translate from 1 language to another, they actually think in that language while using it, to the point that you can actually see attitude changes based on which language they are using.
I know I don't think in code, but rather translate it from English into whatever programming language I'm using.
Really? I think the only time I do this is when something is sufficiently tricky that I probably have to draw it to work out what it should be doing ("Ok, so I pass this in here, and then it could flow through to here or here..."). Otherwise, assuming I'm sufficiently fluent in the language I'm programming in it just "flows" out, as when I'm speaking in Spanish (a second language I speak well) - there's no intermediate translation from English in either case.
Coding is the same way... I think "I'll loop over that" and then proceed to write out how to do it in whatever programming language I'm working with. Sometimes I even write comments in English and then go back and fill in the code that does what the comments want.
You are not there yet. Here's why. In pre-fluency stages of language acquisition, the taxing part of language parsing is memory retrieval, iow, mapping meaning from language A to language B. If you are well-versed at this, it can happen sufficiently quickly. For example, "a machine with four wheels that brings people places" --> car. After enough practice, you "bypass" the "machine" and retrieve "car" without consciously looking up the word. Imagining that happening for every single word, and every single sentence construction. That's when you're "there".
As for coding, there is an easy example: iterative looping vs. map/reduce operations. These can express the logic but are conceptually different: one is to repeatedly track states across some number of times, the other is to apply a transformation function to a set of items. To reuse the car analogy, a looped factory would be like taking parts and assemble 100 cars, and a map factory would be like taking parts and assembling all the wheels, then all the engines, then all the doors and so on.
I don't. I usually don't think in language at all. Both speaking my native language and programming require translation from the abstract symbols and feelings that my actual thinking consists of.
Now aday with object oriented languages, I find myself thinking in Smalltalk first then translating the concepts to the given language.
Absolutely agree! I keep telling my friends (who are forever translating between English and their native tongues) and my father (who is a professional translator) that it is not always possible to translate accurately because languages are deeply rooted in the culture/habits of the people who use them.
I'm bilingual and I find that sentences spring to my mind in the language that I've been using in the last week. I speak my native tongue in my parents' home and English everywhere else. I stay for a week in my parents' home once every four months.
However, sentences do not always spring to my mind. I think more in images and senses than in language.
Almost certainly. I don't have a reference but I remember reading an article about a couple who were both neurologists. They were both in their 60s IIRC, and they each took on a new arbitrary hobby each year to exercise their brains. It could be anything, as long as it required a non-trivial amount of concentration and mental effort. I'll see if I can dig the article up, it was really interesting.
When writing C, I don't feel like I'm "translating English into C" as somebody else said, rather I "think" in C: in pointers, in functions, in arrays, in structs... Likewise right now I'm not translating my native language into English, I just think and write in English.
I also experiment the same kind of frustration when I have to write something in a language I don't know well (be it Python or Russian). I don't know the vocabulary, I have to look up everything on the web all the time to find out what's the right way to express something. Some parts of the grammar seem backwards and you try to say things in one language the way you would say them in an other, and it ends up in a complete mess (and often, you blame the language, see that "C is better than C++" thread that was on the frontpage earlier).
That being said, it's pretty obvious that learning a programming language (even something as big as C++) is orders of magnitude simpler than learning a foreign language, so I would not say that knowing Python and Prolog is nearly comparable (or as big an achievement) to knowing Japanese and Arabic. On the other hand, we use programing languages to solve complex problems that always require some mental effort when speaking a language becomes completely natural once you're sufficiently fluent, so I suppose both may be beneficial to the brain in the long term.