记一次email code question

Amazon.com在中国招人,如果简历pass了,最开始会有一次email code question,就是约定好时间,通过email把一个问题发过来,然后在一定的时间之内把东西实现好发回给amazon。

第一次做这个code question,感觉比在电话/skype里直接写code要好很多,至少完全是自己在写code,没有外界的干扰。

我收到的问题是,amazon定义了一个类以及它的接口和说明,要在一个小时之内实现这个类。主要是要定义好数据结构,其中大多数方法很简单,只有两个接口需要涉及到算法,也不算太难。最难的是需要在一个小时之内实现。。。

我的情况是:
一个小时的时候写好了除最后一个接口外的实现,最后一个函数已经想好怎么写了,但还没写完;
先发了个邮件把当前的工作发了过去,估计要被刷;不过既然已经写了,索性多花点时间把它做好——
一个小时10分钟的时候,最后那个函数也写完了,但是完全没有测过; 那就继续写UT吧——
一个小时40分钟的时候,写了几个基本的UT,至少能测到所有的函数,其间发现两个code的bug,修掉了。

也就是说,我花了100分钟的时间完成了amazon要求在60分钟之内实现好的东西。
p.s. amazon还要求在每个接口上document它的时间/空间复杂度,这个也没时间写,但是这个倒是不难。

总之,说明写code的速度还不够快;
但是,总觉得要在60分钟之内搞定它,也没太大意义,真的实现好一个类/接口,一般应该这么做吧:
实现功能;
写UT测试功能,保证功能正常(或者UT先写);
优化实现(比如说时间/空间复杂度)。
还是蛮花时间的。

Anyway,只是记录一下这次code question。

Share