D*********G 发帖数: 193 | 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! |
s**x 发帖数: 7506 | 2 说自己没有bug free 而没拿到 offer 的, 都是不知道自己真正的败因在哪里。
I am pretty certain bugs is probably the last thing everyting reasonable
interviewers actually checks.
高手过招, 一个眼神就知道你干什么了。 当你能清晰准确的讲出自己的思路后, 好
多面试官就开始看手机了, |
p******4 发帖数: 31 | 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做得好,写代码的
|
g**s 发帖数: 2331 | |
m*****t 发帖数: 13 | |
s*******m 发帖数: 38 | 6 鼓掌!!! 说得好
【在 s**x 的大作中提到】 : 说自己没有bug free 而没拿到 offer 的, 都是不知道自己真正的败因在哪里。 : I am pretty certain bugs is probably the last thing everyting reasonable : interviewers actually checks. : 高手过招, 一个眼神就知道你干什么了。 当你能清晰准确的讲出自己的思路后, 好 : 多面试官就开始看手机了,
|
l**********9 发帖数: 537 | 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做得好,写代码的
|
y*******g 发帖数: 6599 | |
M*********n 发帖数: 4839 | 9 bug free只是对于你见过的题目。
完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。
bug free就是个噱头。 |
M****l 发帖数: 416 | 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做得好,写代码的
|
|
|
a*******d 发帖数: 9 | 11 我面试的时候,真要做到bug free,就不要想着写完了去跑test case,面试官在后面
观察的一清二楚,基本我刚写完,就会被告知有没有BUG,或者跑哪个test case,这时
候就要思路清楚地赶紧把bug挑出来。
遇到那种新题,那想一步bug free就太难了,一边要大声地把自己的思路想法表达出来
,一边还要把code写的规范清楚,之前面了一个读内存的题目,corner case 比较恶心
,还好面试官人不错,在我写的过程中,就不断让我去跑test case,最后写完,也就
bug free了 |
v***n 发帖数: 562 | |
n*******d 发帖数: 83 | 13 我面试别人的时候基本不太care那种加一减一这种小bug,corner case没考虑到不太会
影响hitr no hire决定 |
n*******d 发帖数: 83 | 14 不过还是感谢楼主帮大家总结!虽然有bug一般不会致命,但是能做到bug free会添彩:
-) |
p***y 发帖数: 637 | 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做得好,写代码的
|
p***y 发帖数: 637 | 16 边写边检查。写好后测试,自己找八哥,修好后说done..
不过,不知道主考官怎么期望,如果期望看背答案,飞快写好,那上述步骤就等着杯具
了。不过我一直觉得主考官没理由看人默写答案才是。
【在 M*********n 的大作中提到】 : bug free只是对于你见过的题目。 : 完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。 : bug free就是个噱头。
|
p***y 发帖数: 637 | 17 真心请教一下,如果你出一道原题,我正好没刷过,没法十分钟内直接写出代码,只能
一步一步研究解决出来了,比刷过的人多花了不少时间,期间还走了弯路再自己发现纠
正,代码自测也发现了bug并修好。这算是表现差还是好呢?以我个人见解是迅速写出
答案的明显刷题,需要出备用题目考核。不知道业界标准是怎样的?
【在 n*******d 的大作中提到】 : 我面试别人的时候基本不太care那种加一减一这种小bug,corner case没考虑到不太会 : 影响hitr no hire决定
|
j********x 发帖数: 2330 | 18 好帖子必然没人顶,顶的都是吵架跟技术红卫兵发传单。。。
支持楼主。。。步骤很实用 |
f**********9 发帖数: 88 | 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做得好,写代码的
|
i*********h 发帖数: 49 | |
|
|
n******a 发帖数: 83 | |
M*********6 发帖数: 263 | |
D*********G 发帖数: 193 | 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! |
s**x 发帖数: 7506 | 24 说自己没有bug free 而没拿到 offer 的, 都是不知道自己真正的败因在哪里。
I am pretty certain bugs is probably the last thing everyting reasonable
interviewers actually checks.
高手过招, 一个眼神就知道你干什么了。 当你能清晰准确的讲出自己的思路后, 好
多面试官就开始看手机了, |
p******4 发帖数: 31 | 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做得好,写代码的
|
g**s 发帖数: 2331 | |
m*****t 发帖数: 13 | |
s*******m 发帖数: 38 | 28 鼓掌!!! 说得好
【在 s**x 的大作中提到】 : 说自己没有bug free 而没拿到 offer 的, 都是不知道自己真正的败因在哪里。 : I am pretty certain bugs is probably the last thing everyting reasonable : interviewers actually checks. : 高手过招, 一个眼神就知道你干什么了。 当你能清晰准确的讲出自己的思路后, 好 : 多面试官就开始看手机了,
|
l**********9 发帖数: 537 | 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做得好,写代码的
|
y*******g 发帖数: 6599 | |
|
|
M*********n 发帖数: 4839 | 31 bug free只是对于你见过的题目。
完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。
bug free就是个噱头。 |
M****l 发帖数: 416 | 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做得好,写代码的
|
a*******d 发帖数: 9 | 33 我面试的时候,真要做到bug free,就不要想着写完了去跑test case,面试官在后面
观察的一清二楚,基本我刚写完,就会被告知有没有BUG,或者跑哪个test case,这时
候就要思路清楚地赶紧把bug挑出来。
遇到那种新题,那想一步bug free就太难了,一边要大声地把自己的思路想法表达出来
,一边还要把code写的规范清楚,之前面了一个读内存的题目,corner case 比较恶心
,还好面试官人不错,在我写的过程中,就不断让我去跑test case,最后写完,也就
bug free了 |
v***n 发帖数: 562 | |
n*******d 发帖数: 83 | 35 我面试别人的时候基本不太care那种加一减一这种小bug,corner case没考虑到不太会
影响hitr no hire决定 |
n*******d 发帖数: 83 | 36 不过还是感谢楼主帮大家总结!虽然有bug一般不会致命,但是能做到bug free会添彩:
-) |
p***y 发帖数: 637 | 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做得好,写代码的
|
p***y 发帖数: 637 | 38 边写边检查。写好后测试,自己找八哥,修好后说done..
不过,不知道主考官怎么期望,如果期望看背答案,飞快写好,那上述步骤就等着杯具
了。不过我一直觉得主考官没理由看人默写答案才是。
【在 M*********n 的大作中提到】 : bug free只是对于你见过的题目。 : 完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。 : bug free就是个噱头。
|
p***y 发帖数: 637 | 39 真心请教一下,如果你出一道原题,我正好没刷过,没法十分钟内直接写出代码,只能
一步一步研究解决出来了,比刷过的人多花了不少时间,期间还走了弯路再自己发现纠
正,代码自测也发现了bug并修好。这算是表现差还是好呢?以我个人见解是迅速写出
答案的明显刷题,需要出备用题目考核。不知道业界标准是怎样的?
【在 n*******d 的大作中提到】 : 我面试别人的时候基本不太care那种加一减一这种小bug,corner case没考虑到不太会 : 影响hitr no hire决定
|
j********x 发帖数: 2330 | 40 好帖子必然没人顶,顶的都是吵架跟技术红卫兵发传单。。。
支持楼主。。。步骤很实用 |
|
|
f**********9 发帖数: 88 | 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做得好,写代码的
|
i*********h 发帖数: 49 | |
n******a 发帖数: 83 | |
M*********6 发帖数: 263 | |
f********c 发帖数: 147 | |
p********n 发帖数: 165 | 46 agree.
【在 M*********n 的大作中提到】 : bug free只是对于你见过的题目。 : 完全没见过的题目或者项目,能50%做到bug free你也不用刷题找工作了。 : bug free就是个噱头。
|
m*******g 发帖数: 410 | |
p*****9 发帖数: 273 | |
p*****9 发帖数: 273 | |