本文转自http://lifesinger.org/blog/2010/09/what-is-important/,标题是我自己拟的。个人觉得文中的观点蛮对路。
HTML5 很火,忍不住也阅读了一遍 HTML5 spec, 发现除了对记忆力是个考验之外,增加的内容很少:
首先是 markup, 增加了 header, footer, section, nav 等元素,本质上和 div + class 无啥区别,考验的是记忆力和小学语文的功底。
其次增加了一堆 new APIs: Canvas/Web Storage/Drag-and-drop/Web SQL Database/Geolocation/Web Socket/Server-Sent Event 等等,这些内容的使用并无什么技术难点,翻翻规范手册,都是半天就能“精通”的。
追寻这些新技术,很容易让人有种走在技术前沿很牛逼的虚荣感。但实际上,会用 header/footer, 并不代表你就懂得了语义。就如多学了几个成语,并不意味着你的作文水平就有提高。
Geolocation 等 API, 也是如此。淘宝 UED 有几位设计达人,用的是 Photoshop 7.0. 倒是我这种半桶水,会紧跟潮流,装个英文原版的 CS4. 比喻不是很贴切,但从技能的深度上讲,有去学 Web SQL Database 的精力,不如去温习遍数据库基础教程。玩 Canvas 前,不如先去学学计算机图形学。否则永远是蜻蜓点水,以为走在前沿,其实只是凑个热闹,迟早成为舞台下的观众。
关注是可以的。有时间(我觉得大部分人其实都没时间),去尝尝鲜也是有益的。但是对于大部分营养不良的前端,推荐还是脚踏实地老老实实的去学一门传统编程语言,去把数据结构/基础算法/设计模式/数据库等等基础知识点给搞瓷实了再说。这样,等 HTML9 出来的时候,对你而言,无非就是淘汰了一些旧 API, 增加了一些新 API 而已。
对于武林高手,内功最重要。招式套路,只能街头赚个掌声。
对于程序员,真正的核心竞争力是基本功。
永远不要舍本逐末,否则你学的新东西越多,被淘汰的可能性反而越大。