[心得] Google/Kronos面试心得分享

楼主: wzhong (...)   2024-02-03 20:16:38
准备面试时,常参考版上的文章得到很多资讯与方向,取之于社会用之于社会,故决定分
享自身经验,第一次发文,如果有错误或排版问题请见谅
背景 : 教育大学资工学士,四大资工偏所硕士,无实习和竞赛经验,三个月发哥正职经
验,TOEIC 870分
—— Google ——
# Timeline
D+0 google career申请
D+2 HR寄信通知
D+32 pre-screen question
D+45 mock interview
D+66 一面coding interview
D+80 二面 coding interview(二场英文一场中文)
D+81 三面 googleyness and leadership(中文)
D+87 通知面试结果
D+90 Team match(fit talk)
D+129 Hiring committee通过
D+133 收到offer letter
# 面试过程分享
HR Pre-Screen question
人资会问基础Data structure与algorithms问题,可能根据职位加考一两题相关题目,
我是被问C++相关问题
可参考leetcode讨论区心得 : https://leetcode.com/discuss/interview-experience/
1133071/google-initial-phone-screen-interview-questions
一面 Coding interview
难度 easy~medium,考array相关sort, map使用,先用暴力解,follow up再改进
performance,不过感觉有些太紧张,沟通比较少,改进time complexity后想不出如何保
持time complexity下改进space complexity,后面经过提醒才了解其实可以增加time
complexity来减少space complexity。
二面 Coding interview
第一关 英文面试: (Lean Hire)
难度 medium,考queue、priority queue相关问题,总体来说还蛮顺的,可能是当天
第一场面试,还是有点小紧张,改code的时候没有一次改到最好,确定可以work的时候才
改成可读性更好的,感觉在沟通和coding的顺畅度扣了一点分。
第二关 英文面试: (Hire)
难度 medium,考phrase input相关问题,写code途中有发现index问题,有跟面试官
说给我一两分钟,把index相关问题思考改好,follow up是新增不同的char或string
size增减。
第三关 中文面试: (Hire)
难度 medium,考graph相关问题,题目宗旨略为类似leetcode 310题,follow up在图的
边上增加更多条件,第二个follow up并没有实作,只有说出大致解题方向,面试官也认
可是可行的,只是有很多boundary case没考虑到,且较正解麻烦许多。
三面 googleyness and leadership (Hire)
问常见的BQ问题,按照HR提醒用STAR法则+learning来进行回答,若有做一些动作让后续
可以避免发生类似issue也可以说出来。
—— Kronos (Infra team) ——
# Timeline
D+0 投履历
D+7 收到codility测验邀请
D+22 一面
D+44 二面
D+50 寄信询问后续 -> 感恩的信 感谢有你
# 面试过程分享
Codility测验
第一题 : 考stack + 字串处理,有些类似leetcode 150的感觉
第二题 : 我使用priority queue解,大概是考sort、基础资料结构应用之类的
第三题 : 考Graph,可参考https://leetcode.com/discuss/interview-question/867806
/q3-online-microsoft-interview-finding-rome
一面Coding interview
总共有两场面试,题目都根据order book会有的相关操作展开,我使用priority queue
、stack相关资料结构操作,follow up是探讨如何让程式跑更快,除了一般的time、space
complexity上的改进以外(透过binary search or 额外的空间纪录),也有提到pass by
reference、const之类的也可以在实务上增进程式效能,建议segment tree、lazy
propagation也需要看一下。
二面Coding interview
考C++相关概念,Polymorphism、virtual、smart pointer、lambda function,并透过前
面所询问的观念,直接考二题实作上应用上述概念的考题,没有预期到会考相关的概念,
整体上没有答得很好,不过也学到许多。
# 准备方式
1. Leetcode : 根据blind75、Neet code roadmap刷,重要的基础题基本上都4-5刷,讨
论区不同的解法也都看过,确保自己理解他的做法,而且细节一定要自己想过,例如为什
么在某个地方变量才+1或变量目前的意义,可以加深对不同算法、资料结构的使用。
刷到后面其实大部分的题目都可以想出一个解法,只是常发生TLE或是有想法但实作会卡
关,只能透过多练习来补强,程式最佳化的想法推荐参考Cracking the code interview
中的BUD方法来思考。
2. Cracking the code interview : 若基础感觉不够扎实的,可以参考,这本书涵盖大
部分面试会需要知道的解题观念与技巧,里面题目我自己是没有实际写过一遍,只有看过
一遍解答,确认自己看懂而已。
3. DS & Algo : 遇到不会的Data structure或 Algorithms就youtube搜寻,基本上会有
很多优质的讲解影片。
4. Behavior question: 可以先整理人生发生的大小事,Ex专题、当兵、成绩进退步之类
的,并根据网络上的BQ问题,把他归类为挫折(困难)、最有成就感、最有创造力…之类的
。在进行面试的时候可以根据题目问的方向马上想到相关的事情,稍微修改叙述的方向后
,再透过STAR法则回答。
5. 谈薪水 : 参考tech job n talk podcast
# 面试注意(个人想法)
1. 学着怎么用文字讲解、沟通你的solution,建议可以先用example case先go through
一遍solution,确认没问题后再开始写code,写code的时候可以先写一个框架再开始填空
格或使用注解,来确保面试官可以理解并跟得上你的想法,并记得always think out
loud。
2. 厘清题目,除了题目意思、答案怎么产生以外,input 格式、大小、顺序都是可以询
问讨论的地方,例如google第一关面试我就不小心默认input是排序好的,感觉扣了一点
分。
3. Coding style要简洁,面试官能懂看得懂比较重要,Ex 变量名称要有意义、记得加空
格,不一定要追求leetcode讨论区很酷的写法,Ex 单独写一行++/
作者: qazxc1156892 (william)   2024-02-03 20:23:00
作者: chicagoparis (chicago2paris)   2024-02-03 20:31:00
作者: KMTlikesshit (Taiwan is a nation)   2024-02-04 10:18:00
强者,恭喜
作者: satisfaction   2024-02-04 13:46:00
D+133长期抗战 真的好难喔
作者: DreamRush152   2024-02-05 09:19:00
kobe

Links booklink

Contact Us: admin [ a t ] ucptt.com