Redian新闻
>
interview心得:我是如何做到bug free的
avatar
interview心得:我是如何做到bug free的# JobHunting - 待字闺中
D*G
1
看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
分享一下,如何避免coding bug的一些心得.
1.平常训练的时候,尽量遵循以下原则:
a) 确定输入,输出
b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
II,就可以用[1,2,2]
c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
trade off,然后eventually让你试试DFS.
d) 然后写出简单思路(类似于comments或者pseudo code)
e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的
过程注意力要全部放在代码的精简性和可读性。要知道,programming "language",这
个language真的是有语言的意义的,好的代码,一看就懂!
f) 写完代码之后,再测试更多的例子,例如subset II,可以试 [], [1], [1,1],...
之类的。可以花1-2分钟检查更多的例子,但是不宜过久。
g) 最后对面试官说 “done”
我的经验是step a) 到 c) 也就1-2分钟,除非你没读懂题。 d)可以1-3分钟,
depending on你的功底,不会的题,如果想了3分钟还不行,你就用brute force的方法
吧。 e)最多5分钟,除非你的step d)出了问题。f)可以1-3分钟,取决的题的复杂度
2. 平常练题的时候也要要求bug free。如果出现一些非常stupid的bug,要花时间好好
总结。
3. 我也是花了一些心思总结,才做到比较bug free的(算法熟悉的题,可以达到less
than 1/20 bug rate)。
最后,强烈推荐Palantir的官方blog, 这是我迄今为止见到最好的advises for SW
coding interview.
http://www.palantir.com/2011/10/the-coding-interview/
Good luck for everyone!
avatar
s*x
2
说自己没有bug free 而没拿到 offer 的, 都是不知道自己真正的败因在哪里。
I am pretty certain bugs is probably the last thing everyting reasonable
interviewers actually checks.
高手过招, 一个眼神就知道你干什么了。 当你能清晰准确的讲出自己的思路后, 好
多面试官就开始看手机了,
avatar
p*4
3
感谢分享

subset

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
g*s
4
已阅。除了多练多总结,细致专注,没有捷径。
avatar
m*t
5
多谢分享!
avatar
s*m
6
鼓掌!!! 说得好

【在 s**x 的大作中提到】
: 说自己没有bug free 而没拿到 offer 的, 都是不知道自己真正的败因在哪里。
: I am pretty certain bugs is probably the last thing everyting reasonable
: interviewers actually checks.
: 高手过招, 一个眼神就知道你干什么了。 当你能清晰准确的讲出自己的思路后, 好
: 多面试官就开始看手机了,

avatar
l*9
7
mark

看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。分享一下
,如何避免coding bug的一些心得.1.平常训练的时候,尽量遵循以下原则:a) 确定输
........

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
y*g
8
百闻不如一见,lz 贴github吧
avatar
M*n
9
bug free只是对于你见过的题目。
完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。
bug free就是个噱头。
avatar
M*l
10
谢谢楼主分享

subset

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
a*d
11
我面试的时候,真要做到bug free,就不要想着写完了去跑test case,面试官在后面
观察的一清二楚,基本我刚写完,就会被告知有没有BUG,或者跑哪个test case,这时
候就要思路清楚地赶紧把bug挑出来。
遇到那种新题,那想一步bug free就太难了,一边要大声地把自己的思路想法表达出来
,一边还要把code写的规范清楚,之前面了一个读内存的题目,corner case 比较恶心
,还好面试官人不错,在我写的过程中,就不断让我去跑test case,最后写完,也就
bug free了
avatar
v*n
12
多谢总结!
avatar
n*d
13
我面试别人的时候基本不太care那种加一减一这种小bug,corner case没考虑到不太会
影响hitr no hire决定
avatar
n*d
14
不过还是感谢楼主帮大家总结!虽然有bug一般不会致命,但是能做到bug free会添彩:
-)
avatar
p*y
15
5分钟从澄清需求的写出伪码,除非题目很k基本吧?

subset

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
p*y
16
边写边检查。写好后测试,自己找八哥,修好后说done..
不过,不知道主考官怎么期望,如果期望看背答案,飞快写好,那上述步骤就等着杯具
了。不过我一直觉得主考官没理由看人默写答案才是。

【在 M*********n 的大作中提到】
: bug free只是对于你见过的题目。
: 完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。
: bug free就是个噱头。

avatar
p*y
17
真心请教一下,如果你出一道原题,我正好没刷过,没法十分钟内直接写出代码,只能
一步一步研究解决出来了,比刷过的人多花了不少时间,期间还走了弯路再自己发现纠
正,代码自测也发现了bug并修好。这算是表现差还是好呢?以我个人见解是迅速写出
答案的明显刷题,需要出备用题目考核。不知道业界标准是怎样的?

【在 n*******d 的大作中提到】
: 我面试别人的时候基本不太care那种加一减一这种小bug,corner case没考虑到不太会
: 影响hitr no hire决定

avatar
j*x
18
好帖子必然没人顶,顶的都是吵架跟技术红卫兵发传单。。。
支持楼主。。。步骤很实用
avatar
f*9
19
mark

subset

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
i*h
20
mark
avatar
n*a
21
mark
avatar
M*6
22
谢谢分享
avatar
D*G
23
看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
分享一下,如何避免coding bug的一些心得.
1.平常训练的时候,尽量遵循以下原则:
a) 确定输入,输出
b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
II,就可以用[1,2,2]
c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
trade off,然后eventually让你试试DFS.
d) 然后写出简单思路(类似于comments或者pseudo code)
e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的
过程注意力要全部放在代码的精简性和可读性。要知道,programming "language",这
个language真的是有语言的意义的,好的代码,一看就懂!
f) 写完代码之后,再测试更多的例子,例如subset II,可以试 [], [1], [1,1],...
之类的。可以花1-2分钟检查更多的例子,但是不宜过久。
g) 最后对面试官说 “done”
我的经验是step a) 到 c) 也就1-2分钟,除非你没读懂题。 d)可以1-3分钟,
depending on你的功底,不会的题,如果想了3分钟还不行,你就用brute force的方法
吧。 e)最多5分钟,除非你的step d)出了问题。f)可以1-3分钟,取决的题的复杂度
2. 平常练题的时候也要要求bug free。如果出现一些非常stupid的bug,要花时间好好
总结。
3. 我也是花了一些心思总结,才做到比较bug free的(算法熟悉的题,可以达到less
than 1/20 bug rate)。
最后,强烈推荐Palantir的官方blog, 这是我迄今为止见到最好的advises for SW
coding interview.
http://www.palantir.com/2011/10/the-coding-interview/
Good luck for everyone!
avatar
s*x
24
说自己没有bug free 而没拿到 offer 的, 都是不知道自己真正的败因在哪里。
I am pretty certain bugs is probably the last thing everyting reasonable
interviewers actually checks.
高手过招, 一个眼神就知道你干什么了。 当你能清晰准确的讲出自己的思路后, 好
多面试官就开始看手机了,
avatar
p*4
25
感谢分享

subset

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
g*s
26
已阅。除了多练多总结,细致专注,没有捷径。
avatar
m*t
27
多谢分享!
avatar
s*m
28
鼓掌!!! 说得好

【在 s**x 的大作中提到】
: 说自己没有bug free 而没拿到 offer 的, 都是不知道自己真正的败因在哪里。
: I am pretty certain bugs is probably the last thing everyting reasonable
: interviewers actually checks.
: 高手过招, 一个眼神就知道你干什么了。 当你能清晰准确的讲出自己的思路后, 好
: 多面试官就开始看手机了,

avatar
l*9
29
mark

看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。分享一下
,如何避免coding bug的一些心得.1.平常训练的时候,尽量遵循以下原则:a) 确定输
........

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
y*g
30
百闻不如一见,lz 贴github吧
avatar
M*n
31
bug free只是对于你见过的题目。
完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。
bug free就是个噱头。
avatar
M*l
32
谢谢楼主分享

subset

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
a*d
33
我面试的时候,真要做到bug free,就不要想着写完了去跑test case,面试官在后面
观察的一清二楚,基本我刚写完,就会被告知有没有BUG,或者跑哪个test case,这时
候就要思路清楚地赶紧把bug挑出来。
遇到那种新题,那想一步bug free就太难了,一边要大声地把自己的思路想法表达出来
,一边还要把code写的规范清楚,之前面了一个读内存的题目,corner case 比较恶心
,还好面试官人不错,在我写的过程中,就不断让我去跑test case,最后写完,也就
bug free了
avatar
v*n
34
多谢总结!
avatar
n*d
35
我面试别人的时候基本不太care那种加一减一这种小bug,corner case没考虑到不太会
影响hitr no hire决定
avatar
n*d
36
不过还是感谢楼主帮大家总结!虽然有bug一般不会致命,但是能做到bug free会添彩:
-)
avatar
p*y
37
5分钟从澄清需求的写出伪码,除非题目很k基本吧?

subset

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
p*y
38
边写边检查。写好后测试,自己找八哥,修好后说done..
不过,不知道主考官怎么期望,如果期望看背答案,飞快写好,那上述步骤就等着杯具
了。不过我一直觉得主考官没理由看人默写答案才是。

【在 M*********n 的大作中提到】
: bug free只是对于你见过的题目。
: 完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。
: bug free就是个噱头。

avatar
p*y
39
真心请教一下,如果你出一道原题,我正好没刷过,没法十分钟内直接写出代码,只能
一步一步研究解决出来了,比刷过的人多花了不少时间,期间还走了弯路再自己发现纠
正,代码自测也发现了bug并修好。这算是表现差还是好呢?以我个人见解是迅速写出
答案的明显刷题,需要出备用题目考核。不知道业界标准是怎样的?

【在 n*******d 的大作中提到】
: 我面试别人的时候基本不太care那种加一减一这种小bug,corner case没考虑到不太会
: 影响hitr no hire决定

avatar
j*x
40
好帖子必然没人顶,顶的都是吵架跟技术红卫兵发传单。。。
支持楼主。。。步骤很实用
avatar
f*9
41
mark

subset

【在 D*********G 的大作中提到】
: 看到版上很多水平不错的同胞,经常因为一些bug而没拿到offer,非常可惜。
: 分享一下,如何避免coding bug的一些心得.
: 1.平常训练的时候,尽量遵循以下原则:
: a) 确定输入,输出
: b) 先举例(这里举例不用太考虑Conner case),例如subset I,就可以用[1,2]; subset
: II,就可以用[1,2,2]
: c) 然后确定算法、方法.例如subset I,很多人都用BFS,但是面试官往往会问你一些
: trade off,然后eventually让你试试DFS.
: d) 然后写出简单思路(类似于comments或者pseudo code)
: e) 写代码,如果是dfs,最好先实现dfs sub-function. 如果step d做得好,写代码的

avatar
i*h
42
mark
avatar
n*a
43
mark
avatar
M*6
44
谢谢分享
avatar
f*c
45
mark
avatar
p*n
46
agree.

【在 M*********n 的大作中提到】
: bug free只是对于你见过的题目。
: 完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。
: bug free就是个噱头。

avatar
m*g
47
分析得透彻,得刷题熟练吧。
avatar
p*9
48
Mark
avatar
p*9
49
Mark
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。