程序员面试问题的愚蠢回答
程序员面试问题的愚蠢回答
案例一
问:请问,你对测试这项工作是如何理解的?比如说,你觉得这是一个创造性居多的工作,还是重复性居多的工作?答:我之前的一份工作是美工,我觉得测试跟美工应该差不多吧?我挺喜欢美工这种工作的,因为会需要很多的思考。我觉得测试也是一样的,要想很多不合理的地方,而且每次面对的产品,需要想完全不一样的问题。问:你是如何规划你的职业生涯的?或者说,你为什么打算转行做测试,或者说美工这个工作对你来说存在什么问题?答:其实因为我哥是做测试的,他说做测试挺好的,他建议我转行做这个。点评:这是一个相当失败的回答,因为不仅仅表明你对未来完全没有规划,而只是听从他人的随意指点,而且还表明你对你所投职位的工作、指责、性质等统统不了解。面试官,也就是你的未来上司,绝对不会找这样的人当手下,因为搞不好会三天两头表达不适应,甚至没过几天就会辞职。(很奇怪吧,我居然经历这样的面试,这其实也是一种招聘方的失败案例,后面会详解。)当然啦,一般能回答道这种地步的还只是个别经验极不足者。不过大家不要偷笑,犯这类错误的人还不在少数,只不过是程度的问题而已。这类回答的错误在于,对你所投职位的了解不足,或者是没有基本的职业规划,以至于没有一个明确的自我升级改造的规划。比如我还遇到过有创业经历的人,后来做了一段时间销售,来我们这里面试做程序员。当我问到职业规划的问题时,他说未来准备走team leader -> 架构师 -> cto。这个时候我还觉得有点意思,结果他话锋一转,就更有意思了。他说,最后再回去管理我们家的工厂(其父母是开厂的)。这一个回答也挺让我无语的,当然也是一个极端案例。那么我们往不那么极端的方面说,你应该提前想好:我要专研哪一个方向?数据库?桌面应用?工作流?网络通讯开发?网站系统?我以后要做一个技术专家呢,还是管理专家,还是架构专家,还是……?你的思路越清晰,面试官愿意招你的可能性就越大。挽救:其实这个问题需要你在投简历之前就要准备好。很多高考考生填专业之前,也没有想过这些问题,选的什么专业是父母代劳的。就比如我们公司里面有人学的化学材料工程,结果毕业后做ue设计。她就说专业都是父母选的,等开始学了才觉得很不喜欢。如果因为这种蠢问题你被刷下来了,你应该感到幸福,因为那个未来对你来说,也许是很可怕的。简而言之,先想好了要做什么,然后再讨论找什么工作的事情。案例二问:既然你说之前的这个项目当中的权限系统是你负责开发的,那你能否讲一下,你的权限系统的机制是怎么样的?答:哦,是这样的,我们有一个页面,是给管理员分配角色的,然后有另一个页面是给角色分配权限的,然后这个用户就有权限了。用户要首先在首页上面点击一个链接进行注册,然后访问那个页面就会根据权限来输出。……(讲了很久如何使用该网站,涉及技术实现的几乎很少。)问:不好意思,我打断一下,你可能误会我的意思了。我想问的是,你的技术是如何实现的。比如说,某个用户是普通用户还是管理员这是如何识别的?答:是这样的,这个需要管理员在一个页面中指定这个用户的角色,如果分配了管理员角色,那就是管理员,否则就是普通用户……(后面来往若干个回合,还是没有明白问的是什么。)点评:这也是一个很悲剧的回答。该回答的错误在于,沟通失败。虽然说沟通失败一般是双方都有责任的,但是你不可能要求面试官如何如何吧?所以,你只能要求自己在这方面做得更足一些。其实该案例主要问题在应聘者身上,因为很显然,面试官所关心的肯定是你的技术实现,而不是这个产品是如何使用的。挽救:面试的时候也许你会紧张,这是正常的。但是你需要不停地提醒自己,集中精力听清楚面试官的问题是什么。如果你发现你不能确定面试官的问题是什么,宁愿先反问确定问题的用意,然后再作回答。当然了,最高境界是我一问,你就知道我想要什么。但如果做不到,也不要发生风牛马不相及的情况。案例三问:(某个技术问题)答:(等待了10秒钟)是这样的(开始解答技术问题)点评:这个相对前面那两个案例来说,没有那么悲剧,不过也足以导致被刷。这种回答情景给人感觉不好的原因在于,你让人觉得你总是慢半拍。挽救:如果你是需要很多时间思考的话呢(或者说是超慢性子),最好先说一句“这个问题有点复杂,我需要稍微思考一下”之类的,这比尴尬的等半天总强很多。我还遇到另外一个人,在快面试完毕的时候说“抱歉,昨天晚上通宵工作,所以反应有点慢”。这也是一个较好的做法,假如你真的是加班了。当然,如果能在面试刚开始的时候就说出来会更好,因为第一印象还是很难改变的。案例四问:能否说一下泛型的作用是什么?答:泛型就是一个不同类型的数组,然后又增删改的功能,还可以直接foreach。问:那arraylist和泛型的list