作者wrltertnna (小妹)
看板Soft_Job
标题面试程式人,最需关注学习能力
时间Mon Dec 14 17:33:19 2009
文/王建兴 (清华资工所博士班研究生) 2009-12-10
软体人才如何寻 第2回许多主管会将对特定语言及领域知识的熟悉度,摆在用人的最优先考量,但那其实是比较容易解决的
对於履历的来源,我想要补充一点,如果可以的话,尽量运用人际网络将徵才的讯息透露出去。依据经验,透过人际网络所找到的对象,通常会比由人力银行之类的管道来得精准。这些对象可能更符合你的需求,而且比较能确保品质。
测验的效果有限,直接面谈可以发掘更多
挑出适合的可能人选之後,接下来,双方敲定时间後,便可以安排面谈。有些公司针对面谈会安排满长的时间和内容,例如包括一些基本资料的填写、智力测验、心理测验、外语测验(通常是英文),最後才是面谈。
规模小一点的公司,可能就没有这麽复杂的安排。之所以会有像智力测验和心理测验之类的测验,当然是依据人力资源的专业而设计出来的,目的当然是希望可以确保应徵者的智力达到一定水平,而在心理的倾向上也符合你希望徵才的类型。
不过,以我的观点,这两类的测验对软体公司而言,可能不是绝对必要的项目。因为以智力而言,从专业技能来考验应徵者,倘若能够过关,那麽相信应徵者的智力应该不会太低。而心理倾向是一件复杂的议题,从简单的测验中能做出的观察和推断可能也有限,其效果或许还不如从面谈中所发掘出来的应徵者人格特质。
演算法或资料结构等考试,实质意义不大
那麽需不需要专业技能的考试呢?例如请应徵者当场解答一些演算法或资料结构的问题,或者当场请他写下解决你所指定问题的程式码。的确有一些公司会这麽做,但我觉得听起来好像很严谨,但实质意义不大。
原因在於,像演算法或资料结构这样子的测试,比较偏向於在学校的课堂中就会接触到的东西,你应该从他的学历就能够推断他是否具备这方面的能力,即使他忘了,他也应该查了书本或甚至网路上的资讯就能回忆起来,能不能即时在面试前的测验中完成,应该不是太重要的事情。
就在写下此文的同时,我问了坐在我旁边的某英雄级程式人,某个资料结构进行某个操作时的时间复杂度是多少,他张大的嘴巴答说:「我忘了耶…要重新再回忆一下才行」。这位英雄,人既聪明、学生时期的研究也做得好,程式也写得很快,但如果你在面试考题里出了这一题,很有可能就把他给刷掉,而损失掉一名战将。
选人的条件很多,终究要有所取舍
面谈前的测验、面谈本身究竟应该扮演什麽角色,以及从什麽角度切入来和面谈者互动,话说回来,终究还是跟你想寻找什麽样类型的程式设计人员有关。
在此之前,其实我们没有谈到设定用人的对象。但总要决定你要找什麽样子的人,才知道应该如何跟他谈。所以在讨论面谈的过程之前,先让我们来看看你可能会怎麽决定你的目标对象,以便决定该如何进行面谈。
在考虑招揽新的人手进来加入团队时,你必须先设定好目标对象,你可能会考虑到以下几个因子:(1)对特定语言的熟悉程度(2)对特定领域知识的熟悉程度(3)学习新事物的能力(4)独立解决问题的能力(5)沟通协调的能力(6)对软体工程的熟悉程度(7)电脑科学背景知识的熟悉程度(8)对软体开发、程式设计的热情(9)有多聪明。
你可能会同时列下很多重要的因子,但是完美的事物终究是不存在於这个世间的,完美的人才也未必会投履历到你这儿来,所以在不可能满足所有条件的情况下,必须有所取舍。
与其寄望新人什麽都懂,不如着重对方是否具备快速上手的能力
许多用人单位主管,换句话说,也就是开发团队的管理者,会将(1)对特定语言的熟悉程度和(2)对特定领域知识的熟悉程度,摆在最优先考量的位置上。这并不是说不对,而是这两件事情,有时候反而是比较容易解决的。
什麽意思呢?如果你的应徵者满足其余的条件,但是就是不熟悉你们正在开发的专案所用的语言,其实考虑录取他,请他快速学好目前正在使用的语言,或许是一个比较好的选择。
领域知识亦同,例如你们正在开发一个视讯解码的程式码,与其计画找一个对此视讯解码相关知识已经十分熟悉的人,或许找到一个其他方面都够水准,可以很快学会该视讯解码知识的程式人,还会来得比较快。
最近我们找了一位学校刚毕业的新人加入我们的团队,他完全不会Java,也没有Web程式设计的经验,不过我们还是顺利让他在报到的一周内开始上工,开始撰写Java-based的Web应用程式。
我们的目标并不是要找一个十分熟悉Java程式语言的人,而是在一开始便能够快速适应,然後投入开发的人。
这样子的例子说明了,其实并没有必要在语言是否熟悉上,做太多的限制和考量。你只需要考虑,他能不能很快上手。
这也就是上述列出的各种考量因子里会有「学习新事物的能力」这一项的原因。说实话,一个开发团队想要招揽新人手,无论如何,找进来的人,总是会有各种可能不熟悉的事物。
想要找一个一进来就每件事情都懂的新人,应该是非常的困难,所以,「学习新事物的能力」就很重要。与其寄望他一进来就什麽都懂,不如期望他即使不会,也能很快学会。
而且,更重要的是,软体开发本来就是一个多变的行业,即使一个人熟悉你们现在做的东西,或许到了明年,你们要开发的东西不同了,要用到的技术也不同了,甚至是全新的技术时,是否具备「学习新事物的能力」就很重要。
了解电脑科学的基本原理,跟上新的技术不会太困难
对软体开发而言,具备「学习新事物的能力」,代表可以在短时间内了解一项新事物,例如新程式语言、新的开发平台、新的观念、新的技术等等,同时可以很快地掌握到核心精神,并且加以运用在实际的开发中。
我不知道「学习新事物的能力」是否可以系统性地训练,但无庸置疑的,拥有这样子的程式人在你的团队中,是一件很棒的事情。
而「电脑科学背景知识的熟悉程度」代表着他受过基本的、广泛的电脑科学的训练,他对诸如演算法、资料结构、程式语言、作业系统、电脑网路、编译器、资料库之类的学科有一定的了解。
这并不是说他必须仍然牢记课堂上所学的东西,而是他必须对该学科有个大体上观念的认识,例如现代作业系统分时多工的排程,以及多程序、多执行绪并行执行时的同步问题以及解决机制。
这些电脑科学的基础训练除了有助於他在解决问题时,不会做出太偏差的判断(例如,不知道一个臭虫可能源自於竞速条件,所以才会偶尔发生,难以重复复制),同时也有助於他学习新的事物。
因为,电脑科学的理论大体上变动十分缓慢,却是构成各种具体技术的根本,我们可以说即使有新的技术问世,几乎也是万变不离其宗。了解电脑科学的基本原理,要跟上任何新的技术或发展,就不会太困难。这是我之所以认为「电脑科学背景知识的熟悉程度」必须纳入考量的原因之一。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.175.47.74
1F:推 achii:一个博班的学生share如何面试新人 科科 12/14 17:37
2F:推 StubbornLin:学术界跟业界有很大的差别吧 很多教授都不屑写程式... 12/14 17:48
3F:→ hougzou:一楼大概不知道他是谁吧? 科科 12/14 17:49
4F:推 derekQQ:Thinking in Jave中文作者之一 XD? 12/14 17:53
5F:推 crazyfish510:高手...推 12/14 17:57
6F:推 achii:so what ? Thinking in Jave 的中文翻译让我看到吐血 12/14 17:59
7F:→ WhisperGhost:科大老人最喜欢做翻译这种事了 12/14 18:01
8F:推 ledia:书写得好也不一定懂得面试啦, 学习新东西的能力固然重要 12/14 18:28
9F:→ ledia:但是即战力还是很重要的因素, 只要企业出得起, 为什麽不找更 12/14 18:28
10F:→ ledia:好用的呢? 12/14 18:28
11F:→ qrtt1:以弟对 qing 的了解, 他的经验是来自於实务环境的。 12/14 18:30
12F:推 enthos:作者的学长在博班就开了公司,职称:副总.(上次网路泡沫前). 12/14 20:59
13F:推 coronach:文章内容说得很不错啊..面试问那些查得到的东西没啥意义 12/14 22:23
14F:推 Ting1024:酸的人好多。qing很务实OK? 12/14 22:28
15F:推 smallworld:软体人员面试教战守则 BY JOEL 就说过类似的 12/15 00:09
16F:→ smallworld:他只是重讲一次而已 了无新意 12/15 00:10
17F:推 Adonisy:这不是ITHOME的文章吗? 还蛮有道理的啊,不要因为他是秃头 12/15 00:21
18F:→ Adonisy:就酸他好吗? XD 12/15 00:21
19F:→ Adonisy:另外,博班有蛮多早在业界N年了...土博士又不好毕业 12/15 00:22
20F:推 kenzou:登山社社长笑一个博班的学生share如何面试新人 科科 12/15 00:37
21F:推 chihyi1980:在JavaTwo听过他的课~ 推一个~ 12/15 01:01
22F:推 future1234:推楼楼上 12/15 01:08
23F:推 Elly:字太多看不下去,能不能直接告诉我要考什麽就好了 12/15 21:49
24F:推 mingtai1:中肯. 有CS sense很重要. 12/15 23:02
25F:推 MikiChen0819:1F不懂装懂... 12/16 00:47
26F:推 twk:大部份同意, 对一个礼拜上工的例子不太认同. 跟 Joel 说法很 12/16 20:05
27F:→ twk:接近的文章. 12/16 20:05
28F:→ bbser:怎麽他还在念博士班啊... 12/16 22:37
29F:推 smi1e:胡说八道 = = 明明每家都在考 algo.. 12/17 15:31