工作也旅行 将会是一系列的文章的主题,详情请看 http://ruby-china.org/topics/16944.
选 移动的工作 和这篇文章的人数是一样。所以我选了这个比较简短的分享。这其实是没有计划在主题里面的。但我觉得是一次难得的经历,所以也写出来和大家分享一下。
这次先来张照片
因为 At.js 项目我在旅行至黄山脚下时收到了来自美国一旧金山公司的工作邀请,并在北京参加完 Ruby China Conf 后进行了面试。而我面试的应该是 前端开发 的职位。
很可惜,我面试失败了。这使我失落了那么一两天,虽然我一开始就已没有抱太大的希望。
从黄山到北京参加完 Ruby Conf 后一共有 10 天时间。但是我可以说没有做任何准备,当时我只是觉得只是跟对方聊聊而已。
虽然我多次想直接放弃参加任何活动和去任何地方就准备好这次远程通话。但是我没有那么做。
其实,现在想想,是自己没有好好把握这个突如其来的好机会。
面试是在北京时间早上七点半开始的,美国那边大概是下午四点半吧。我们就找合适的时间还来回了几封邮件。这里我暂称和我通话的人叫 Peter.
Peter 和我确定了时间后通过 Google Calendar 发送了 Skype 通话的 Event 邀请。
一开始 Peter 先简单的介绍了一下公司,他们已有一个 UX 团队 (估计是正在组建). 然后就问我一些在邮件上问问过我的问题,诸如我在哪里啊,是否愿意来到美国工作之类的. 我当然回应能去的话那是再好不过的了。在问完基本情况后,接着他问了一个蠢人都知道怎么回答的问题,而我却不假思索的答错了。问题是这样的:你是否可以现在就进行面试,还是说再安排个时间呢?. 我想我之前是没有理解错的,这次通话只是聊聊而已。但是我马上回答:可以啊,现在就可以面试 (太 TMD 自信了.. = =).
"OK! Cool! So then I will give you a.......".
其实当时我隐约发觉我说错话了,Peter 马上就给我介绍接下来要怎么面试了。我那时候已经开始慌了。这是我接近两年来第一次比较正式的面试。已经可以说我已经毫无面试经验了。
好。和 Peter 先生一样,废话少说,切入正题。Peter 一开始便给了我一个连接,进入一个网站,里面有一道题目。Peter 会看着我做的任何修改。以下是规则:
Peter 简单的跟我说了下那个网站怎么回事并告诉我不用理会里面的代码用的是什么语言,按照我自己想的编写代码就可以了。
好,开始! 虽然跟真正面试的环境不太一样。有兴趣的话你也可以试试看。
http://sketchpad.cc/6uj0ntkM46
不知道大家觉得 20 分钟会不会太少了?我当时是刚搞明白里面怎么回事差不多就 20 分钟了。一是当时慌张了,现在根本回想不起来当时是怎么个状况,就是一个乱字. 二是我竟然认识里面代码讲的内容,花了过多的时间去 Google 了。结果我这边半天没有什么动静,没输入过什么东西。Peter 得知我刚开始比较紧张后,还把时间调整到 50 分钟并安慰我说不用紧张,这没什么大不了的啊。:)
过程中我还尝试去问了 Peter 两三个问题。Peter 也都仔细的回答了。 最后,在我问是否可以 Google 一下解决方法后,Peter 决定终止面试了,结论是:"你也许是个优秀的 js 开发者,但是对面试考得这些内容不太行。如果你有做好 interview 准备应该会好些...... "
然后就没有然后了。
虽然失败了,但我还是觉得这是很难得的经历。总得收获些什么。
首先,当然全程都是用英文交流的,而且 Peter 不会在这方面有所照顾。这方面就把我削弱了很多。虽然 基本交流都没有问题,但是我来不及考虑. 我的时间基本都花在理解 Peter 说的话和整个面试过程上了。而且,因为 Peter 的语速比较快,以我的英语水平总会 丢失信息 . 最后慌乱起来。一言蔽之,交流不行。
然后,我花了很多时间在阅读代码说明和代码上了,而且因为我貌似认识里面代码讲的内容,总想着去 Google 更具体的代码或者讲解。其实注释里面已经说得很清楚了,没有必要 google. 如此一来,我便是左顾右盼,没有关注到问题本身。
再者,我已经长时间没有面试过了,即使如此我还是没有做任何准备。态度也是消极的,因为我一开始就没有抱太大希望,否认了自己。认为这只是运气,显得儿戏。
还有一个非常让我"痛心"的是,我的前任 BOSS: @hayeah 用过差不多一样的题目去面试,还跟我们提起过,所以我认得里面代码的内容。我记得他还叫我试试看。但是我就是 (TMD) 没有去试试看。
我后来回想了几次整个面试的过程和题目,觉得这里对于面试官来说也有不少可取之处。
我自己做了些内容扩展。
我觉得这个会挺有意思的,当时我猜链接里面的代码是 C 语言。心里还想着我不是面试前端吗?! 怎么还我用 C 语言解算法题啊!! 其实那不是 C 语言,你猜到是什么了吗? 不要告诉面试者这是什么语言。就如 Peter 跟我说的一样,不要管,照用就是了。
我认为这个的好处是可以看看对 新事物的适应能力, 还有学习能力. 另外,看面试者是否可以排除干扰,直接 关注到问题本身 . 当然,这个要需要下面内容的配合。
20 分钟,对于算法不在行的我来说,光听着就够紧张的了。但是我严重的忽略了一点,Peter 没有要求我把这道题完整的解出来,他只是想看看我如何去解决这个问题。看看我如何编写代码,如何 去 书写 和 表达. 所以他说我不必关心那里面用的是什么语言,只管输出文字就好了。
而我的思维定势就是只有把题目给答出来了才是对的。其实不然,我只需要去 表达 想法就好了。
这个也许在英语面试里的作用显得更为明显。参与到解题过程中去,帮助解决问题。就如 Peter 一样,我不懂或者遇到困难的时候,可以向他寻求帮助。我觉得这里可以扩展一下,更多的参与进来,看看面试者如何与人交流和合作。
而我当时却选择去依赖 Google, 当然,英语交流是个严重的障碍。
我觉得这个的好处就是,能在一定程度上消除面试者的紧张感,而不是感觉有个 "压力" 在盯着自己,可以有更真实的发挥。另外,合作过,才有更好和相对深入的了解。
这期的分享就结束了。下一篇会接着讲 移动的工作 预计篇幅会比较长。