面试笔记 1

来源:互联网 发布:mac终端password 编辑:程序博客网 时间:2024/04/27 19:50
12.12.2012 J.D.

今天的面试一塌糊涂,一些很简单平常绝对不会错的问题错了好几次,比如set和map的区别,在map里加入两个相同的key会怎么样,等等。。。还有1,2个问题没想到答案,但是如果给我10分钟肯定能在网络上找到答案。
面试的人说了好几次,答错了也没关系,也不是很重要的问题。既然不重要,那何必问呢?通过这些题目他有能得到什么信息,考验了我的什么能力呢? 

这是我近几个月里第3次面试。第1次在9月份,是我人生中第一次真正的面试。形式和这次差不多,都是口头回答问题,总体感觉比这次好。有一些技术的问题,关于线程的,但是更多的是考验解决问题的思路。尽管我的答案和面试官想象的不一样,但是我能够清晰的分析问题,表达解决问题的思路。可惜因为没有经验,准备的太差。一些经典的,经常会问的题目,没准备。回答问题的时候说太多了,有时候把对话带到自己不熟悉的方向,说多错多。还有一个很大的问题,我尽然和面试官争论一些很难分对错,更多的是个人口味,习惯的问题。比如如何分析性能,如何优化程序。最后结果当然是被拒绝。

2个星期前在一个小公司面试了2次。1面的时候,除了介绍自己,更多的是谈论一些理念的东西:scrum,tdd,pair programming,团队的合作/冲突,读过的书,等等。感觉很舒服,他们的技术面试官尽然是女的。太稀有了。:-)  2面是机试,4个小时,面试官准备了很多题目。
每个题目有一个明确的目的,考验一种技能:
- 考验编程能力的。unit tests 已经准备好了,写好代码,让所有的tests变绿。
- 考验看别人的垃圾代码,分析代码在做什么,然后re-factoring。 真实世界里经常发生的事情。
- 考验调试的能力。所有代码,测试已经写好了。单独的测试ok,但是集成测试失败。调试,并修正bug。
- 同样考验调试的能力,但是是关于线程的。整个模型有点复杂,又20个class左右,使用的一大堆技术:interface, abstract, extension, runnable, threadExecutor..... 有一个测试失败,但是失败的时间的不定的,有时候早点,有时候晚点。 
- 考验问题分析,建模的能力。把面试模型化,分析。
做每个题目的时候还顺便考验了估算时间的能力。 这次面试让我的能力充分发挥了,公司对我很满意,很快就要求谈合同。

怎么样才是一次好的面试呢?或者说怎么样才能找到好的人才?公司想要的是开发人员。最重要的就是开发的能力(编程,调试,分析)。口试绝对不能考验开发能力。个人觉得我的开发能力挺不错的,但是表达能力不好。口试的时候特别吃亏。相信我应该不是少数。而很多很喜欢吹牛的人,能说,但是开发能力不怎么样。估计口试召到这种人的几率挺大的。 
这里有一篇非常好的关于面试,招人的文章。简单概括就是:面试要考核开发人员的内功和外功。内功简单的说就是一些理念的东西,最好的考验方法就是书籍。询问对方看过什么书,然后问书上的内容。有点像学校考试。据说bill gate招人的时候只有一个条件:看完TAOCP。外功就是写代码,调试的能力。最好的方法就是github或者类似的公开的代码,只需要简单的看看checkin history就能知道这个人行不行。对没有参与open source project的人,机试是最好的方法。

原创粉丝点击