#面试准备#Bug Free

【 以下文字转载自 JobHunting 讨论区 】
发信人: DAOLAIAMENG (熊熊), 信区: JobHunting
标  题: interview心得:我是如何做到bug free的
发信站: BBS 未名空间站 (Sat Oct 25 16:53:23 2014, 美东)


看到版上很多水平不错的同胞,经常因为一些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!

你可能感兴趣的:(面试,jobhunting)