[心得] Google TW SWE 面试心得(上)

楼主: wheels   2021-07-08 23:05:07
※ [本文转录自 Soft_Job 看板 #1Wvn9taK ]
最近终于准备收 offer 了,想分享一下挑战 big G 的一点经验与心得,
可能会写得比较像流水帐,大家轻松看看就好。
会试着面试的缘由是看到前同事挑战成功,觉得自己好像也有点机会试试看。
殊不知总共挑战了三次,从 2018 年底到 2021 年中终于尘埃落定。
然后这篇主要会分享前两次失败的经验,跟从中获得的一些教训,
下一篇才会提供成功的经验,希望能帮助到一些还在努力的板友。
1. 2018 年底,第一次面试,职位:Software Engineering Productivity
第一次是以一种尝试的心态进行,Leetcode 大概 100 题就上场了
HR screen 时问了一些算法复杂度与说了些英文,
phone interview 被问了一题 easy-medium 的题目,顺利解出进 onsite,
然后 onsite 前两场就被直落二了...
第一场中文对谈,问了一题 easy-medium,是某个 medium 题目的子题。
结果没跟面试官讨论好,直接就写了最直观的暴力解,
写完立刻就被打脸说这不是最佳解,要我再想想看。
然后我的步调就乱掉了,拿了 hint 之后好不容易找到对的方向,
但最后还是写了乱七八糟的 code 出来。
第二场也是中文对谈,是一题 medium,
其实方向是对的但因为自己不太确定,所以讲的有点支支吾吾,
最后被问时/空复杂度直接结巴。
后来自行检讨这两场失败的原因,应该是出在“写 code 不干净”,
还有“太快开始写 code”跟“对写下的 code 不够有信心”吧。
不过原本就是以一种尝试的心态进行,失败其实不大意外,
但其实心里隐隐约约觉得,这两题最后的解题方向都是对的,
如果有好好练习准备,感觉应该还是有机会过的。
最后以一个有点遗憾又不太意外的心态结束这一回合。
2. 2019 年底,第二次面试,职位:Software Engineering Productivity
其实 2019 年中就有收到 HR 的再尝试邀请,
但当时女儿刚出生,在医院陪产整个漏看信件 lol
在 2019 年底才又真正被联系上。
电话接起来后,HR screen 直接措手不及英文开场,
讲一讲后突然说“我们其实可以说中文”,然后就转成中文沟通 XD
也没被问制式化的问题了,直接就安排 phone interview。
这次心里想说机会来了,要来好好把握。
直接跟公司多请了六个月的育婴留停假,领着劳保局给的补助打算拼了。
这段时间大概跟我考研所的时间有得拼,
每天除了吃饭睡觉以外,就只剩下刷题,
直到面试前累积了 600 题左右吧,以一个好像还行的心态上场,
...结果 phone interview 差点崩掉。
其实这次 phone interview 不难,只需要用到简单的数学概念就能解,
难度应该只有 easy,什么算法资料结构都用不上,根本暖身题而已,
但在当下我紧张到头脑一度空白,最后五分钟才想到解法一口气写完。
原本以为完蛋,结果收到 HR 的信内写“well done”,
有点摸不著头绪的进入 onsite 流程。
这次安排面试前有被问说想面 junior 难度还是 senior 难度,
可能是因为我的工作经验刚好卡在四年多吧,L3 or L4 都可以试试,
经过一番挣扎最后选了 senior 的难度,
这边虽然说是 senior 难度,但应该对应到 L4 左右而已而不是 L5,
但这次被告知除了三场 ds/algo 以外,会再有一场 system design。
当下有点傻掉,因为似乎 2018 还没有规定要面 system design,
所以先寄了信问能不能把 system design 换成一场 ds/algo 来面,
结果答案是不行,好吧,头都洗下去了硬著头皮来面对。
还好能把 ds/algo 都排在一天,其他的排另一天,想着先过 ds/algo 再说。
...嗯,结果就是我没再被安排另一天,
ds/algo 三场的 feedback 不够好直接又被结束这回合。
onsite 第一场全英文对谈,题组式的 medium 情境题,总共有三题在这题组中。
要思考他给你的某种要求实作出可以对应的资料结构。
我有记取了前一次面试的教训,
在动手写 code 前先跟面试官厘清可能的 input 与想做的方法,
第一题算是顺利度过。
第二题是第一题的改条件,变得更难处理一点,
一样先跟面试官讨论可能的 input,结果不小心解锁第三题 XD
当下打算写个第二题跟第三题都可以处理的做法,
但是一直没抓到好的解法,过程中有感觉到面试官一直想帮助我,
很可惜最后时间快不够了只好退回来以一个没那么漂亮的解法来解第二题作结。
onsite 第二场是中文对谈,总共被问了两题,
第一题是 easy,听完题目做法大概就有底了,
跟面试官讨论后写 code 都很顺利。
第二题是 medium,听完题目有个大概的想法,
也是跟面试官讨论后请我开始写 code,
但是有点可惜对于这个类型的题目我不是那么熟悉,
所以修修改改了 code 后,最后的版本应该也有些 edge case 没处理好。
onsite 第三场全英文对谈,也是两题,
第一题是 easy,也是听完题目有底直接讨论开始写,
结果跑第一次 dry run 时自己跑错 lol,重跑一次发现我写的 code 是对的,
当下有点糗 XD
第二题是一题 medium,这题我花了很多时间跟面试官沟通一些 edge case,
但因为是全英文,感觉自己没有很好地表达出自己在考虑的东西,
弄了很久才终于得到想要的解答,以至于最后只口述了可能的做法来不及写 code。
其实这三场下来我自己觉得应该已经比第一次面更有机会了,
但自己也认知到面试当下犯了太多错误,像是:
- 不够稳定,临场怯场影响表现太多
- 想一蹴可几,但稳稳一题一题解更重要
- 对某个题型不熟悉,想法若有似无比完全没想法还更令人懊恼
- 对自己的 code 掌握度不够,dry run 不应该跑错
- 时间掌握度不够,英文表达能力要再加强
嗯,最后不意外的以 feedback 强度不足,直接结束了这一回合。
也解决了我要另外准备 system design 面试的烦恼(?
但其实收到拒绝当下真的还满灰心的,毕竟都请了这么长的育婴假,
感觉对家人很过意不去,经历了一段调适后才终于又回到正轨。
(待续)
作者: Lindeman5566 (德曼56)   2021-07-08 23:20:00
期待下集
作者: sanguinesand (大根君)   2021-07-09 00:03:00
作者: bananalalala (巴拿拉)   2021-07-09 01:56:00
作者: joekaojoekao (bingroom)   2021-07-09 11:00:00

Links booklink

Contact Us: admin [ a t ] ucptt.com