作者peterchen33 (peterchen33)
看板Soft_Job
标题[心得] Google TW SWE 面试心得分享
时间Sun Aug 14 10:11:21 2022
小弟是菜鸟工程师,一直以来从这个版上得到很多资讯。取之社会、用之社会。
现在正在某A牌半导体厂当RD,当初在美国读书的时候就在这里实习。虽然拿到了return offer,但因为疫情+自己犯蠢,违反了国际学生的工作规定,害自己丢了学生签证只能离
开美国。还好公司帮我大力乔,让我回台湾工作一年然後拿L1-B回美,现在正在办绿卡。
因此我对老东家很感谢,也没有跳槽的想法。但是好的工程师应该要持续精进,了解自己在
市场上的定位。因此我三不五时会投一些履历出去,训练自己面试的能力。
我现在的工作是曝光机(lithography)的自动化设计,主要撰写LabVIEW:一种功能特殊
的图像控制程式语言、C++用来开发图像处理函式库。视工作需求也会用到Python与E
mbedded C。从赴美读书以来就养成每天(几乎啦)刷题的习惯,目前约1000题。
由於本身没有美国或其他地方的居留权,所以申请的都是台湾的职位。年初的时候收到
Google还有其他数家公司的面试邀请,但只有Google有跑完整个面试流程,因此写出来在
这里跟各位分享。关於考题部分,因为有签保密条款,所以不方便详细透漏,还请见谅。
# HR contact #1
Google meet、30 min、中文
过履历关之後,Google会指派一个HR来联系你,他会是你的对口人员,你之後的整个面试
流程都会由他来安排,有任何问题就直接找他(你原则上不会得到面试官的联络资讯)。
我的HR是一个上海site的小姐姐。简单的自介之後,HR首先是从你的履历和job
application帮你选择面试的方向。以我自己而例,HR给了我general SWE track和
embedded system track两个选择:前者考general coding;後者除了考coding(应该是C
)外还会问一些firmware domain knowledge。
我选general SWE track,接着HR问我要写什麽语言?基本上常见的语言都可以,但他建
议写C++,因为台湾硬体部门多,写C++的面试者在team match时比较容易被雀屏中选。然
而我选Python,毕竟人生苦短,战士有选择战场的权利。HR也提到:如果面试到一半想换
个语言来写,也是可以的。
敲定细节之後就排第一次phone interview的时间:给你一个表单,让你选几个有空的
time slot来排面试。总之就这样进入正式的面试流程。
# Phone interview - coding
Google meet、45 min、不限语言(中、英)
这里你会收到两个连结,第一是google meet、第二是interview board,就是一个特化用
来写程式的文件档,没有侦错跟执行的功能,完全就是纸上谈兵。由此可见,Google的
coding interview要的不是求职者写出完美无bug的程式,而是考验你是否能够把想法用
程式码的形式表达出来,并确保面试官能够理解,而面试官本身也要理解求职者的思路,
而非只求结果正确。这种面试的形式对两边来说都很有挑战性。
沟通上的话,如果没有限定讲英文的话就是随便,只要两造能够通就行,要说台语也可以
。这一轮面试中,虽然面试官也是台湾人,为了刷存在感我还是全程讲英文啦。
考题的部分,因为有签保密条款所以不方便透漏细节。第一题用排序法就可以简单的解出
来,很经典的leetcode问题。
面试官说好,那follow-up。我用两个priority queue解出来的,时间复杂度O(nlog(n))。
不知道有没有更好的解法。面试官说还不错,这样就行了。最後发问时间,聊了一下,面
试官简单的介绍了自己的职位,是Chrome OS部门的工程师。
# HR contact #2
Google meet、30 min、中文
然後过了大概一个月吧,上次那位上海小姐姐又来联络我,说我phone interview表现不
错,进入下一阶段onsite。这里会有四关:3*coding & 1*behavorial,并且尊重我的安
排:可以分四天做,也可以一天全部面完。大部分人是分两天来面。
有朋友面的是embedded track,只有三关tech/coding interview,没有behavorial,不
确定原因为何。
# Onsite interview #1 - coding
Google meet、45 min、中文
Onsite第一关,是一个Chrome OS部门的工程师,台湾人。
题目是给你一个graph,问你说拿掉其中一个node会有甚麽变化,那follow-up就是问你如
果multiple query的话要怎麽改善时间复杂度。这种multiple query的follow-up几乎可以
用在每一种题型中,可以算是定番了。
这题比较特别的是,面试官只有画出graph,用来解释题义,并没有定义input datatype的
格式、还有整个程式码的架构,所以这个部份我要自己假设一个出来,这部分花了一点时
间。题目本身应该是easy-medium的难度而已,但我写出来的时间复杂度是O(n),不确定
是不是最佳解。但面试官似乎没有什麽意见。
# Onsite interview #2 - behavioral
Google meet、45 min、中文
顾名思义就是问你各种情境题,让你回答这样。题库在网路上面都很多了,而且变化不大
,在此不多赘述。
我认为最需要注意的是,这里面试官期待的是你讲出工作中实际遇到的情境,而不是什麽
惊天地泣鬼神的故事。例如问你说有没有遇过其他同事跟你意见不同的时候?你怎麽处理
?你就讲说例如你要做一个专案,你认为一定要至少5个device才能达成性能需求,但你
同事认为只要3个就够,那你们就怎麽样去乔这样,总之就是要讲这种无聊但实际的经验。
好加在面试官也是工程师,所以可以跟你进行一些技术性的讨论。
我一开始没有理解到面试官的需求,所以一直不自觉的把话题引导到我的人生观阿,待人
处事的态度之类的,然後就会被面试官打断,说讲你实际发生过的经历就好,不用扯到太
抽象的层面。他知道像这样的讨论会很枯燥,很难进行,但他必须要听到实际的故事细节
才能对面试者做评价,没办法,请我理解。
从视讯背景可以看的出来面试官也在WFH,所以我们彼此分享了一下家中工作室的布置,
我也介绍了一下自己现在的工作内容,对方说你做lithography喔,酷喔。
# Onsite interview #3 - coding
Google meet、45 min、英文
Onsite第二关,面试官是一个来自国外的大姊,目前在台北工作。
第一题很简单,就是给我一个array,问我满足某条件的subarray在哪里。follow-up不免
俗地问multiple query,做起来满简单的,没什麽问题。
但接下来还有一个follow-up就是,如果我可以改掉array中某些element的值,那答案会
变怎样?这里我稍微打结了一下,跟面试官废话了一会,打转了一圈才勉强想出那个关键
字:sliding window,面试官说好,这时时间剩大概只剩10分钟,面试官叫我就写个大概
就好,不用写出bug free code也没关系,我就照办了。
感想是,第一题跟第二题都很简单,但是花了点时间在定义问题、确认边界条件、写出架
构和解释程式码的正确性,这也是为什麽写到第三题时,已经剩不多时间了。在打程式比
赛的时候,完成时间只跟个人能力有关:你越强就写得越快;面试则并非如此。
面试官很亲切,有开镜头跟我视讯对话,全程也保持笑容,在我思考问题的时候也没有甚
麽催促,最後也很详细地解答我的问题。最重要的是,问题的难度由浅入深,安排得很恰
当,不会一开始就搞不清楚题义而无法进行。虽然我的表现未臻完美,但对我而言是个非
常好的面试体验。
# Onsite interview #4 - coding
Google meet、45 min、英文
这次面试官是台湾人,但因应要求所以全程用英文讲。
第一题:一个array of int,在哪个位置会有最佳解?这里我很简单的用stack解。面试
官接着问我follow-up:如果有范围限制呢?我就把stack改成deque并且分析了两种资料
结构的实作差异、以及在操作上的时间复杂度。
到这里为止都还满顺利的,总共只用掉了20几分钟,算是超乎预期。面试官说不然我们再
来玩一题如何?我说好阿,来吧!然後面试官花了点时间找了下一题给我做。这一题有点
吓着了我:
总之就是一种扑克牌的规则:给你一组牌,要怎麽打才会有最高的分数。後面有一个
follow-up就是如果可以抽换牌面的话要换哪几张。这题麻烦的地方是:在你loop到每一
张牌的时候,你没有办法去做一个greedy algo来求得整体的最佳解。由於时间的关系,面
试官叫我写出第一题的大概思路就好。
感想是加考的那一题真的有挑战性,尤其是那个follow-up应该有hard难度。如果没有面试
官正确的引导,很容易会浪费掉很多时间。还好不是一开始就考我这题,不然我的表现应
该会有点惨。
# HR contact #3
然後过了大概快一个月,HR寄信给我说onsite表现不错,但是最近人事重整,需要再等更
多的时间才能给结果,不知道是不是某种安慰信的概念。目前的进度就卡在这边。
有这样的结果,也算是对自己过往努力的一种肯定。反正我这边就是继续做好现在工作,
享受生活这样。几点心得分享:
* 我运气不错,没有被考到太刁钻问题。除了最後一关那题有hard之外,其他顶多medium
。无论是申请国外学校、面试找工作、搞定身分问题、还有往後数十年的职涯中,运气都
是最重要的。因此,一时的成败都算不上什麽。意气风发的时候要心怀感激,更不能因此
嘲笑失落的人。
* 承上,刷题的时候,确保自己对medium等级的题型有把握度就好了,hard就不用太强求
。反倒是要加强自己沟通的能力:要能够定义问题和程式架构、能够解释自己的思路、而
且要一边写一边用英文表达。这在面试过程中非常重要,有时候甚至比有没有写出最佳解
更重要,但仅仅靠刷题是练不到的,必须要额外练习。
* 景气真的豪惨阿,之前明明每间公司都招了那麽多人,然後薪水各个上看20万镁和300
万台票,然後现在风云变色,说不招就不招了。呼应第一点,果然运气还是最重要的呢。
以上跟大家分享,希望各位不嫌弃,能抛砖引玉就更好了,谢谢。
--
"你说旧机械系馆很美,我是看不出来它有多美。你说旧机有卓越的通风设计理念,我是
不相信啦,不然我们来跑CFD看看阿...
这些文资会的一天到晚说旧机不能拆,如果有一天
地震垮掉了,你们觉得他们会趴在地上哭着说历史消失了吗?不会嘛,他们会再去找另外
一栋建筑物,跟你说这个不能拆...前人盖的东西阻碍後人的进步,叫做食古不化,所以
我说旧机应该通通拆掉!"
台大机械系教授 赖君亮
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 12.229.23.122 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1660443104.A.231.html
1F:→ hakosaki: 又是个强者....08/14 10:13
不敢,还要继续努力。
※ 编辑: peterchen33 (12.229.23.122 美国), 08/14/2022 10:25:06
※ 编辑: peterchen33 (166.196.75.8 美国), 08/14/2022 10:28:39
2F:推 f26724309: 签名档文资会….唉08/14 10:33
3F:推 musashi023: 是个狠人08/14 10:38
4F:推 hakosaki: 补推 感谢分享08/14 10:48
5F:推 duck10704: 推分享!08/14 11:24
6F:推 hijamoya: 千题大佬就是猛08/14 11:25
7F:推 tennis1038: 推 强者08/14 11:25
8F:推 jazz0320: 强者 推08/14 11:41
9F:嘘 BBSealion: 第二关如果是多次查询的 LCA 可以做到查询 log(N) XD08/14 11:43
10F:→ BBSealion: Sorry 按错到嘘,补推回来!08/14 11:44
11F:推 BBSealion: 补08/14 11:46
12F:推 lohas1019: 强者推08/14 12:20
13F:推 s06yji3: 感谢分享08/14 12:22
14F:推 f9g8h7j654: 感谢分享 推推08/14 12:33
15F:推 lolmap: 推08/14 12:55
16F:推 eju901677: 推08/14 13:15
17F:推 aa06697: 你这篇不怕被正在帮你办绿卡的东家看到吗@@08/14 13:15
看到就看到呗。跳槽在这里是司空见惯的事情,身边同事都直接放话说如果不给WFH就要
跳去竞争对手那儿去了。就算没有要跳槽,为了磨练自己也应该要不断面试试水温啊,不
是吗?
18F:推 ts00328685: 强08/14 13:36
※ 编辑: peterchen33 (166.196.75.8 美国), 08/14/2022 13:54:46
19F:推 vencil: 推08/14 14:08
20F:推 drysor: 推 我phone tech 题目跟你一样,解法也一样,然後就没 hc08/14 14:17
21F:→ drysor: 了QQ08/14 14:17
22F:→ drysor: 另外推沟通这一点,面试过程能明显体会到,题意理解、edg 08/14 14:20
23F:→ drysor: e case 跟解题思路都要能清楚地说明08/14 14:20
辛苦了,我们有一句话是说,决定好面试官是谁时其实就决定了面试结果的八成。相信你
应该是很好的把题目解出来了,但有时候跟面试官不那麽对盘就很容易GG,运气问题啦。
仔细看了一下,你应该是最近才电话面试完然後就碰到hire freeze吧?真的衰小了...
编辑: peterchen33 (166.196.75.8 美国), 08/14/2022 14:26:17
24F:推 jason710068: 巨佬 推 08/14 14:27
※ 编辑: peterchen33 (166.196.75.8 美国), 08/14/2022 14:36:43
25F:推 bjk: 11 08/14 14:50
26F:推 OnlyRD: 现在职场核心能力是刷题真的不为过 08/14 15:03
27F:→ OnlyRD: 真的要认真好好刷题,上班还是要保持刷题习惯。 08/14 15:04
28F:推 y101814: 好漫长的流程 每个阶段中间居然都隔了一个月 08/14 16:26
29F:推 smdf: 推 08/14 16:51
30F:推 shaopin: 请问刷了一千题的情况下看到google question的感觉是什麽 08/14 16:51
就还是会满紧张的,担心自己写不出来浪费大家时间这样。但是多亏刷题训练出来的神经
反射,大概知道题目要往哪个方向去解这样。
别说面试了,就连打leetcode周赛也都常常会翻船,并且理解到自己跟竞赛选手的远大差
距。好处大概就是daily challenge的题目常常都是已经做过的,点一点答题记录就可以
赚每日积分这样。
31F:推 Truer: 推 08/14 16:55
32F:推 leftless: GOOGLE搜了下ID 这什麽鬼神经历 励志哥 08/14 17:02
不好意思馁!我天身残疾又不特别聪明,只好比别人更努力一些。这里很多人有比我更厉
害的经验,实在不敢当。
33F:推 Ryzen1700: 推 08/14 17:39
※ 编辑: peterchen33 (12.229.23.122 美国), 08/14/2022 17:56:46
34F:推 linnom: 靠北xddd刚翻你发文超好笑 推中肯 神人 08/14 19:41
35F:推 dalbuhr: 履历关的标准很高吗 08/14 20:10
不知道耶,我还在台湾/美国读书的时候投Google都不理我。感觉这次我会拿到面试机会
是因为後疫情时代的缺工潮,现在又校正回归了这样。
36F:→ peter98: 面试遇到孟加拉真的很赛 08/14 20:58
还好啦,这位孟加拉大姐人满好的,感觉也有本事。
37F:推 doranako: 我看完应该觉得是美国那边名额freeze,强者,明後年解 08/14 20:59
38F:→ doranako: 冻我觉得fanng依你实力应该都会上 08/14 20:59
谢谢看得起啦
39F:→ angellll: 不会 因为会累积两三年的候选人 08/14 22:41
矮由这不是Military版预言普丁3月亡乌的天使川大大吗?您的预言好像不是很可靠喔。
40F:推 kokosorazure: 推 谢谢分享 08/14 22:49
41F:推 unmolk: 签名档好好笑 08/14 22:55
42F:推 fifi82726: 所以HR会跟你说L3 or L4了吗?还是要等team match? 08/14 23:37
没有讨论到这一块耶,应该是要等team match完才会知道职阶这样。
43F:推 viper9709: 推分享~这也太详细 08/15 00:05
44F:推 kyrie77: 推 08/15 00:13
45F:推 ppc: 推分享! 08/15 00:26
46F:推 abc21086999: 推分享 FTE真的有很多福利QQ 08/15 01:20
敢问FTE是指?
47F:推 saladim: 羡慕泥~ 08/15 02:36
48F:推 deadee: 推 08/15 03:04
49F:推 holebro: 笑死 原PO真的很会当乡民 08/15 03:41
50F:推 rickykai: 推分享 08/15 07:40
51F:→ k900421: l3 or l4 interview? 08/15 09:19
不知道耶
52F:推 zxcchiou: 推 看过往发文 真的很会 08/15 09:23
53F:推 Ericz7000: 乡民 08/15 09:58
54F:推 milkdragon: 很棒的经验分享,感谢!! 08/15 11:27
55F:推 dodo6200: Google的确最近freeze了,应该不是安慰你,但什麽时候继 08/15 12:25
56F:→ dodo6200: 续招人倒是未知了 08/15 12:25
57F:推 ManOfSteel: 推 细节,心得都好详细 08/15 12:27
※ 编辑: peterchen33 (12.229.23.122 美国), 08/15/2022 12:40:40
58F:推 tomap41017: 真强者 08/15 13:43
59F:推 acgotaku: 推详细 08/15 13:43
60F:推 kaichihoa: 推强者 08/15 14:39
61F:推 mike8469: 推分享 08/15 14:48
62F:推 longlyeagle: 理论上进team match前就知道level了吧 可以问问Hr 08/15 15:17
不确定level是怎麽订的,会再请教一下。
63F:推 bruce00595: 推啊 08/15 15:31
64F:推 gn01642884: 强者推 08/15 17:56
65F:推 shallreturn: 最近也要准备面试,很棒的分享,谢谢你。 08/15 18:09
66F:推 mutichung: 推推强者直属学长>< 08/15 18:26
学弟好。UMich Robotic比我厉害多了。恭喜毕业,也祝工作一切顺利。
67F:推 cmelo1515: 跪着推 08/15 18:55
68F:推 azzc1031: 好强啊 08/15 19:33
69F:推 believe91326: 好强 08/15 22:37
70F:推 cupnoodle258: 推强者学长 08/15 23:44
71F:推 junior71033: 推强者 08/16 05:16
72F:推 otira: 推强者 08/16 09:50
73F:推 chatnoir: PTT是不是只有我不在FANNG? 已哭 08/16 09:51
如果A = Apple的话那我也不在了阿。共勉之。
74F:推 aa06697: 当然跳槽很正常 但为何不绿卡拿到後再po 不怕公司不帮你 08/16 12:06
75F:→ aa06697: 办了吗XD 个人认为拿到绿卡比进台G爽多了 08/16 12:06
还好阿,办绿卡有很多种方法,绿卡到手之後也有很多麻烦的地方。再说出来混过一段时
间,还真没听过员工想跳槽公司就不给办绿卡的,可能我孤陋寡闻吧。
76F:推 abc21086999: FTE是Google 正职员工的意思 08/16 14:25
长知识,谢谢。
77F:推 abc53: 推 08/16 23:23
78F:推 chupiggy: 同为旧机人推 XD 08/16 23:51
前辈好XD
79F:推 ghostreporty: 德州农工学弟欸 欢迎来Google 08/17 00:01
前辈好!这话说的太早,还不确定有没有这个荣幸呢。
80F:推 RadiationXen: 推 08/17 07:36
81F:推 mattwang44: 推强者同学,phone interview 那关有可能是拿来分辨 L 08/18 11:57
82F:→ mattwang44: 3/L4,我年初面试上海 HR 是这样跟我说的 08/18 11:57
原来如此,看来现在跟公司乔职等也太晚了。那就一切随缘吧。
另外,跟各位先进说声不好意思。跟HR讨论了一下,决定还是在对面试过程的部分做一个
删修,希望能够在公司与面试者的利益之间做平衡。还是希望大家能够顺利度过难关,找
到心目中的理想工作。
※ 编辑: peterchen33 (12.229.23.122 美国), 08/18/2022 15:55:06
83F:→ KVL: 好像上周review完了 如果有继续招募 recruiter 会联络你 08/20 11:14
84F:→ KVL: 其实recrutier比较惨 他们才没工作 XDD 08/20 11:16
85F:推 cacadeon: 感谢分享 08/20 17:11
86F:推 morek: 祝好运~~~ 08/20 20:06
87F:推 poem5566: 推强者 08/22 00:48
88F:推 AirComm: 阿弥陀佛,谢谢分享。我也在准备 Google 面试当中 08/26 08:58
89F:推 augustsnow: 强者,推一个 09/20 23:58
90F:推 WorkForFree: 感谢强者 10/03 21:04
91F:推 Gringoire: 推 10/14 02:13