•
能力。一个人的能力并不会因为知道东西少而不行,也不会因为没有经验而没有能力。一个
人的能力是他做事情的一种态度,性格,想法,思路,行为,方法和风格。只要有热情,
有想法,有好的行为方法,以及好的行事风格,那么知识和经验对他来说只是一个时间
问题
。 比如:学习能力,专研精神,分析能力,沟通能力,组织能力,问题调查能力,合作能
力等等。所以,对于一个新手来说,也许他的知识和经验有限,但并不代表他 能力上有问题,
但是对于一个老手来说,如果其存在知识和经验欠缺的问题,那么通常都是其能力的问题。你可
能暂时怀才不遇,但我不相信你会长期怀才不遇。如 果是的话,那么你必然些问题其让你的能
“
”
“
”
力发挥不出来。而此时, 没有经历过 只会是你 没有能力 的一个借口。
我不否认这四样东西对于一个优秀的程序员来说都很重要。但是,通过上述的分析,我们可以知道,能
力和经验和知识需要分开对待。当然,这些东西是相辅相成的,你的能力可以让你获得知识,你的知识
可以让你更有经验,你的经验又会改变你的想法和思路,从而改善你的能力。在面试中,我们需要清
楚的认识到,应聘者的操作技能,知识和经验只是其能力的必要条件,并不是充要条件,而我
们更应该关注于应聘者的能力。
•
如果面试只是考查这个人的操作技能的话,那么这个面试完全失败。这是一个没有资格的面试
官。
•
如果面试只是在考查这个人的知识和经验的话,那么成功了一半。因为你了解了基础知和做过
的事,但这并不代表你完全了解他的真正能力。
•
如果你能够在了解这个人的知识和经验的过程中重点关注其能力(态度、性格、想法,思路,
行为,方法和风格),并能正确地评估这个人的能力,那么你的面试算是非常成功的。
也许用这四个词来描述定套东西并不太合适,但我相信你明白我想表达的。
不要肤浅地认识算法题和智力题
很多公司都会在面试的时候给一些算法题或是一些智力题或是一些设计题,我相信算法题或是智力题是
程序员们在面试过程中最反感的事了。很多人都很 BS 面试官问的算法题,因为他们认为面试官问的这
些算法题或智力题在实际工作当中用不到。但我想在这里说,问难的算法智力题并没有错,错的很
多面试官只是在肤浅甚至错误地理解着面试中的难题的目的。他们认为,能做出算法题和智力题
的人就是聪明的人就是有能力的人,这种想法实在是相当的肤浅。
其实,能解难题并不意味着这个人就有能力就能在工作中解决问题,你可以想想,小学奥数题可能比这
些题更难,但并不意味着那些奥数能手就有实际工作能力。你可 以想一想你们班考试得高分的同学并
不一定就是聪明的人,也不一定就是有能力的人,相反,这样的人往往者是在应试教育下培养出来的书
呆子。
所以,我认为解难题的过程更重要,你要主要是通过解题查看这个应聘者的思路,方法,运用到的知识,
有没有一些经验,和你一起交互时和沟通得是否顺畅,等等,这些才是你重点要去观察的。当然,最终
是要找到答案的。
我想,让面试者解决一个难题的真正思路是:
•
看看他对知识的应用和理解。比如,他是否会用一些基础的数据结构和算法来解决算法题?
•
看看他的整个解题思路和想法
。答案是次要的,他的想法和行为才是重要的。