z****e 发帖数: 54598 | 1 【 以下文字转载自 JobHunting 讨论区 】
发信人: BBMMDD (BBMM), 信区: JobHunting
标 题: 从招人角度准备面试.
发信站: BBS 未名空间站 (Sun Nov 24 17:54:47 2013, 美东)
工作中招过几十上百人. 粗略讲一下大家准备面试中的误区.
1. 过于注重写程序.
看了几个讨论, 经常冒出 "这是我写的程序, 请大牛看看有什么不对的地方". 这种想
法和做法都极其有害.
为什么? 因为不重视交流想法. 程序员, 大多数不喜欢看别人写的CODE. 为什么? 费劲
. 你在面试的时候, 不说话, 在白板上花花写一片, 然后停下来目光炯炯看着面试考官
, 十有八九没戏. 为什么? 因为面试官不见得能立即看懂你写了些什么. 到底是谁考谁
?
这方面, 印度人做得好很多. 要从粗到细, 讲想法, 讲算法. pseudo code 比最终CODE
重要很多. 而且体现了你能与人合作的能力. 你要工作中与别人发生争执, 动不动就"
SEE MY CODE", 那根本不行, 除非你已经牛到人人都怕的程度. 所以要学会写HIGH
LEVEL PSEUDO CODE. 我面试的时候, 只要别人写的PSEDO CODE过了, 我基本不怎么看
最后的CODE. 这里缺了一个条件判断, 那里缺了一个, 影响评分, 但不决定结果.
很多人觉得, 我写的CODE没问题, 为什么FAIL了呢? 因为你没说服面试人, 你写的是对
的. 你觉得你在LEECODE上练过, 人人都懂, 人人都明白的东西, 面试考官不见得见过
或明白. 也许你是对的, 也许你的更好, 但那些不管用. 重要的是能让面试人信服.
2. 过于追求效率.
大家对大O的追求到了偏执的地步. 如果你刚毕业, 也许没错, 因为考的就是你努不努
力, 学得多学得深. 如果你已经工作了若干年, 再这么做就不对了. 因为你应该知道,
效率不是一切. 实现的COST, 实现中出现错误的几率都很重要, 你必须达到一个平衡.
而且, 算法是无止无境的. 如果是你没见过的算法, 多半是很多人多年研究出来的结果
, 你不可能在面试的短时间内找出来的.
因此, 你必须要问以下的问题:
1. 写此算法的要求. 例如, 从HEAD 到TAIL 在字典里查找变化的最短路经. 那你需要
问的问题是
, 需要多次查找还是偶尔查找. 如果多次, 有多少次. 字典里单词数量, 是什么数量级
等等. 如果你的面试人很JUNIOR, 他也许会不耐烦, 那问两个就停. 如果很SENIOR, 就
会为你加不少分.
2. 问清楚效率有多么重要. 你可以说, 我有一个O(N)的算法, 写起来非常容易, 不会
出错. 另一个方法是O(LOGN), 复杂一些, 出错概率大些. 实际工作, 我可以都写, 然
后用前一个为后一个测试. 你需要写两个么? 这样, 面试人会觉得你很有经验. 你也不
容易慌. | z****e 发帖数: 54598 | | x****u 发帖数: 44466 | 3 招工程师不应该考算法啊,要是光知道写代码和算法,大学就白念了。
【在 z****e 的大作中提到】 : 我认为原作很赞
| k**********g 发帖数: 989 | |
|