前端工程师需要拥都有哪些技能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端工程师需要拥都有哪些技能?相关的知识,希望对你有一定的参考价值。

1.开发语言

html发展历史有二十多年,历经多次版本更新,HTML5和CSS3的出现又是一次革新。有些人认为前端开发要掌握的技能简单,不就是制作网页 嘛,其实不然,web前端需要掌握的核心语言xHTML+CSS+javascript,JavaScript作为最难的语言之一,许多编程高手也不敢妄 自菲薄自封精通。由于JavaScript与html的差异性,以及静动态分开处理的一些好处。在大公司编写静态效果和动态效果往往是分开由不同的人完成的。小公司因为需要压缩成本,就要求每个人会得越多越好,如果您想往项目经理发展,能懂一两门后台语言,绝对是锦上添花!

2.浏览器兼容性

互联网目前主流浏览器有IE6\\7\\8\\9,Firefox,Chrome,Opera,Safari,遨游,包括国内主流的搜狗,腾讯 TT,360,the World等等;从内核上讲主要有IE的,遨游版IE,safari,firefox以及opera的,这些都是大家常见的,如果你身边有老网虫喜欢收藏 浏览器,你翻翻他的硬盘,相信几十款肯定是有的。每种内核对代码的解析是不完全一样的,即使同样内核也可能存在很大差异,如IE和遨游版的IE。不说非主流的浏览器,就主流的浏览器要做到完全兼容,也并非易事,需要长时间的积累和测试,需要前端开发工程师对前端开发的热爱和激情。

目前移动互联网的发展趋势也不容小觑,将慢慢占据互联网的主要份额。移动互联网最突出的好处是方便和及时,试想一下,走在某地风景很好,拍下来后自 动分享给各路好友,因此手机上的浏览器兼容也看刻不容缓,现在手机上的浏览器也是纷繁复杂,主流的UCWEB,safari,IE,3G门户的,以及 symbian低端机的“残缺儿童”,包括国外流行手机我们不知道的一些浏览器,更糟糕的是这些浏览器解析因为手机硬件的不同,每个浏览器得到的结果都是 完全不同的。

3.hack技术

由于不同的浏览器对CSS的解析认识不一样,因此会导致生成的页面效果不一样,这个时候就需要针对不同的浏览器写不同的CSS,这个过程叫CSS hack。虽然我们写代码都要求按照标准,不写hack代码,但实际工作中为了兼容主流浏览器,hack代码是免不了的,所以这也应该是每个前端开发人员 必备的技能。

4.业内标准

目前Web前端开发中提到最多的就是W3C标准,这是一系列标准的集合,代表了互联网发展的方向,也代表了前端开发的一种信仰。写的代码都要100%通过标准验证,为通过标准验证而感到自豪,会有效推动互联网的快速发展。

5.开发工具

目前比较流行的是Dreamweaver, 其曾经风靡一时,到现在也没有退出历史舞台,证明DW还是有很大优势的,尤其是针对初学者,其强大的提示功能可以帮助我们很快的熟悉并掌握网页布局,但现 在更提倡的是纯手写代码,既体现技能方面的卓越,也可有效避免使用DW等工具产生的冗余代码。此外再掌握一些photoshop技能,即使没有美工,也能 简单处理一些图像。

小结,掌握以上技能,可以说你是一个合格的前端开发人员,能够参与到一个大的项目中,或者自己独立写出一个网页。虽然这看起来和网页制作设计差不多,从效果上来看,都是制作网页的,但实际上,技术上所超出的已经是好几个档次的东西了。

参考技术A

不同公司,不同岗位,不同业务背景对优秀前端的要求可能会有差异,我们以阿里巴巴淘系技术部的一则JD为例,来拆解一下,以下回答仅供参考

职位描述

    负责组件库与业务页面开发。

    带领团队完成技术产品实现。

    负责大型多应用架构设计。

    利用前端技术与服务端协同完成团队业务目标。

职位要求

    掌握图形学,webgl或熟练使用threejs框架,熟练canvas相关渲染及动画操作的优先。

    熟练掌握JavaScript。

    熟悉常用工程化工具,掌握模块化思想和技术实现方案。

    熟练掌握React前端框架,了解技术底层。同时了解vue以及angular等其他框架者优先。

    熟练掌握react生态常用工具,redux/react-router等。

    熟悉各种Web前端技术,包括HTML/XML/CSS等,有基于Ajax的前端应用开发经验。

    有良好的编码习惯,对前端技术有持续的热情,个性乐观开朗,逻辑性强,善于和各种背景的人合作。

    具有TS/移动设备上前端开发/NodeJS/服务端开发等经验者优先。

从上面这侧JD我们能大概了解现在前端工程师需要拥有的技能,当然了,还是那句话,不同公司,不同岗位,不同业务背景对优秀前端的要求可能会有差异。

建议题主可以多看看招聘网站上的信息

参考技术B

首先说说前端工程师必须也应该掌握的技能:

前端三大基础技能HTML、CSS、JS自不必说,这是前端吃饭的东西。TCP/IP、浏览器渲染原理、前端性能优化兼容、PC/M端开发、DOM、BOM、计算机原理等。

就目前企业需要的而言,除了基础之外,会要求掌握Vue、react、ng、node等一个或多个知识。隐约已经成为了一个事实的标准,但这些知识你可以看出,都是JS,没错都是JS,所以说JS的掌握程度越高,你学习这些框架越轻松,毕竟这些都是API嘛。还有就是一些npm、yarn、gulp、webpack等工具的使用。差不多大部分要求就是这样。

当然,如果是应届生的话要求没有那么高,基础掌握大概就不错了。如果是转行学习前端的话,那最好还是需要系统的学习这些东西。

参考技术C

HTML5、CSS3、JavaScript、JQuery、AJAX、Bootstrap这六大技能。
HTML5
HTML是超级文本标记语言,是为“网页创建和其他可在网页浏览器中看到的信息”设计的语言。HTML5是由万维网发布的最新的语言规范,是开放的Web网络平台的奠基石,所以做Web前端,精通HTML5是必须要掌握的一项技能。
CSS3
CSS即层叠样式表(Cascading StyleSheet)。在网页制作时采用层叠样式表技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。CSS3是CSS技术的升级版本,CSS3语言开发是朝着模块化发展的。以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。这些模块包括:盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等。CSS3对于Web前端整个页面的设计是必备的技能。
JavaScript
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能,为用户提供更流畅美观的浏览效果。掌握了JavaScript,就可以给网页增加各种不同的动态效果,比如百叶窗特效,广告切换特效,浮动广告特效,上下无缝滚动特效等等。
JQuery
JQuery,顾名思义也就是JavaScript和查询(Query),即是辅助JavaScript开发的库。它是轻量级的JS库,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+),JQuery2.0及后续版本将不再支持IE6/7/8浏览器。JQuery使用户能更方便地处理HTML、EVENTS、实现动画效果,并且方便地为网站提供AJAX交互。熟练掌握JQuery会更好的使用JavaScript。
AJAX
AJAX即“Asynchronous JavaScript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,可以在不重新加载整个网页的情况下,对网页的某部分进行更新。AJAX开发人员必须理解传统的MVC架构,这限制了应用层次之间的边界。同时,开发人员还需要考虑C/S环境的外部和使用AJAX技术来重定型MVC边界。最重要的是,AJAX开发人员必须禁止以页面集合的方式来考虑Web应用而需要将其认为是单个页面。一旦UI设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了。实现网站交互必须熟练掌握AJAX。
BootStrap
Bootstrap,来自Twitter,是目前很受欢迎的前端框架。Bootstrap是基于HTML、CSS、JavaScript的,它简洁灵活,使得Web开发更加快捷。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。其中包括以下组件:下拉菜单、按钮组、按钮下拉菜单、导航、导航条、路径导航、分页、排版、缩略图、警告对话框、进度条、媒体对象等。时刻学习最近的前端框架也是Web前端工程师的必备技能!

有想入门前端的同学大家可以去B站搜索尚学堂老师高淇的 Java三百集 里面很多的学习资料

希望会给大家带来帮助!

参考技术D 不同公司,不同岗位,不同业务背景对优秀前端的要求可能会有差异,我们以阿里巴巴淘系技术部的一则JD为例,来拆解一下,不同级别的前端工程师应该具备什么样的技能。
JD
业务背景
淘宝内部最大创新项目之一,大团队已有百人规模,大部分项目处于保密阶段,前景远大

职位描述
1.负责组件库与业务页面开发。
2.带领团队完成技术产品实现。
3.负责大型多应用架构设计。
4.利用前端技术与服务端协同完成团队业务目标。

职位要求
0.掌握图形学,webgl或熟练使用threejs框架,熟练canvas相关渲染及动画操作的优先。
1.熟练掌握JavaScript。
2.熟悉常用工程化工具,掌握模块化思想和技术实现方案。
3.熟练掌握React前端框架,了解技术底层。同时了解vue以及angular等其他框架者优先。
4.熟练掌握react生态常用工具,redux/react-router等。
5.熟悉各种Web前端技术,包括HTML/XML/CSS等,有基于Ajax的前端应用开发经验。
6.有良好的编码习惯,对前端技术有持续的热情,个性乐观开朗,逻辑性强,善于和各种背景的人合作。
7.具有TS/移动设备上前端开发/NodeJS/服务端开发等经验者优先。
首先,总览全部的要求,会发现这个职位虽然提到了3d相关的技能,但是大部分却是应用开发相关的能力,所以这个职位并不是想找专业的3d领域同学,而是需要一个工程化能力强,对3d有了解的同学。
0.掌握图形学,webgl或熟练使用threejs框架,熟练canvas相关渲染及动画操作的优先。
初级:
学习过图形学相关知识,知道矩阵等数学原理在动画中的作用,知道三维场景需要的最基础的构成,能用threejs搭3d场景,知道webgl和threejs的关系。
知道canvas是干嘛的,聊到旋转能说出canvas的api。
知道css动画,css动画属性知道关键字和用法(换句话说,电话面试会当场出题要求口喷css动画,至少能说对大概,而不是回答百度一下就会用)。
知道js动画,能说出1~2个社区js动画库,知道js动画和css动画优缺点以及适用场景。
知道raf和其他达到60fps的方法。
中级:
如果没有threejs,你也能基于webgl自己封装一个简单的threejs出来。
聊到原理能说出四元数,聊到鼠标操作能提到节流,聊到性能能提到restore,聊到帧说出raf和timeout的区别,以及各自在优化时候的作用。
知道怎样在移动端处理加载问题,渲染性能问题。
知道如何结合native能力优化性能。
知道如何排查性能问题。对chrome动画、3d、传感器调试十分了解。
高级:
搭建过整套资源加载优化方案,能说明白整体方案的各个细节,包括前端、客户端、服务端分别需要实现哪些功能点、依赖哪些基础能力,以及如何配合。
设计并实现过前端动画引擎,能说明白一个复杂互动项目的技术架构,知道需要哪些核心模块,以及这些模块间如何配合。
有自己实现的动画相关技术方案产出,这套技术方案必须是解决明确的业务或技术难点问题的。为了业务快速落地而封装一个库,不算这里的技术方案。如果有类似社区方案,必须能从原理上说明白和竞品的差异,各自优劣,以及技术选型的原因。

前端开发都需要哪些能力?

1、三大基础技能,js、css、html这三项技能是前端工程师能力中的基础,任何框架、工具、库都是基于这三者只上的。这是硬实力,决定了整个前端生涯能够达到的高度,以及在后面的技术栈拓展中的顺畅程度和能够达到的效果。
2、工程能力要有,前端工程师首先是个工程师,做项目就是在做工程,所以懂得如何把一个项目的前端部分的工程运行起来,是另一项必备技能。
grunt、gulp、webpack都是著名的工程类工具,这些工具只要能熟练使用,就基本符合工程能力的要求。但是如果想要拿到更高一个层次的offer,理解工作原理必不可少。这些工具的根本作用,就是对资源的处理,包括代码的压缩打包、本地服务器的架设等。
3、调试能力要必备,如果还在用alert、console来调试程序定位问题,那么你还不符合要求。
学习chrome调试工具的使用,Elements查看元素、Network查看网络请求、Sources查看代码,设置断点定位问题、call stack查看调用栈。这个能力很少有人提到,但是掌握这些技能,不仅能在面试时加分,更重要的是在日后实际的项目中发挥的作用。
4、团队协作能力指的就是git,在项目开发中必不可少,熟练使用git,掌握常用的命令,学会解决冲突。
5、热门框架的使用vue、react是当前两个最热门的框架,能够熟练使用是基本要求,如果你想在众多求职者中脱颖而出,你还需要理解原理,还是那句话,你跟offer的差距就是使用与实现的差距。试着理解virtual dom的原理,响应式的原理,双向数据绑定的原理。
6、项目经验要可靠,不是“仿了几个页面”,而是“项目”的经验,是经历过整个项目从0到1全过程的经验,在这个过程中遇到了什么坑,如何解决的,解决的过程中是如何思考的。
参考技术A Web前端:

1、精通HTML,能够书写语义合理,结构清晰,易维护的HTML结构;

2、精通CSS,能够还原视觉设计,并兼容业界承认的主流浏览器;

3、熟悉JavaScript,了解ECMAScript基础内容,掌握1到2种js框架,如JQuery;

4、对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案;

5、对性能有一定的要求,了解yahoo的性能优化建议,并可以在项目中有效实施;

Web后端:

1、精通jsp,servlet,javabean,JMS,EJB,Jdbc,Flex开发,或者对相关的工具、类库以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解;

2、练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力;

3、熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑;

4、精通面向对象分析和设计技术,包括设计模式、UML建模等;

5、熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力

以上是关于前端工程师需要拥都有哪些技能?的主要内容,如果未能解决你的问题,请参考以下文章

Web前端工程师需要掌握的技能有哪些?

一个优秀的前端工程师应具备哪些技能?

前端开发都需要哪些能力?

作为一个合格的Web前端工程师,需要具备哪些技能呢?

目前全栈工程师常用的软件都有哪些

前端会有未来吗?