招程序员的最佳方式是这样的?
那天晚上,我正在回想面试中间我最出彩的表现。让我那次表现特别有趣的,不是我做得『有多么好』,而是我『如何做得很好』。以及对自己以及整个过程不满意的地方。
我那时正在应聘一个软件开发的职位,这个公司的面试流程先是电话面试,再到编程测试,最后才正式面试。我在电话面试中表现得很棒,那位招聘人员也说公司对我很感兴趣 —— 我心想有戏了,一切努力都没有白费。
虽不知那位招聘人员的具体评估是怎样的,但那个公司给了我编程测试的机会。面试是发生在我读研的时候,而且我当时正在学的一门课叫“高级数据库设计”,主要是讲找可靠的方案来替代传统的、关系型的数据库。当时听着可能有些超前,因为 NoSQL 运动尚未成气候。
当他们发给我编程测试题的时候,我已经学了一单元如何用 R-Trees 来储存地理信息的内容了。这单元包括 R-Trees 是什么、以及怎样用和一点伪码来梳理一下知识点。无巧不成书,R-Trees 刚好成了我的必杀技。
分析下我为什么能拿下这场面试
那次面试对我来说简直就是小菜一碟。因为我知到我所学的可以用在这面试里,同时我还这么做了。我用几个自动化测试来验证,将其用在测试里以至于整个测试都做的非常快。
我甚至都不用看招聘人员的反应就知道考官们都惊呆了。所以他们直接给钱让我过来参加最后的面试并且告诉我这是目前为止他们所见过最好的方法。我感觉我好像夺宝奇兵里的英雄一样,古老的门卫等某人来用 R-Tree 解决编程测试问题用了一千年。
我最后过了整个面试,但只因我有更好的机会而到别的地方去时,他们对我有点失望,告诉我要是我改变主意随时联系他们。我喜欢这家公司,另外,这次经历让我感觉良好。
然而,当我回顾这次经历时感觉有点怪怪的。毋庸置疑的是,这里有很大成分都是运气,就像公司这么看好我一样。恰恰就是我几周之前做过练习,不然我是不会用 R-Trees 的,要是我迟几个月做练习的话,我可能也不会用 R-Trees 了。要是我没做过或根本不知道 R-Trees 的话,我还能打动考官么?所以我这次史无前例的面试只是我走运而并不是说我原本就是大神。
在应聘时不要害怕失败
你有没有试过在面试时做一些你根本不会的题?如果你有机会去 Google 面试的话,首轮电话面试就像一个口头的大四 CS 程序算法期中考试一样。O 符号、排序算法 和其他东西等。所以这些公司绝不是个例,他们的面试过程被奉为经典。
为了在面试时不那么被动,你应该在应试前努力学习,做到可以回答所有的技术问题。但你永远也不知道他们会怎样刁难你。重点是你永远不知面试时他们会问你什么,或者你和你的对手最近学到的哪些知识刚好能用在面试上。
你可能会遇到像我这么走运一样的人,刚好知道这个问题怎么解让考官对其有好感。要是真的发生了,那也只能怪你的运气不好。
所以你不应该为此失落。因为这种面试其实是不严谨的、不科学的。被拒了并不代表你的能力不行。仅仅是你的运气差而已,没有看到能让你通过的答案。
招聘时要注重正确的事
看看你们有没有像上面那些例子一样招聘的?在所有人相同条件的情况下是否招了像我一样走运的人?如果是这样的话,我建议你好好反省一下看看你的招聘方法有没有问题。
我认为在招聘的时候应该了解其中的几点,以这个人会什么、这个人做了什么和这个人能做什么为标准。这些标准在大多数情况下都很有用但也很难判断。
但至少面试时会什么还是有用的,虽说人花一生时间去学习但忘的也很容易。但这也很容易看得出是不是会,做一些小测试和用一些像你面试过程中的一些东西就行了。
判断一个人能力怎样,虽说有点棘手,但这是最有用的标准。虽说他们有简历和经历上,但这很有可能是个忽悠。就拿 R-Trees 来举例,你可以测试他们是否只是说说还是真的会 R-Trees。但如果之前他们就知道怎么用的话,而不只是说说,那真的是极好的。
对于以上两个标准来说,最重要的还是要看看这个人面对需要用 R-Trees 解决的问题时,是否会做一些基本的学习然后去解决它?这是你需要知道的。同时通过‘做一些基本的学习然后去解决它’的行为也能间接地了解这个人的能力。
最后,我不敢说什么是最佳的招聘方式。评选一个人是很难的。但我可以跟你说如果你越会评估应试者的能力,你就越能招到最好的人。
本文文字及图片出自 伯乐在线
共有 1 条讨论