You mention Ruby on your "become fluent" list, but I get the impression that Google doesn't use much ruby. Is the feeling there that skills in ruby can transfer, or is it more important to focus on Java, C++ or Python?
In my experience, the actual languages you know aren't all that important. Google wants to know that you can write code well and solve problems in SOME language. If you're smart, you can learn a new language quickly.
That being said, Java and C++ ARE still the primary languages for production applications coding at Google (with Go starting to pick up speed). If you're interviewing as a software engineer, you're probably going to want to know something about object-oriented programming (even if that's in C#, Ruby, Python, etc.). A SWE candidate that ONLY knows a purely functional language is going to have an interesting time.
What you DON'T want to do is feel like you have to go out and get a "Learn Python/Java/C++ in 21 Days" book when you have 5 years of Ruby or C# experience. As long as the interviewer can understand your code, you should be fine.
I personally have interviewed several people for my group whose primary language is TCL (yes, really!), Matlab, or Perl. As long as they can walk me through their code, or even solve the interview problems using pseudocode, I won't ding their interview scores just because they don't know Python. I'm not interviewing for traditional SWE roles, though.
As long as it's a multi-paradigm language. I'm not a huge Ruby fan, and you're right, Ruby at Google is almost non-existent. But I know a lot of developers like it, and a lot of companies look for it. So long as you master one of these languages and learn a couple others, I figured you'll be fine.
Being a good developer in any language is pretty transferable. Google isn't going to care if you have to fumble for a few weeks getting comfortable with the syntax.
The important bit is being a good developer, not which language.
Just a warning that, at least in the UK, I've heard that many companies do want you to know a list of quite specific programming languages and advertise for a programmer that does X language with Y years experience in it, rather than going after the computational knowledge side of things. So, you know, just check what you're going for first if you're still at the making decisions about what to learn stage.
Can't speak for Google though. Just if you were thinking in general terms.
As a software engineer in the UK - in my experience, the companies who want you to list very specific programming languages aren't worth working for. If they don't/can't understand that programming experience is transferable between languages, they probably aren't going to respect you for your skills either.
That happens enough in the U.S. as well. More often as many positions are being actively driven/searched by consulting companies (temp/placement agencies for IT/Software).
That being said, Java and C++ ARE still the primary languages for production applications coding at Google (with Go starting to pick up speed). If you're interviewing as a software engineer, you're probably going to want to know something about object-oriented programming (even if that's in C#, Ruby, Python, etc.). A SWE candidate that ONLY knows a purely functional language is going to have an interesting time.
What you DON'T want to do is feel like you have to go out and get a "Learn Python/Java/C++ in 21 Days" book when you have 5 years of Ruby or C# experience. As long as the interviewer can understand your code, you should be fine.
I personally have interviewed several people for my group whose primary language is TCL (yes, really!), Matlab, or Perl. As long as they can walk me through their code, or even solve the interview problems using pseudocode, I won't ding their interview scores just because they don't know Python. I'm not interviewing for traditional SWE roles, though.