这里要说的并不是测试题,而是近日偶然在网上看到几位国外的专家分别写的 3 篇文章,从开发者的想法和思路来衡量动用 HTML、CSS 和 JavaScript 水平。
http://www.456bereastreet.com/archive/200605/levels_of_html_knowledge/
HTML 的水平
http://friendlybit.com/css/levels-of-css-knowledge/
CSS 的水平
http://dean.edwards.name/weblog/2006/06/levels/
JavaScript 的水平
Dean Edwards 我比较熟悉,JavaScript 方面的大师。前面两位应该也是 HTML 和 CSS 方面的能人了。
HTML 水平的六个等级
这是 Emil Stenström(@456bereastreet)在 2006 年提出的一个衡量 HTML 知识水平的有趣分类,他将 HTML 开发者的水平分为六个等级:
HTML Level 0 - 完全不了解
这些人除了意外之外从未见过 HTML,比如在文本模式下意外打开 HTML 邮件。这些人不在网页行业工作,也永远不会,所以他们没有超越 0 级的愿望或理由。
典型话语:
Age-tee-em-what?(HTML 是什么?)
HTML Level 1 - 只会使用所见即所得编辑器
这些人对网络有足够的了解,知道他们使用的网站背后有一些计算机编程魔法在进行。当试图在 Web 上发布任何内容时,没有某种所见即所得编辑器他们会感到无助。可能是 Photoshop、Dreamweaver、Frontpage,或者是他们被告知要使用的 CMS 内置的编辑器。
典型话语:
HTML?就是那些用来让文本加粗或斜体的标签。
HTML Level 2 - 了解基础标签
这个级别的人对 HTML 有足够的了解,只要坚持他们认识的少数标签(在这个级别上一切都被称为标签),就能够找到 HTML 文档的路径。但他们真的不想碰 HTML。
典型话语:
我在 IDE 中拖放的控件在 Internet Explorer 中运行正常,所以我为什么要看 HTML?
HTML Level 3 - 传统网页开发者
很多从 90 年代末就在这个行业的老派网页开发者都在这个级别。直到上世纪末,这些人都是手工编写 HTML 的,所以他们非常了解嵌套表格和间隔 GIF。从那时起,GoLive 和 Dreamweaver 等所见即所得编辑器已经改进到 3 级人员认为没有理由学习更多 HTML 的程度。
典型话语:
是的,我听说过那些花哨的新 ul 和 h1 标签,但我用我可靠的旧 table、img 和 br 标签做得很好。
HTML Level 4 - 开始使用文档类型
这个级别是人们开始有意使用文档类型的地方。第一步几乎总是一个过渡文档类型,通常是 XHTML 1.0 Transitional。XHTML 比 HTML 更新,所以它一定更好,对吧?
典型话语:
我如何用 div 和 span 而不是表格来创建数据表?
HTML Level 5 - 标准意识的专业人员
大多数标准意识的网页专业人员都可以在这里找到。这些人倾向于首先考虑结构和语义,然后再考虑表示。在这个级别通常使用严格的文档类型来鼓励语义和表示性标记的分离。
典型话语:
嗯,我想知道哪种类型的列表是标记本文档这部分的最语义化的方法。
HTML Level 6 - 行业思想家
这些人是行业的思想家。他们花费大量时间思考未来什么会有用,而不是现在。他们的工作成果可能在未来至少五年内对普通网页专业人员都没有实际用处。
典型话语:
我认为 HTML 4.01 和 XHTML 2 规范在语义上过于有限,所以我正在开发一种新的标记语言。
CSS 水平的六个等级
这是 Emil Stenström 在另一篇文章中对 CSS 知识水平的分类:
Level 0 - 完全不了解
"CSS?那不是一款多人游戏吗?"
这些人可能从未制作过网页。如果他们做了,也是纯 HTML,他们几乎不知道自己在做什么。
Level 1 - 只知道基本用法
"是的,我有时用它来删除链接上的下划线"
与 0 级不同,这个级别的人确实了解基本的 HTML。他们可能至少五年前就学会了,并制作了几个简单的网站。他们很少使用 CSS,只有在需要做一些仅用 HTML 无法完成的简单事情时才使用,比如删除下划线和设置行高。
Level 2 - 坚持使用表格布局
"不,我不喜欢 div;表格更容易使用"
这些人不只是像 1 级人员那样玩 HTML,而是继续他们的探索。他们掌握了 HTML 表格并开始使用它来让事物看起来像他们想要的那样。在某种程度上达到 HTML 精通后,他们停止寻找新的工作方式。他们听说其他人使用"div 来设计他们的页面",甚至花了一些时间尝试学习其中的奥秘。
Level 3 - 知道但有阻碍
"是的,我听说过这很好,但是我不能使用它因为..."
虽然这个群体的人仍然不使用 CSS 进行定位,但他们确实知道一些 CSS,也许还听说了一些好东西。他们尝试制作简单的布局,有些人甚至喜欢使用 CSS 的感觉。但这里的问题是有什么阻止了他们。
Level 4 - 使用 div 布局
"CSS?哦!是的,我用 div 做所有的布局"
4 级人员制作的网站相当糟糕。不过,由于他们通常对新想法持开放态度,所以损害减少了。毕竟,不久前他们设法学会并开始使用 CSS。
Level 5 - 理解并应用标准
"我使用 CSS 进行设计,因为它比表格更好因为..."
经过大量阅读、与人交谈和思考,大多数人达到了 5 级。在这里,你既可以使用 CSS,也知道为什么它更好。这个级别的一些人可能在他们制作的网站上有一些小问题,但都不严重。
Level 6 - 专家级
"什么版本的 CSS?是的,我知道。你读过我关于..."
有些人只知道如何和为什么是不够的。这些人努力改进 CSS 的使用方式,并发布关于新使用方法的优秀文章。他们不断回到 CSS 满足的基本需求,并从新角度攻击问题,通常会产生更多优秀的文章。
JavaScript 水平的评估
虽然无法找到 Dean Edwards 关于 JavaScript 水平的具体文章,但作为 JavaScript 方面的大师,他的观点无疑具有很高的参考价值。结合前两篇文章的分级思路,我们可以将 JavaScript 水平大致分为:
Level 0-1 - 完全不了解或仅了解基本概念
从未接触过 JavaScript 或只知道它是网页上的一种"动态效果"。
Level 2-3 - 能够使用基本交互效果
了解一些基本的 JavaScript 用法,能实现简单的交互效果,如表单验证、简单的动画等。
Level 4-5 - 熟练使用并理解原理
能够熟练使用 JavaScript 创建复杂的交互效果,理解事件处理、DOM 操作等核心概念,并能编写可维护的代码。
Level 6 - 专家级开发者
深入理解 JavaScript 语言特性,能够开发复杂的框架和库,对语言本身有深入的研究和贡献。
总结
正如这些文章所指出的,技术水平的提升不仅仅是掌握更多的语法和功能,更重要的是对技术本质的理解和正确的使用理念。无论你在哪个级别,关键是保持学习的态度,不断提升自己的技术水平。