作者AmosYang (泛用人型编码器)
看板Soft_Job
标题Re: [请益] 面试如果考coding可以这样回答吗?
时间Sun May 5 12:20:52 2019
※ 引述《sorryla (Mr.东)》之铭言:
: 提一个白板面试很重要但常被忽略的东西:写Test case
: 由前面回文可以看出来有人看到题目就跃跃欲试想要把演算法实作出来给面试者对答案,
: 但是在实际动手写code之前应该要先想好有哪些问题要解决,还有可能会发生的意外,
: 这样写出来的code才会比较robust,也不需要一直涂涂改改而让面试者扣你分.
: 列出test case除了能够让你的演算法设计更经得起考验,还能够跟面试者讨论如何处理
: 例外,表现出你具备与团队合作且提出不同解法的能力,例如测资6就可以问说有没有记
: 忆体限制(可否使用long或浮点数来处理),或是需不需要丢exception等等这种没有
: 标准答案的问题,然後根据面试者的spec修改你的API design。
: 虽然说有些corner case是跟程式语言本身有关,但是大方向不变,只要能够提出该语言
: 的一些限制并提出解决方案,基本上就能说服面试者你有足够的知识去解决问题。
我想从「流程」这个角度来补充 sorryla 的建议 :)
1. 拿到题目,解读
2. 用「自己的话」复述、解释一次题目,与出题者确认自己对题目的理解是正确的
3. 找出该题目中
3.1 前提(precondition) / 假设(assumption) / 预设(given)
3.2 歧义(ambiguity) / 特殊情形(edge case)
3.3 基本盘(baseline) / 理智测试(sanity test)
4. 与出题者
* 确认 (3.1), (3.3)
* 讨论 (3.2) 的处理方法/要求
5. 「从 (1) 拿到的题目」 加上 「从 (4) 得到的资讯」 才是 完整的题目;视
情况重复 (2)
6. 边解题边视情况描述 why & how (所谓 "thinking out loud", 清楚地解释你
的想法)
7. 写好後视情况代入 (3.2) 与 (3.3) 来检查正确性
8. 做好心理准备
* 「只要不是 O(n) 解就QQ」 XD
* 讨论时间、空间复杂度(time & space complexity)
* 各种取舍(trade-off) 、变型题
# 软技能 vs. 硬实力
软技能 (沟通、应对、协商、说服、等等) 会用在多处,例如 (2), (4), (6), (8)
若单压重注在「硬实力+刷题」,我觉得风险相对较高。
硬实力会需要软技能的辅助来展示、表现。
--
个人 杂谈、学习、英语、软体
https://www.facebook.com/tw.yang.30 https://www.facebook.com/30abysses/
https://twitter.com/twy30 http://www.30abysses.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 136.56.13.184
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1557030063.A.E23.html
※ 编辑: AmosYang (136.56.13.184), 05/05/2019 12:24:53
# 解题、刷题、出题
以下是我的个人经验,不见得人人都有余裕与机会去复制,写出来做为参考。
我在念大学时,学校有开一节 1 学分的课 (一般课程是 3 学分) ,让对程式竞
赛(ACM ICPC)有兴趣的学生能集合起来「玩」。
因为觉得很好玩,所以我相当熟衷於参与该课,久了就跟教授混熟了,就开始做助
教(义工)的事务,然後就有机会参与「出练习题」的过程;有的时候是拿过去比赛
的题目来做,有的时候是自己设计题目。
现在回想起来,就像是「有了『坐在面试桌另一边』的经验後,才对整个面试流程
有更完整的认识」;参与过「出题、设计题目」的过程後,感觉对「题型、解题方
向」更能掌握。
也就是,「亲自设置过题目中的陷井 (如上述的 3.1, 3.2, 3.3) 」後,以後就比
较能察觉到「别人出在它的题目中的陷井」 XD 也更能察觉到出题者心理在想什麽
。
但,如这段开头所述,这条路不是人人都有余裕与机会去复制;我在第一次正式工
作面试白板题前,有至少 6~8 年的时间可以「玩」 ACM ICPC 程度的题目、有时
间利用「间隔重复」效应 (
https://en.wikipedia.org/wiki/Spaced_repetition )
再加上当年藉助教身份之便,能就近观察其它学生的反应,从完全不同的角度看「
解题」这件事,看到自己平时难以察觉的自己的思考偏误,教学相长,我觉得蛮有
帮助的。
※ 编辑: AmosYang (136.56.13.184), 05/05/2019 12:28:52
※ 编辑: AmosYang (136.56.13.184), 05/05/2019 12:29:29
1F:推 bben900911: 推,没想到前三篇能引来这篇。这样想也算是功德一件 05/05 12:32
2F:推 alihue: 推推,u 质好文 05/05 12:35
3F:推 b10007034: 大神回文必看 05/05 12:44
4F:推 cutekid: 推(Y) 05/05 12:45
5F:推 ian90911: 推好文 05/05 13:17
6F:推 TheOneisNEO: nice 05/05 14:02
7F:推 agamek900: 真的是没O(n)就下去 面了一堆发现主管最爱听用hash做的 05/05 16:36
8F:推 aria0520: 再来就是O(1) space 05/05 22:59
设计对白:
「要 O(1) 呀,总目标就是要 O(1) ,我们所做的一切就是要 O(1) 。这个 O(n)
是其中之一,谢谢。」
XD
※ 编辑: AmosYang (136.56.13.184), 05/06/2019 04:59:48
9F:推 Ouranos: 推推~ 05/06 09:11
10F:推 plsmaop: 有时候 hash 还不够,还要 trie,radix tree 这种 05/06 14:00
11F:推 fate111085: 厉害 05/06 19:42
12F:推 freedls: 很有料XD 05/06 21:20
13F:推 genius945: 原来这叫间隔重复效应 长知识 05/06 23:56