大家好,小弟受惠于版上许多,最近求职收到L4 Google coding interviews第二轮三场
的面试回馈,recruiter说L4继续走下去有risk不过也是有机会,若down level L3则是没
太大问题。不过面完当下自觉机会不大,已经先接受其他offer答应说要先做一阵子,虽
然成绩现在可以保留18个月,期间还是可以做team match不过目前我就先不move on了,
跟大家分享一下面试与刷题的心得。第一次发文若有任何不妥再麻烦提醒。
Week1 - Google Careers投递无声,过一个礼拜投递状态变not proceeding,直接凉凉。
Week3 - 不死心再投其他职缺,隔一两天recruiter约meeting讨论面试的时间与准备项目
,听说通常是约一个月后,我也这照时间去安排。
Week7 - Mock interview,面试官台湾人,人很好,会问你希望如何进行mock帮助你,我
请他当作正式面试来面,最后再跟我说哪边可以改进,给了我很多建议。
Week8 - 第一场coding interview,台湾人,中文进行,难度约med-hard,大约30分钟写
完最佳解,后续就在聊天,自觉是bug-free。隔天收到回复说表现不错,再约后续三场面
试时间,因为后续自己有其他面试,所以再约稍久一点之后。
Week11 - 连续三关
第二场,美国华裔,英文进行,难度约med,约30分钟写完最佳解,之后一题follow-up写
完刚好时间就到了,没来得及对follow-up的code进行dry run,后续回想code应该有2个
bugs。
第三场,印度人,英文进行,难度med,以往自己网络上mock时对于印度口音蛮不习惯的
,不过这次遇到的口音还好不怎么重,理解没问题但还是花了约20分钟才把我自己的解法
让面试官听懂,但不是optimal,面试官要我再想想更好的作法。之后方向有提出来,但
有一个关键点没想到如何解,到了30分钟时,面试官假设有一个magic function辅助可以
如何解,最后写出约90%后时间到了,这里optimal的解法时间最差应仍是与第一个提出的
方法一样,但平均会更少。
第四场,台湾人,中文进行,难度med-hard,约35分钟写完最佳解,过程中有2处code写
出来跟讲的不太一样被面试官纠正,一题follow-up,讲完follow-up解法后时间到了没写
code,后续回想第一题code应该还有2个bugs没发现到。
Week12 - recruiter回馈
第二场,L4 hire,Algo/Data structure使用恰当,虽然面试时面试官没有提出要求,但
如果可以给多种solution与tradeoff会更好。
第三场,L4 no hire,L3 hire,分析问题、说明次佳解的解法、分析次佳与最佳解的时
间复杂度做不错,扣分点在于最佳解关键点没写出来及有给hints。
第四场,L4 lean hire,分析问题、定义输入与输出做不错,思路讲得清楚,扣分点在于
有bugs以及有给hints。
面试总结,我想为了达到完美,除了勤刷题外,刷题跟面试有两个点蛮不一样的再提醒一
下:
一是尽量只靠description去写code,像LeetCode写惯了不太需要去思考输入/输出/型别
等,也常利用输入的长度如n=1e6来判断大概是O(n)的解法,但面试时就只有description
其他都要靠自己。
二是关于沟通部分,因为面试时还要跟面试官讨论,来回也是不少时间,所以不论中英都
要能简单且准确地表达意思,平常练题最好先用口语把解法讲清楚后再写code。
之后就是关于刷题的心得分享,小弟LeetCode题目1000+(E 300/ M 500 / H 200),周赛
100+场,rating仍在2050徘回许久,容小弟野人献曝给大家分享一些资讯。
关于刷题的方法,我想网络上资讯已经很齐全了,其中觉得最完整的是”0到100的软件工
程师面试之路”以及”胖头龙的咸鱼刷题笔记-算法篇”这两篇,从刷题的心法、刷哪些
题目、大神的讲解甚至面试准备都有涵盖,内容不少但每一阵子回去看都有新的收获,时
间赶的话看0到100 day10那篇就好,跟着大神刷,表现顶呱呱。有些文章会推荐你去刷跟
自己rating相近的题目,可以用这个网址去找分数对应的题目。
https://zerotrac.github.io/leetcode_problem_rating/#/
关于刷题的复习,觉得当经典题都做完一轮后,复习重要性>>做新题,因为很多题目都能
沿用某些题的解法架构,另外像是不熟的解法也必须借由反复复习变得精通,不熟的题目
碰上面试的时间压力基本上就可以当作没做过了。虽然上面说题目刷到1000+但真正有效
的练习我想是在我开始建立复习表后,大概500-600题,其余部分严格上来说做完就忘了
。这边提供版友自己的Notion复习模板,可以记录题目的类别、熟练度、做题的时间与下
一次预计复习的时间,方便后续复习,网址的右上角可以Duplicate这个模板。
https://lumpy-cut-a12.notion.site/a9cf0ada5ca64953b5273e10acdbde11?v=1aede3e9038940828ac4da7ed17cf15b&pvs=4
关于面试前的英文mock,我只有使用Pramp这个平台,跟世界各地的人面,很常碰到印度
人,基本上免费,注册时会送你5个免费credits,每次interview消耗一个,但每一次结
束时双方会互评作为面试者与面试官的表现,若对方评你是好的面试官会送你一个credit
,也就是基本上用一个给一个不太会消耗,甚至有时候面试中对方断线还会多送你一个,
我越面越多最后这个credit变11个,不过这个平台面35次后就说没新题目面了,只好再开
新帐XD。
最后则是个人心得,有时觉得自己陆陆续续刷题三年rating才是有些人的起点感到有些灰
心,但这次面完觉得小弟身为凡人要表现的好并不是那么地遥不可及,如果更早知道这些
东西应该会有所帮助,而且回过头来看对于自己的成长感到欣慰。我想正是因为知道过程
的辛苦,才会希望每个认真的人能够含笑收获,所以分享这些资讯给正在努力的人,小弟
之后有机会会再继续挑战。