注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
【HR phone talk】
HR小姐姐 LinkedIn 上来找, 约了电话聊了15分钟。 - what are you currently doing?
- why want a new job?
- what do you want in this new job?
- what language you are comfortable with (for coding interview)?
- what progress are you in the job seeking? Any offer? Any interview?
- need sponsorship? when your current visa ends?
- what do you want to ask me?
在最后的Q&A中小姐姐explain了整个面试过程:
- phone interview
- online coding interview (algorithm, data structure, w/ clean & bug free code)
- onsite (5 round = 3 technical + 2 curtural interview, 4 - 5 hours)
三个工作日内约了下一轮的coding interview的时间, HR小姐姐回邮件超快,基本都是一工作日内回复。
在约定了coding interview时间之后还发了一个关于怎么准备uber面试的tutorial,超级nice!好感大增 =w=
其实tutorial video说的应该基本都是<crack the coding interview> 这本书上的东西。但楼主之前没看完,而且感觉听人说比自己看要生动很多,所以还是蛮有用的感觉。
【Coding interview - 60 min】
小哥人也很nice,前面随便聊了两句就直接开始做题了。(问了下why Uber? what do you want in next job?)
题目内容:
这个题目很简单,楼主听完题目大概就有思路了。然而。。。
整个面试做题过程review (50min):
(2 min) 面试官介绍题目
(4 min) 楼主理解题目并且向面试官确认各种细节/补充条件,并且写完函数的comment
在此过程中楼主得到了关于题目的一些补充限制:
====
此时,楼主心里有点小开心,觉得蛮简单的,于是大概说了两句觉得可以怎么做,然后问面试官是直接写还是先说思路在写,面试官表示都可以,于是楼主。。本来打算先做做笔记的,结果一打字。。就一下子没忍住就直接开始写code了!!!【埋头痛哭!吸取教训!】
====
(12 min) struggle in 1st try ...
(5 min) struggle in 2nd try ...
====
至此,楼主为”不思考清楚就开始写“付出的代价大概是浪费了将近20min...以及...好紧张啊!啊啊!【吸取教训!】
====
(2 min) 写崩两次的楼主深吸一口气,鼓励了自己一下,双手离开键盘,闭上眼睛,开始重新整理思路并且大声说出来!(好吧也没有很大声,就是正常音量)是的我就是要面试小哥听到我的思考过程!你听你听,我会做!就是有点小紧张而已!看!我心理素质多好!
在此过程中楼主又得到了关于题目的一些补充:
====
(7 min) ok,想清楚了,从头开始一口气写完了。。【看,我说了我会吧。。】
(12 min) 写test case测试, debug, 继续test, 继续debug(是的,不是doc文件里写,是ide里写,写完还能run test case来debug,还能写print来debug,感激涕零。。是楼主运气比较好吗?)
(5 min) double check, found a corner case, implement and test.
楼主向面试官询问了corner case处理方式:
====
最后楼主还想再想想,然后面试小哥说差不多了我来测一下。他跑了几轮测试好像都通过,然后就说ok了。
最后大概7 - 8min楼主问了些比较关心的问题。这个每个人可能关心的点不一样。
【总结经验教训】
1. 一定要想清楚整个解答过程再动手!一定要想清楚整个解答过程再动手!一定要想清楚整个解答过程再动手!特别是简单的题目!不然写崩一次可能就心态崩了(对 楼主是大心脏 写崩两次还顶住了!)
2. 觉得可能比较好的点:
(1)楼主上来先写了comment
(2)在最开始还是说了思路的(所以面试官知道我大概知道怎么写)
(3)中间写的时候都有边写边讲思路(所以面试官会知道我是因为什么卡住了卡在哪里了)
(4)中间写的时候虽然没分模块但是大概每一段都有个注释解释这一段要做什么
(5)test case跑的不多,但是每个test case都有想要测什么,不是随便写的,每个test case都有测出错误,能帮助debug
(6)test case跑不过能立刻反应过来问题在哪里并且解决(两次typo + 一次边界检测问题都瞬间解决,还有个infinite loop的问题卡了下,靠着print解决了)
其实说到底写崩了还是蛮影响的,虽然不知道面试官在不在意我写崩了,也不知道是不是我哪一点打动了面试官所以最后能进onsite。
但是写崩了可能面试官会觉得”这么简单的题目都能写崩“,或也可能导致自己心态崩,特别紧张的话,可能明明很简单的地方就想不过去。
(ps: 楼主这里说的写崩是指推翻原来的代码构建方式重头写,比如一开写了个for loop,写不太下去了觉得可能换一种数据储存方式会更好,就不用string用list,然后又觉得不用for loop用while loop + index pointer更好)
求点“评分“求大米!好多面经帖子看不了QAQ...楼主能看到面经的话onsite回来也会写的!看在楼主写这么详细的份上,走过路走请撒份米!
(给别人评分加大米是不消耗自己大米的!)
|