转一个谷歌Sunnyvale挂经

英文的哈

This was my first onsite at Google San Francisco. The Google recruiting team was very efficient and travel/accommodation arrangements were exceptional but unfortunately, when it comes to actual coding interviews it was super bad.
I was told that there are going to be a total of five interviews, 3 technical, 1 system design, and 1 behavioral. I was a little surprised when the behavioral interviewer started asking me a coding question. Since the problem was very very easy (delete a node from a LL), I thought probably he is just warming up. The interviewer was really nice and very professional and looked embarrassed when I told him that I was expecting a behavioral interview as per the schedule.

The first coding interview was really up to the Google standard. I was impressed with the interviewer. She was very precise and efficient. She started with an easy problem and progressively added more constraint to make it challenging but at the same time, it was fun working on the solution with changing constraints. I made some minor mistakes and after running a small example, I was able to fix it. The interviewer was pleased with the overall solution.

The next guy started with a bit manipulation question straight away. Although the problem was very easy and straight from the green coding book, being 15 years away from college I was not able to solve it using bit manipulation. I was able to solve it using some other techniques and the interviewer was okay with that. The next problem was one of the “hard” and a slight modification of this one on Leetcode (https://leetcode.com/problems/confusing-number-ii/). I was able to get a working naive solution but he was expecting a faster generative solution.

The system design interview
The problem was from a real problem Google hardware team was facing. Although it took me a while and tons of questions to understand the networking domain since I never worked in networking or hardware.

The worst interview
After a very pleasant lunch interview, next interviewer showed up. He was a replacement interviewer since the originally scheduled interviewer got some priority work. He has a very heavy east European accent and very hard to understand. This interviewer was what Steve Yegge would call bass-sole. He started explaining to me a very complicated version of a really simple problem. We spent nearly half of the time trying to understand the problem statement. The problem was a simple modification of MST (minimum spanning tree). I started with a naive solution and told him that we can use a similar algorithm and recursively solve it. His emotionless face showed no expression nor he agreed or disagreed. Instead, he misled me to a solution with the decision tree and spent 5 mins to explain to me why its running time is exponential. In the end, I scribbled an MST like solution in 3 mins as much as I can but I knew way before the end of the interview that its the end of my Google run for this time.

So overall it was a very ordinary and mediocre interview experience. I never felt challenged (except for the first interview) and I think they did not fairly evaluate my skills. Before the interview, I was slightly nervous since its a Google interview and with so much hype and tons of youtube videos about the problem-solving skills, communication, etc But at the end, I felt that most of the Google engineers don’t even have those skills themselves.
I understand that Google interviews tons of candidates and it’s not possible to get the good interviewers for each candidate but at the same time, it’s not fair to candidates since we invest a lot of time and efforts for the interview prep and at the end its just a game of chance.

报个我的

第一轮是一个数组,在某个位置前元素单调递增,然后单调递减,就是那种元素大小像山一样形状的数组,然后求最大最小值,用binary search做,
第二轮是比较二叉树是否相同,问了一下时间复杂度啥的 LC 33 & 81 第二轮是考察dp的,类似与有多少条路径,从起点到终点,在一个二维grid上,l 相似的题,然后如果遇到障碍或者必须经过某些位置的话咋办 LC 62 & 63
第三轮是考察二叉树,自己定义tree node,然后自己把二叉树各种遍历方法写一下,递归的和非递归的,这题没写完很慌 LC 94 & 144 & 145
第四轮类似于number of islands,不过题目条件变复杂了在面试官指导下就挺快开始写代码了,然后follow up问了一下bfs相关问题啥的,不难 这几轮很友好,都是难度不大的题入手然后不断深入问下去
碰到的tree的题目挺多可能因为sunnyvale做搜索的组挺多?然后题目可能会改变一些条件让题目变复杂增加点难度