B****D 发帖数: 132 | 1 工作中招过几十上百人. 粗略讲一下大家准备面试中的误区.
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), 复杂一些, 出错概率大些. 实际工作, 我可以都写, 然
后用前一个为后一个测试. 你需要写两个么? 这样, 面试人会觉得你很有经验. 你也不
容易慌. | p*****2 发帖数: 21240 | | B****D 发帖数: 132 | | p*****2 发帖数: 21240 | 4
膜拜。
【在 B****D 的大作中提到】 : 你想去的公司, 我都混过. 嘿嘿.
| k*********6 发帖数: 738 | | s********u 发帖数: 1109 | 6 说的正中要害!
不过标题应该是“从招人角度看准备面试”呵呵 | i******t 发帖数: 22541 | 7 well said
这样的 文章应该多写点
站在对方角度看 不管啥事情都是很重要的
楼主继续写啊
多谢! | u*****o 发帖数: 1224 | | s*******s 发帖数: 103 | | j*********6 发帖数: 407 | 10 赞!经验人士应该经常来版上开开讲座~ 很有帮助 | | | f********x 发帖数: 2086 | 11 大牛多来指导指导我们小的工作啊
多谢!
CODE
【在 B****D 的大作中提到】 : 工作中招过几十上百人. 粗略讲一下大家准备面试中的误区. : 1. 过于注重写程序. : 看了几个讨论, 经常冒出 "这是我写的程序, 请大牛看看有什么不对的地方". 这种想 : 法和做法都极其有害. : 为什么? 因为不重视交流想法. 程序员, 大多数不喜欢看别人写的CODE. 为什么? 费劲 : . 你在面试的时候, 不说话, 在白板上花花写一片, 然后停下来目光炯炯看着面试考官 : , 十有八九没戏. 为什么? 因为面试官不见得能立即看懂你写了些什么. 到底是谁考谁 : ? : 这方面, 印度人做得好很多. 要从粗到细, 讲想法, 讲算法. pseudo code 比最终CODE : 重要很多. 而且体现了你能与人合作的能力. 你要工作中与别人发生争执, 动不动就"
| x****o 发帖数: 29677 | 12 这是被烙印逼得不得不重视code,你跟烙印交流pseudo code,他说good,回头
feedback写上你code不过关,找谁哭去
如果老中面试能有烙印同等的对待,哪还用这么费劲 | p*****2 发帖数: 21240 | 13
大牛说的对。如果我是面试官,烙印上pseudo code,我肯定让他们跪。
【在 x****o 的大作中提到】 : 这是被烙印逼得不得不重视code,你跟烙印交流pseudo code,他说good,回头 : feedback写上你code不过关,找谁哭去 : 如果老中面试能有烙印同等的对待,哪还用这么费劲
| x****o 发帖数: 29677 | 14
你怎么把你自己大牛的名号套到我身上了?二爷你才是大牛
我就是看到很多老中来发帖抱怨,说清楚算法以及伪代码了,面试官也说OK,回头
feedback都是code不过关才有这感触的
【在 p*****2 的大作中提到】 : : 大牛说的对。如果我是面试官,烙印上pseudo code,我肯定让他们跪。
| p*****2 发帖数: 21240 | 15
我的理解,用伪代码面试就是negative的表现。如果国人的话,我可能会过,否则肯定
不行。
【在 x****o 的大作中提到】 : : 你怎么把你自己大牛的名号套到我身上了?二爷你才是大牛 : 我就是看到很多老中来发帖抱怨,说清楚算法以及伪代码了,面试官也说OK,回头 : feedback都是code不过关才有这感触的
| s********u 发帖数: 1109 | 16 lz没有说只写pseudo code吧,只是说交流思路重要,我们忽略了这部分的重要性。吃
饭很重要,不代表除了吃饭别的都不干。
【在 x****o 的大作中提到】 : 这是被烙印逼得不得不重视code,你跟烙印交流pseudo code,他说good,回头 : feedback写上你code不过关,找谁哭去 : 如果老中面试能有烙印同等的对待,哪还用这么费劲
| p*****2 发帖数: 21240 | 17
这个也要看公司了,很难一概而论。
【在 s********u 的大作中提到】 : lz没有说只写pseudo code吧,只是说交流思路重要,我们忽略了这部分的重要性。吃 : 饭很重要,不代表除了吃饭别的都不干。
| c********w 发帖数: 2438 | | p*****3 发帖数: 488 | | p*****2 发帖数: 21240 | 20
大牛英明。
【在 p*****3 的大作中提到】 : 欲加之罪,何患无词
| | | t**********r 发帖数: 2153 | 21 不是这个意思他说的是用先用伪码迅速解释清楚思路,再具体实现。
【在 p*****2 的大作中提到】 : : 大牛英明。
| p*****2 发帖数: 21240 | 22
没有能力直接写代码?
【在 t**********r 的大作中提到】 : 不是这个意思他说的是用先用伪码迅速解释清楚思路,再具体实现。
| w*******s 发帖数: 138 | 23 楼主说得很有道理,澄清了不少误区,简而言之,面试不是考试,面试中人的因素很重
要,要特别重视与面试官的互动与交流,在communication上,阿三普遍做得比国人好。
但是我也觉得楼主的有些看法也有偏颇之处。
关于写程序,有些面试官的要求是写伪代码,有些要求是写真实代码,这是因为每个面
试官的要求和要考察的点不一样。一般而言,如果考察的是系统设计和繁琐的算法,那
思路和想法比较重要,这时往往只需要写伪代码;如果面试官出了一道直接了当的题,
那考察的是实际编码实现能力,那就应该写真正的代码,尽量做到标点符号都正确,显
示出自己的实际编程能力。如何知道何时写伪代码何时写源码呢?好的面试官应该提前
说清楚,如果面试者写错了类型,应该能及时纠正,如果面试官没有说清楚,那面试者
也应该积极和面试官交流澄清要求。
关于解释代码,一般而言,写完代码之前就应该粗略解释一下思路算法,同时这也是一
个和面试官交流获得其对自己解法认可的好机会,如果解法有误,有些时候面试官会给
提示。写代码时和写完代码后,也应该注意解释思路和代码,但千万注意把握解释的度
,不要过于罗唆,面试官理应对自己题目的不同解法理解更多,解释做到简洁有效即可
。有些时候如果在小细节上解释浪费太多时间得不偿失,譬如花了10分钟解释一个热身
题的解法,浪费了很多做其他题目的时间。好的面试官应该能够把握面试的节奏,适时
制止冗余的解释。如何把握这个度呢?多与面试官交流。
关于程序的效率,也是交流。想出算法后直接和面试官探讨,主动估计算法时空复杂度
,然后与面试官确认此解法的复杂度是否符合要求。
很多阿三有与国人截然相反的问题,很多时候,他们做不出题,或者只会写伪代码,就
一味的与面试官交流,希望能够套出一些提示,或者在一些很简单细小的地方解释得非
常详尽拖延时间,这些也都不对,但是能忽悠一些人,而且这种方法也比做不出题又不
说话强。
CODE
【在 B****D 的大作中提到】 : 工作中招过几十上百人. 粗略讲一下大家准备面试中的误区. : 1. 过于注重写程序. : 看了几个讨论, 经常冒出 "这是我写的程序, 请大牛看看有什么不对的地方". 这种想 : 法和做法都极其有害. : 为什么? 因为不重视交流想法. 程序员, 大多数不喜欢看别人写的CODE. 为什么? 费劲 : . 你在面试的时候, 不说话, 在白板上花花写一片, 然后停下来目光炯炯看着面试考官 : , 十有八九没戏. 为什么? 因为面试官不见得能立即看懂你写了些什么. 到底是谁考谁 : ? : 这方面, 印度人做得好很多. 要从粗到细, 讲想法, 讲算法. pseudo code 比最终CODE : 重要很多. 而且体现了你能与人合作的能力. 你要工作中与别人发生争执, 动不动就"
| p*****2 发帖数: 21240 | 24
好。
赞。
【在 w*******s 的大作中提到】 : 楼主说得很有道理,澄清了不少误区,简而言之,面试不是考试,面试中人的因素很重 : 要,要特别重视与面试官的互动与交流,在communication上,阿三普遍做得比国人好。 : 但是我也觉得楼主的有些看法也有偏颇之处。 : 关于写程序,有些面试官的要求是写伪代码,有些要求是写真实代码,这是因为每个面 : 试官的要求和要考察的点不一样。一般而言,如果考察的是系统设计和繁琐的算法,那 : 思路和想法比较重要,这时往往只需要写伪代码;如果面试官出了一道直接了当的题, : 那考察的是实际编码实现能力,那就应该写真正的代码,尽量做到标点符号都正确,显 : 示出自己的实际编程能力。如何知道何时写伪代码何时写源码呢?好的面试官应该提前 : 说清楚,如果面试者写错了类型,应该能及时纠正,如果面试官没有说清楚,那面试者 : 也应该积极和面试官交流澄清要求。
| f********e 发帖数: 91 | 25 我觉得说的很有道理 面试中和面试官的交流是我们很多人有忽略的 把题做出来只是
成功的面试的一方面吧
CODE
【在 B****D 的大作中提到】 : 工作中招过几十上百人. 粗略讲一下大家准备面试中的误区. : 1. 过于注重写程序. : 看了几个讨论, 经常冒出 "这是我写的程序, 请大牛看看有什么不对的地方". 这种想 : 法和做法都极其有害. : 为什么? 因为不重视交流想法. 程序员, 大多数不喜欢看别人写的CODE. 为什么? 费劲 : . 你在面试的时候, 不说话, 在白板上花花写一片, 然后停下来目光炯炯看着面试考官 : , 十有八九没戏. 为什么? 因为面试官不见得能立即看懂你写了些什么. 到底是谁考谁 : ? : 这方面, 印度人做得好很多. 要从粗到细, 讲想法, 讲算法. pseudo code 比最终CODE : 重要很多. 而且体现了你能与人合作的能力. 你要工作中与别人发生争执, 动不动就"
| o**q 发帖数: 47 | 26 更多面试中的误区:
http://phdtree.org/toplist/field/chem/
http://phdtree.org/
CODE
【在 B****D 的大作中提到】 : 工作中招过几十上百人. 粗略讲一下大家准备面试中的误区. : 1. 过于注重写程序. : 看了几个讨论, 经常冒出 "这是我写的程序, 请大牛看看有什么不对的地方". 这种想 : 法和做法都极其有害. : 为什么? 因为不重视交流想法. 程序员, 大多数不喜欢看别人写的CODE. 为什么? 费劲 : . 你在面试的时候, 不说话, 在白板上花花写一片, 然后停下来目光炯炯看着面试考官 : , 十有八九没戏. 为什么? 因为面试官不见得能立即看懂你写了些什么. 到底是谁考谁 : ? : 这方面, 印度人做得好很多. 要从粗到细, 讲想法, 讲算法. pseudo code 比最终CODE : 重要很多. 而且体现了你能与人合作的能力. 你要工作中与别人发生争执, 动不动就"
| z****e 发帖数: 54598 | 27 靠谱
其实代码可读性的排名很高
请务必重视这一点
我一直比较自豪的一点就是我写的java代码
比有些人写的python还简洁易懂,所以我一直很欣赏公孙大神
虽然我跟他的stack有些出入,但是编码哲学基本上是一致的
CODE
【在 B****D 的大作中提到】 : 工作中招过几十上百人. 粗略讲一下大家准备面试中的误区. : 1. 过于注重写程序. : 看了几个讨论, 经常冒出 "这是我写的程序, 请大牛看看有什么不对的地方". 这种想 : 法和做法都极其有害. : 为什么? 因为不重视交流想法. 程序员, 大多数不喜欢看别人写的CODE. 为什么? 费劲 : . 你在面试的时候, 不说话, 在白板上花花写一片, 然后停下来目光炯炯看着面试考官 : , 十有八九没戏. 为什么? 因为面试官不见得能立即看懂你写了些什么. 到底是谁考谁 : ? : 这方面, 印度人做得好很多. 要从粗到细, 讲想法, 讲算法. pseudo code 比最终CODE : 重要很多. 而且体现了你能与人合作的能力. 你要工作中与别人发生争执, 动不动就"
| z****e 发帖数: 54598 | 28 可以先定义成一堆方法
定义好各个步骤
然后挨个实现
用这个方式对付valid number其实很容易
【在 t**********r 的大作中提到】 : 不是这个意思他说的是用先用伪码迅速解释清楚思路,再具体实现。
| z****e 发帖数: 54598 | 29 这种是被黑的
欲加之罪,何患无辞
你怎么写都没用
实际上工作中遇到这种
那这个真的只能是尽人事,听天命了
【在 x****o 的大作中提到】 : 这是被烙印逼得不得不重视code,你跟烙印交流pseudo code,他说good,回头 : feedback写上你code不过关,找谁哭去 : 如果老中面试能有烙印同等的对待,哪还用这么费劲
| W***o 发帖数: 6519 | 30 好文,谢谢
CODE
【在 B****D 的大作中提到】 : 工作中招过几十上百人. 粗略讲一下大家准备面试中的误区. : 1. 过于注重写程序. : 看了几个讨论, 经常冒出 "这是我写的程序, 请大牛看看有什么不对的地方". 这种想 : 法和做法都极其有害. : 为什么? 因为不重视交流想法. 程序员, 大多数不喜欢看别人写的CODE. 为什么? 费劲 : . 你在面试的时候, 不说话, 在白板上花花写一片, 然后停下来目光炯炯看着面试考官 : , 十有八九没戏. 为什么? 因为面试官不见得能立即看懂你写了些什么. 到底是谁考谁 : ? : 这方面, 印度人做得好很多. 要从粗到细, 讲想法, 讲算法. pseudo code 比最终CODE : 重要很多. 而且体现了你能与人合作的能力. 你要工作中与别人发生争执, 动不动就"
| | | l*******g 发帖数: 82 | 31 那你让他跪是因为用pseudo code还是因为a3?呵呵
你如果因为pseudo code,那你只能提公司找来一帮应试教育的高手。在实际软件开发
中,从开阔思路解决问题更重要。而接受spec然后写代码?哪不如直接外包回国。这点
AT | s*********y 发帖数: 615 | 32 留着以后看
CODE
【在 B****D 的大作中提到】 : 工作中招过几十上百人. 粗略讲一下大家准备面试中的误区. : 1. 过于注重写程序. : 看了几个讨论, 经常冒出 "这是我写的程序, 请大牛看看有什么不对的地方". 这种想 : 法和做法都极其有害. : 为什么? 因为不重视交流想法. 程序员, 大多数不喜欢看别人写的CODE. 为什么? 费劲 : . 你在面试的时候, 不说话, 在白板上花花写一片, 然后停下来目光炯炯看着面试考官 : , 十有八九没戏. 为什么? 因为面试官不见得能立即看懂你写了些什么. 到底是谁考谁 : ? : 这方面, 印度人做得好很多. 要从粗到细, 讲想法, 讲算法. pseudo code 比最终CODE : 重要很多. 而且体现了你能与人合作的能力. 你要工作中与别人发生争执, 动不动就"
| H*********s 发帖数: 2724 | | j****l 发帖数: 85 | 34 受用!
我有一次面的时候做一道简短算法题,就是先想一个简单case example,然后pseudo
code每个步骤定义个函数,然后开始优化,考虑edge case,跟面试官敲定优化思路后
开写code,被面试官表扬了说是good habit。
不过不是每一个面试官都是这个节奏的感觉。而且问到一些概念何设计题我就跪。。尤
其设计题应该怎么准备的?求教!谢lz谢各位大神,多贡献点具体经验啊
好。
【在 w*******s 的大作中提到】 : 楼主说得很有道理,澄清了不少误区,简而言之,面试不是考试,面试中人的因素很重 : 要,要特别重视与面试官的互动与交流,在communication上,阿三普遍做得比国人好。 : 但是我也觉得楼主的有些看法也有偏颇之处。 : 关于写程序,有些面试官的要求是写伪代码,有些要求是写真实代码,这是因为每个面 : 试官的要求和要考察的点不一样。一般而言,如果考察的是系统设计和繁琐的算法,那 : 思路和想法比较重要,这时往往只需要写伪代码;如果面试官出了一道直接了当的题, : 那考察的是实际编码实现能力,那就应该写真正的代码,尽量做到标点符号都正确,显 : 示出自己的实际编程能力。如何知道何时写伪代码何时写源码呢?好的面试官应该提前 : 说清楚,如果面试者写错了类型,应该能及时纠正,如果面试官没有说清楚,那面试者 : 也应该积极和面试官交流澄清要求。
| k*********g 发帖数: 791 | 35 招人角度看面试准备
【在 s********u 的大作中提到】 : 说的正中要害! : 不过标题应该是“从招人角度看准备面试”呵呵
| a******e 发帖数: 710 | 36 同意楼主
CODE
【在 B****D 的大作中提到】 : 工作中招过几十上百人. 粗略讲一下大家准备面试中的误区. : 1. 过于注重写程序. : 看了几个讨论, 经常冒出 "这是我写的程序, 请大牛看看有什么不对的地方". 这种想 : 法和做法都极其有害. : 为什么? 因为不重视交流想法. 程序员, 大多数不喜欢看别人写的CODE. 为什么? 费劲 : . 你在面试的时候, 不说话, 在白板上花花写一片, 然后停下来目光炯炯看着面试考官 : , 十有八九没戏. 为什么? 因为面试官不见得能立即看懂你写了些什么. 到底是谁考谁 : ? : 这方面, 印度人做得好很多. 要从粗到细, 讲想法, 讲算法. pseudo code 比最终CODE : 重要很多. 而且体现了你能与人合作的能力. 你要工作中与别人发生争执, 动不动就"
| y*****3 发帖数: 451 | 37 你没看懂LZ的point,表现自己的能力是次要的,会与人交流才是更重要的
【在 p*****2 的大作中提到】 : : 好。 : 赞。
| p*****2 发帖数: 21240 | 38
你看懂我的point了?
【在 y*****3 的大作中提到】 : 你没看懂LZ的point,表现自己的能力是次要的,会与人交流才是更重要的
| y*****3 发帖数: 451 | 39 人家说:最好先写伪代码,然后再写代码。
你的回答是:没有能力直接写代码?
那你的point是什么??
【在 p*****2 的大作中提到】 : : 你看懂我的point了?
| p*****2 发帖数: 21240 | 40
这不是很明显吗?
【在 y*****3 的大作中提到】 : 人家说:最好先写伪代码,然后再写代码。 : 你的回答是:没有能力直接写代码? : 那你的point是什么??
| | | y*****3 发帖数: 451 | 41 是很明显啊,你的观点就是:先写伪代码的就是没有能力直接写代码。所以,我前边说
你的point没说错啊,赫赫。但是,人家LZ的point是:写伪代码的目的是为了沟通,
这和你有没有能力直接写代码根本扯不上。
【在 p*****2 的大作中提到】 : : 这不是很明显吗?
| p*****2 发帖数: 21240 | 42
那你就这么理解吧。
【在 y*****3 的大作中提到】 : 是很明显啊,你的观点就是:先写伪代码的就是没有能力直接写代码。所以,我前边说 : 你的point没说错啊,赫赫。但是,人家LZ的point是:写伪代码的目的是为了沟通, : 这和你有没有能力直接写代码根本扯不上。
| y*****3 发帖数: 451 | 43 Thank you for confirming.
【在 p*****2 的大作中提到】 : : 那你就这么理解吧。
|
|