软技能:用户体验。用户体验是Web产品吸引用户的第一道菜,也是前端工程师工作产出的重点。
扩展技能:Node.js。并非特指Node.js本身,而是Node.js所代表的Web服务器端知识。即使你不是一个“大前端”,了解Web产品的运行原理也是一个前端工程师必备的素养。
硬技能——HTML/CSS/JavaScript

这3项俗称“前端工程师的三把刷子”,是前端工程师必须掌握的核心技能。其实将HTML/CSS与JavaScript放在一起讨论并不合适,HTML和CSS作为标记类语言,只有在浏览器环境或者类浏览器环境下才会被识别解析,所以可以认为这两者是DSL(Domain SpecificLanguage,领域特定语言)。另一方面,JavaScript与HTML/CSS的性质不同,虽然不如C++、Java等高级语言那样严谨,但其本质上是一门编程语言。同其他编程语言一样,对于JavaScript,掌握其语法和特性是最基本的。但上面这些只是应用能力,最终考量的仍然是计算机体系的理论知识。所以,数据结构、算法、软件工程等基础知识对于前端工程师同样重要,这些知识能够决定一个前端工程师的上限。
HTML/CSS/JavaScript这三者只是统称,代表着前端工程师能力的3个方面。三者相互耦合,并非独立。比如CSS必须与HTML配合、JavaScript逻辑须借助HTML和CSS直观地展示给用户。任何一项都是一个庞大的技能树,可以细分出很多子技能。对于HTML,要掌握各个标签的合理使用和基本的WebAPI。对于CSS,要在理解各属性的工作模式的前提下能够综合使用,给出合理的解决方案;并且由于浏览器的差异,还必须掌握必要的hack方案。虽然这些hack 方案最终都会被历史的尘埃掩埋,但目前(2017年)我们仍然无法避免兼容性问题。对于JavaScript,与其他任何一门编程语言一样,除要求掌握基本的语法,有基本的应用编程能力以外,还必须具备良好的抽象能力以及架构能力。
软技能——用户体验
除了以上提到的“硬技能”外,前端工程师还必须掌握一项“软技能”,即用户体验。

前端工程师的产出是直接面向用户的,良好的用户体验是一个Web产品的基本要素。这里的用户体验并非指的是交互方案和视觉设计,当然这些也是用户体验的一部分。此处我们讨论的用户体验包括但不限于以下几点。
保证内容的快速展现,减少用户等待时间。
保证操作的流畅度
如果是移动设备,应尽量减少设备的耗电量。
上述几点总结起来其实就两个字:性能。如果说按时完成了业务的所有需求是保证了“量”,那么提升产品的性能就是保证了“质”,两者缺一不可。
JavaScript设计之初最经典的应用场景是表单验证。比如,一个需要验证用户名和密码的表单,用户没有输入任何内容就单击“发送”按钮,仍然会发送一个请求到服务器端进行验证。这在当今网络技术下没什么大不了,但在网络速度慢而且上网费用昂贵的年代,这样的代价是非常巨大的,并且用户必须等待服务器端处理后才能得到反馈。JavaScript在浏览器发送请求之前验证内容的有效性,避免一次无效的请求,既减轻了服务器端压力,节省了成本,又减少了用户等待时间,提升了用户体验。可见JavaScript设计的初衷便将用户体验作为重要的考虑因素。
你可能会产生疑问:学习能力不算软技能的一种吗?这是因为学习能力是任何岗位都必须具备的软技能之一,并不是专属于前端工程师的软技能。
在现今社会的快节奏下,用户对于产品的需求也倾向于快速化:快速展现、快速迭代。用户不想为了看一条新闻而去下载一款新闻软件,他们希望打开网站即可快速查看。前端解决浏览器兼容Web产品本身就具备快速的基因,性能优化的最终目标也是保证“足够快”。所以,前端工程师不仅要求熟练地使用基本的开发技能,还必须具备性能优化的意识和技能。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-62592-2.html
不满老天做安排
日舰航速也普遍高于北洋舰队舰只