怎样去面试JavaScript开发者

JS 开发最容易,也最难
服务器君一共花费了210.560 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

面试 Javascript 工程师难吗?Javascript 工程师的水平参差不齐,如何评定他们技术水平的高低?如何确定 Javascript 工程师适合承担哪方面的任务?我在腾讯时的面试经验是,通过不同纬度的结构化问题、由浅入深的进行考查。

基础

冒泡与捕获:它们的定义,它们的区别,如何阻止冒泡?基础知识,经典题目。但是不是每个人都能完整全面的回答出这个问题,面试者需要对 DOM tree 有自己的理解。

闭包:闭包是一个很好的面试题目,能够很好的考查出不同水平的面试者。了解什么是闭包、如何使用闭包、闭包的原理、闭包的真正原理,只有对 JS 的作用域链、垃圾回收机制有深入了解的工程师才能正确无误的完整回答这个问题。

工具库

jQuery:考查编程习惯和经验。jQuery 作为现在使用最为广泛而且最简单的 JS 库,能够很好的测出使用者的开发经验和 JS 水平。一个有着真正开发经验的工程师,应当能正确的写出各种类型的选择器,回答为什么用 bind 来进行事件绑定、mouseover 和 mouseenter 的区别。如果这些考不倒他,别急,live 方法的实现原理、ready 方法的实现机制这两个问题足以考查出他对 DOM、浏览器差异的认识。

extJS、YUI、Prototype:这些工具库或框架都有各自的特点,可以采用像上面类似的问题从浅入深进行了解。

实际问题

解决实际问题考查的是你把知识融会贯通的能力、解决问题的能力、理解能力以及学习能力,这对综合素质的考查是一种很好的方式。第一次面对一个问题,面试者是否能迅速给出思路、由过程推导出结果,能否在一些提示下一步步得到最终的完整答案,这都是很好的考察点。

Autopager:自动翻页功能是一个由浅入深考查面试者能力的好例子。对滚动条事件的了解,pageHeight、windowHeight、scrollY 的区别和关系是两个关键点,而最后对于事件的 clearTimeout 优雅处理是隐藏的考查点。

Lazyloader:许多人见过图片延迟加载的产品,但是他们是否有了解过背后的实现原理?从功能抽象到具体实现,onresize 的考虑、延迟触发的考虑,这道题目有一定难度,和上面的例子也有一定相似之处。

经过了前三个方面的了解,你应该已经对这个面试者的基本水平有了一个大致的判断。下面的步骤可以让你了解这个人能够承担什么样的工作,他的发展潜力多大。

项目

通过之前的项目经历可以认识他的 Team work 能力、解决问题的能力,在项目中的角色和承担的责任也可以反衬他的个人能力。

如果他没有做过跨浏览器开发,那么这种需要长期积累的任务就不适合分派给他来解决;如果他曾经有浏览器插件的开发经历,那么浏览器 App 的工作也许能够利用他的现有经验;如果他用过 jQuery Mobile、sencha touch 或者 XUI,那么他可能适合开发移动 Web App。作为管理者高明的地方在于,把合适的人用在合适的地方。

技术视野

具有技术视野的人一般具有很大的发展潜力,他们未来不会仅仅只是一个普通的工程师,而有可能会成长为技术专家或者技术管理者。

在 HTML5 方面应当对新的语义标签、Canvas、Webworker、Drag & Drop 有所经验或者了解;在 CSS3 方面,应当或多或少尝试过 Radius、Gradient、Transform。当然,如果能够了解 Mask,甚至能够知道 Flexible Box 的使用方法和原理,那么这个人对盒子模型的理解和对新知识的学习能力可以得到很好的体现。

JS 开发工程师是最容易的职位,也是最难的职位。新的技术和框架层出不穷、浏览器版本日新月异、越来越多 API 的出现,好的 JS 开发工程师需要随时学习和更新许多知识,包括后台(Webworker、Websocket、Node.js)、UI(Canvas、Transparent)、动画(Transform、Transition、Animation)等方面。面试者是否有自我更新意识,他的技术视野多高决定了他能够涵盖的范围多大,他的未来发展潜力多大。

HTML5已经战胜移动 Flash,前途无量

如果能够把以上所有问题清楚、顺利的回答完整,我相信他的表达能力、沟通能力应该是相当优秀的,同时值得欣喜的是,我们又找到了一位优秀的同伴。

本文地址:http://www.nowamagic.net/librarys/veda/detail/418,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/418

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《代码大全(第2版)》 史蒂夫•迈克康奈尔 (Steve McConnell) (作者), 金戈 (译者)

代码大全(第2版)是著名IT畅销书作者、《IEEE Software》杂志前主编、具有20年编程与项目管理经验的Steve McConnell十余年前的经典著作的全新演绎:第2版做了全面的更新,增加了很多与时俱进的内容,包括对新语言、新的开发过程与方法论的讨论等等。这是一本百科全书式的软件构建手册,涵盖了软件构建活动的方方面面,尤其强调提高软件质量的种种实践方法。

更多计算机宝库...