Proper CS is not so much about programming: it is about computations. So it is essentially a field which takes bits of all sub-fields of Mathematics and models machines or instructions with it, and for that reason you see students of linguistics taking CS-courses (formal grammars, mathematical descriptions behind logic). Programming is merely a practical project to demonstrate your understanding of some of the required skills. A typical CS project is http://pierement.zoo.cs.uu.nl/muugle/ Even the CS-y programming languages reflect that: for instance Algol was devised as a way to write programs that were provably (as in a math's proof) correct, and Haskell requires a bit of understanding of math before you can even use it.
As for languages: I would say you need to learn to read them, mostly. So it's not such a major issue if you cannot pronounce “Au secours” to safe your life if all you are going to do is *read* it. With that in mind the much less flexible and more formal French language would be an easier thing to pick up than German (where syntax and auxiliary verbs can play funny tricks with the meaning of a sentence) and about as useful too. Of course the exact usefulness of a language depends heavily on the research you will do and need to read.
Bookmarks