最近这一年,公司的HR和部门经理很少再找我做技术面试了。原因据说是根据统计,我做的技术面试通过率特别低。这个我倒是承认,但是事实上市场上优秀程序员的比率本来就很低。相对来说,我的面试通过率已经是偏高了。当然对这个问题,不同的人见仁见智。你让我把关,我就尽心尽责无愧于人。至于标准是否严苛则尽可商榷。刚好微博上Ben又在谈面试的事情,所以动了一下心思,把技术面试里常问到的一些问题列罗出来供批判。
这个面试一般都是针对资深的Web开发职位,应聘者一般会满足以下条件之一:
应聘者声称有5年或者以上的开发经验
或者,应聘者要求的月薪在12k以上(成都税前)
数据库
有一个很简单的应用场景:某大学的学生选课系统。不考虑选修必修,每个学生可选多门课程,每门课程又有可能有多名老师提供授课。学生在选择课程的同时必须在该课程可选授课老师之中指定一位。请设计一个关系型数据库结构,无需细到字段数据类型,仅关键字段和表关系即可。注意某教师是有可能在同一学期教授多门课程的。
面试时我会提供纸笔供应聘者使用,这里完全不苛求应聘者的ER图可以完全符合规范,仅仅简单的表对应关系即可。但是有一半以上的应聘者没有办法在指定时间内画出能够满足需求的ER模型。即使以提问的方式给予提示也不行。
如果能够做出正确的数据模型,那么一般我会有两个方向。对偏业务类型的开发职位,我会对这个场景进行衍生,比如需要考虑选修必修的情况,需要满足学分要求的情况,以及每门课程存在可用名额的情况。要求应聘者针对这些情况对数据模型予以扩展。
如果是偏infrastructure的开发职位,会简单提供一些报表场景,比如如何从现有模型中取出最受欢迎的教师的排名等等。针对这些场景要求应聘者写出对应的SQL语句,这个里面可以看出很多问题,经受过严谨关系型数据库操作训练的应聘者的基本素质可以体现的很好。同时针对某些场景,要求应聘者设计索引或者提供冗余优化方案。对索引的工作方式有一些基本概念,比如我曾经问一个应聘者:“如果如你所说索引这么好,那为什么我们不在所有字段上建立索引?” 这问题他思索良久最后告诉我从来没想过。另外前不久还问过另外一个应聘者:“对于写操作,非主键索引是不是一定会影响写入速度?” 这些问题不一定要能完全答对,但是要让我能看出你有良好的数据库基础知识来支撑你的“5年工作经验”和“精通各类关系型数据库”。不知是否过于苛责,大家可以拍砖。
Web开发
HTML基础总要有点吧?HTTP协议总要懂点吧?至少能给出几种HTTP Response状态码,了解Post和Get的区别,明白HTTP下状态保持是怎么实现的。Cookie和Session的基本工作原理。不是纯粹前端开发工作的话,基本的js总要可以懂一点吧。做JSF或者Asp.Net WebForm的程序员,多少总应该了解一下viewstate怎么实现的。
这里面的知识点很多,所以问的问题也都不怎么固定。一般是应聘者谈到自己熟悉哪些东西,那么就引申进去多谈一谈。某些问题没有回答好或者细节有瑕疵都不重要,重要的是要能给人信心这是一个对技术有热情,琢磨过问题的技术人员。比如最简单的一个例子,很多web程序员难以回答好这个问题:“一些网站或者论坛的登录框下面都有‘记住我’这样的一个checkbox以保证用户下次访问时无须重新登录,请问这是如何实现的?” 能够比较完美回答好怎么实现这个功能的应聘者数量并不多。最起码不要告诉我把用户名和密码放在cookie里吧?
编程语言与框架
公司的技术路线根据产品不同有很多选择,不过比较多的还是javaEE和.net。这两个方向我都有过一些开发经验,有时可能会针对一些语言特性问一下,但是多数情况下都不会在语言问题上纠缠。
谈到框架,现在Java开发者的简历上,要是谁没写个“精通SSH”简直都不好意思跟人打招呼。所以基本上我会希望应聘者给我介绍一下SSH这仨框架都是做什么的。能用几句话给一个没接触过这些框架的程序员介绍清楚它们是干什么用的,那我觉得基本上就比较靠谱了。再牛一点的,能解释清楚为啥要做IOC,给一个除了IOC,别的解都很丑陋的使用场景;或者能讲讲Spring AOP的两种实现原理,那我就觉得可能这15w年薪大概能找着主了。
当然,一定要写过单元测试。
流程与工具
这个是权重最低的一项了,因为大部分东西都是可以被train的。有过持续集成经验,知道怎么使用svn(能给我普及一下git就更好了),有代码审核经验,能偶尔做做结对儿,对日志监控性能多少有点谱,这要求不高,但是也不低。实在没有,也不影响最终结果。
安全
除了给我自己或者应用安全团队招人,我很少问任何跟安全相关的技术问题。因为我对这个不抱太大期望。如果偶尔遇到一个做过溢出逆向注入XSS……的技术人员,我会马上上21楼把我们的security manager搞下来一起聊,最后把这人从其他团队挖出来。可遇不可求。
味道
整个技术面试,我愿意把它变成一场讨论或者交流,不像HR或者用人经理面试那么严肃。但是味道和感觉这个东西也不可少。一场面试下来,如果应聘者对你提到的任何一个技术问题都没有表现出浓厚的兴趣;如果一个技术人员在8小时以外没有任何对自身技术的时间和物质投资,那么这个人基本上就属于味道不太对。
分享到:
相关推荐
根据给定文件的信息,我们可以提炼出一系列关于IT人生规划与个人成长的知识点,这些知识点不仅适用于IT行业,也广泛适用于所有寻求职业和个人发展的领域。以下是对文件标题、描述及部分内容中提到的关键点进行的深入...
《规划你的IT人生》这篇文章由IT行业资深专家张传波撰写,旨在为IT从业者或有意向进入IT领域的人士提供职业规划的指导和建议。文章深入探讨了IT行业的多个方面,包括个人动机、行业认知、职业技能和个人素质的重要性...
### IT人生的职业规划 在IT行业的快速发展背景下,个人职业规划显得尤为重要。无论是刚加入IT行业的新人还是想要转型进入这一领域的求职者,都需要对自己的职业生涯有一个明确的规划与目标设定。本文将从IT行业的...
IT人生和职业生涯规划
It人生(关于程序员发展道理的文章), 有多章都是从程序员上摘取的
孙振耀先生作为HP大中华区的前总裁,其撰写的关于退休与人生的感悟,为我们提供了一个IT行业高层人士的独到视角,特别是对于年轻人在职业道路上的规划与思考。孙先生在文章中提出了关于职业生涯发展的多个层面的深刻...
在IT行业中,年龄是一个敏感的话题,很多人认为35岁是一个IT人生的分水岭,到了这个年龄,IT人就到了转型的时刻。但是,这种观点是否正确呢? 从调查结果来看,62.89%的IT人认为35岁是他们的出路问题的关键时刻,有...
"ITguihua.rar_it" 这个压缩包文件包含了一份名为 "规划你的IT人生.pdf" 的文档,它很可能是对如何在信息技术领域制定个人职业规划的详细指南。下面我们将深入探讨这个主题,分享一些关于规划IT生涯的关键知识点。 ...
标题和描述虽然没有直接涉及IT行业的具体知识点,但它们提供了一个关于个人生活和人生目标的哲学视角...在追求技术成就的过程中,保持对生活的热爱,平衡工作与生活,以及持续学习和分享,是构建一个丰盛IT人生的基石。
欢迎您下载德仔工作室Web技术电子期刊,本刊每月一期,内容包括Web技术、IT人生两大版块,其中Web技术包含网站规划 、经验技巧 、图形动画 、后台设计 、Net专区 、数据库 、Web前瞻 等栏目内容,IT生活包含人在江湖 ...
2007.4 第三期总第十六期欢迎您下载德仔工作室Web技术电子期刊,本刊每月一期,内容包括Web技术、IT人生两大版块,其中Web技术包含网站规划 、经验技巧 、图形动画 、后台设计 、Net专区 、数据库 、Web前瞻 等栏目...
《德仔工作室Web技术电子期刊第七期》是德仔工作室推出的第七版专业Web技术资源,主要涵盖Web开发和IT人生的两个重要领域。这份期刊旨在为Web开发者和IT专业人士提供最新的技术资讯、实战经验和深度解析,帮助他们...
欢迎您下载德仔工作室Web技术电子期刊,本刊每月一期,内容包括Web技术、IT人生两大版块,其中Web技术包含网站规划 、经验技巧 、图形动画 、后台设计 、Net专区 、数据库 、Web前瞻 等栏目内容,IT生活包含人在江湖 ...
欢迎您下载德仔工作室Web技术电子期刊,本刊每月一期,内容包括Web技术、IT人生两大版块,其中Web技术包含网站规划 、经验技巧 、图形动画 、后台设计 、Net专区 、数据库 、Web前瞻 等栏目内容,IT生活包含人在江湖 ...
欢迎您下载德仔工作室Web技术电子期刊,本刊每月一期,内容包括Web技术、IT人生两大版块,其中Web技术包含网站规划 、经验技巧 、图形动画 、后台设计 、Net专区 、数据库 、Web前瞻 等栏目内容,IT生活包含人在江湖 ...
欢迎您下载德仔工作室Web技术电子期刊,本刊每月一期,内容包括Web技术、IT人生两大版块,其中Web技术包含网站规划 、经验技巧 、图形动画 、后台设计 、Net专区 、数据库 、Web前瞻 等栏目内容,IT生活包含人在江湖 ...
Web技术、IT人生两大版块,其中Web技术包含网站规划 、经验技巧 、图形动画 、后台设计 、Net专区 、数据库 、Web前瞻 等栏目内容,IT生活包含人在江湖 、说三道四 、俊男靓女、英语学习 、做人之道 、健康生活 、...
Web技术、IT人生两大版块,其中Web技术包含网站规划 、经验技巧 、图形动画 、后台设计 、Net专区 、数据库 、Web前瞻 等栏目内容,IT生活包含人在江湖 、说三道四 、俊男靓女、英语学习 、做人之道 、健康生活 、...
欢迎您下载德仔工作室Web技术电子期刊,本刊每月一期,内容包括Web技术、IT人生两大版块,其中Web技术包含网站规划 、经验技巧 、图形动画 、后台设计 、Net专区 、数据库 、Web前瞻 等栏目内容,IT生活包含人在江湖 ...