以下附上心得分享:
前阵子拿到 Google offer,之前在准备面试时看前面几位大大的文章很受启发,趁记忆
还比较清晰时分享一点准备心得,希望能对正在准备或之后想准备有一点帮助。
以下文字比较偏个人看法,如果用词有些不太恰当还请大家包涵;Google 大神很多,个
人资讯就尽量不提。
我不算是聪明的人,去年第一次面试没有过,今年是第二次面试,总共准备时间大约是一
年半。下面分成两部份:准备方式与心态。
- 准备方式
这一年半中几乎每天写题目,刷题是随机选题,没有特别挑题。难度的话从 easy 题目开
始写,大约3~4个月后慢慢写到 medium,最后面试前几个月写比较多的 hard。
睡得饱会让写题目比较有效率,太累的时候有时候连题目都看不太懂…
前期刚开始写题目会搭配着 Cracking the code interview 一起看,这本大概看到一半
之后就是边刷题边学习。
刚开始写 easy 题都会先用手写的方式去模拟程式码流程、写下 pseudo code,熟练之后
只有太难的题目会再用手写。
有些题目当下想不出来的时候,时间允许的话(两个月内没有面试),会尽量希望能思考
出解法;但这很花时间,有些题目卡了半年才想到怎么解,大约是一两个礼拜会再回看写
不出来的题目,不过能想出来的题目还是偏少数,待解题目列表很长。面试前两个月的话
,某题想不出来卡30分钟就参考别人解答。参考的时候会尽量希望了解这题为什么可以透
过某一种算法、资料结构去解,背题型的话肯定是背不完的。
这个准备方式有点花时间,列出这一段仅供参考。
有一个 excel 档会简要记下题目号码、通过测项提交几次、日后需不需要再练习。
正式面试前最好做几次的 mock interview,周遭有人能帮忙最好,没有的话线上也有一
些付费、免费的服务可以使用。
- 心态
写题目的时候最想知道自己思考解题、实作能力在那个位置,但很可惜这两项能力没有可
靠的衡量方式,所以初期常常参考别人写了几题能通过面试,但后来渐渐发觉题数跟思考
能力其实没有绝对正相关,写的题目少也不代表不会思考;之后重点就放在制定适合自己
的准备方式。没有列出写几题因为熟练度、题型每个人不同。
刷题过程中有时候想不出解法,或是看到别人神一般的解法会觉得自己资质平佣,大约是
每几个礼拜就会有这样的感觉。比较形象的描述,刷题准备就像是一个人走在暗无光线的
隧道,不晓得前方出口还多远,不晓得自己走了多少、体力够不够撑到出口,更不晓得这
条路对自己来说是不是没有出口…这一切只关乎个人选择,能不能撑下去大概还是取决于
价值观吧。
打趣的说,这段时间都在磨刀,但这把刀一年只能拔一次,如果在小说里,拔出这把刀肯
定是大杀四方、见血封喉;可惜,在真实世界里,刀不一定能顺利拔出来,真的拔出来还
可能砍不到…
还有一点是怎么知道什么时候该面试了?因为永远都有写不出来的题目,所以大概就预定
个月份,时间到就找 hr 或是等 hr 找。
面试还是有一些运气成份在,失败的经验就当成是学习。
大概的方向就这样,希望能对其它人有一点帮助。