3 ms·
I think you have the option of taking the test in Java, C++ or Python. I hadn't heard of the C# option. Thank you for mentioning the same.
by deepGem 9y ago
I think you have the option of taking the test in Java, C++ or Python. I hadn't heard of the C# option. Thank you for mentioning the same.
- zem 9y agoruby too; it's not a language used at google, but it's available as an option to interview in
- deleted 9y ago[deleted]
- CydeWeys 9y agoJacaScript is another frequently used language. It along with Python are typically what I see new grads using. More experienced interviewees tend to use Java/C#/C++. I interviewed in C# despite most of ,y interviewers not knowing it (though any dev can figure C# out well enough to evaluate algorithm correctness). I've also interviewed one person in Go ... despite me not really knowing Go. That's when it's really helpful to have written down every character during the interview for writing up the evaluation afterwards.
- cableshaft 9y agoAt my in-person interview at Google, they told me I could use whatever I felt most comfortable with, which at that point in time was Objective-C. In retrospect it was a terrible idea. That language is stupid verbose, and I ran out of whiteboard for every single question I had there. They were mainly interested in me for iOS development though. They did not give me an offer, although I don't think it was for that reason (I was a little nervous and two interviewers gave me some major head-scratchers).
- CydeWeys 9y agoIt's definitely true that some languages are better than others, because the types of problem and time limitations are the same regardless of the language chosen. Lower level languages tend to be worse because they take longer and there's more ways to trip yourself up. Personally, I think that C# is the ideal language for interviewing in, as the .NET standard library is very powerful. SortedDictionary alone can easily polish off entire classes of interview questions, and the same can be said for pretty simply LINQ statements. I actually solved one problem so trivially using a combination of the right data structure and LINQ that the interviewer asked me to provide an alternate imperative implementation of the LINQ statement, just so he could see that I actually knew how to implement something like that rather than just use it. You can approach similar levels of power with use of Java 8's Streams APIs and a good collections library like Guava, but Guava is only likely to be understood by a majority of interviewers at Google, whereas the C# standard library should be understood by a majority of C# interviewers everywhere. It's absolutely worth spending a few hours brushing up on a "better" interviewing language and then using that rather than using a less optimal language just because it happens to be all you've used recently.
- cableshaft 9y agoI would probably use Python on a whiteboard nowadays, even though at my day job I use C# and only use Python periodically in my freetime at the moment. Python's a lot more concise of a language in general. Although C# is smooth like butter when paired with Visual Studio, and I could use it if requested.
- CydeWeys 9y agoI think my views here might be biased since the only people I see interviewing in Python tend to be bootcamp graduates or new grads, and their coding performance in general tends to be not as good (which is fine, as the expectations for L3 SWE are lower). I agree with you that the Python language syntax is nice, but it doesn't have quite the same level of built-in support for algorithmically useful data structures as C# or Java with Guava. To give you a concrete example, it's not unusual for interview questions to require the use of a self-balancing binary search tree or a similar data structure in order to reach optimal runtime complexity. Realistically no one is ever going to implement a self-balancing BST along with solving the actual problem inside of a 45 minute coding interview, but it's nicer if you're able to refer to an actual library implementation that exists and can be used versus hand-waving away the existence of one.
- deepGem 9y agothat the interviewer asked me to provide an alternate imperative implementation of the LINQ statement, just so he could see that I actually knew how to implement something like that rather than just use it I wonder why interviewers look for these traits when it is very clear that you'll almost never implement a low level data structure.