原来问及前端工程师的基础技能素养,可能html、css、JavaScript就搞定了。但是时代在变,企业对于人才的需求与能力要求也在发生变化,就web前端本身来说,每年也有很多新技术、新趋势的涌现。
要知道前端=切图这个职业设定早就成为过去式了,这种狭隘的职业定位是在其技术匮乏时代的产物,现在web前端工程师基本都是使用html5组织页面,使用css3绘图,很多元素已经不需要再使用图片还原设计,这其实是一个很大的进步。
而且web前端的工程师的技能要求已经不是仅仅停留在前端这个层面,像后端基础、大数据可视化、用户心理等都要有所涉及和了解。
前端工程师要学到什么程度才能找到一份最基本的工作?
单纯从技术角度分析,我大致做了如下知识点罗列,希望对大家的学习有帮助~
PC端网站布局:HTML基础,CSS基础,CSS核心属性,CSS样式层叠,继承,盒模型,容器,溢出及元素类型,浏览器兼容与宽高自适度,定位,锚点与透明,图片整合,表格,CSS属性与滤镜等。
HTML5+CSS3基础:HTML5新增的元素与属性,表单域增强元素,CSS3选择器,文字字体相关样式,CSS3位移与变形处理,CSS3 2D转换与过渡动画,CSS3 3D转换与关键帧动画,弹性盒模型,媒体查询,响应式设计等。
WebApp页面布局:移动端页面设计规范,移动端切图,文字流式/控件弹性/图片等比例/特殊设计的100%布局,等比缩放布局,viewport/meta,rem/vw的使用,flexbox详解,移动web特别样式处理等。
原生JavaScript交互功能开发:基本语法,循环语句,函数与数组,String与Date,BOM与DOM,事件,拖拽效果,cookie存储,正则表达式,Ajax,面向对象基础,运动与游戏开发等。
面向对象进阶与ES5/ES6应用:Promise/A+,设计模式(观察者模式等),原型链,构造函数,执行上下文栈与执行上下文,变量对象与活动对象,作用域链,闭包,this,ES5,ES6等。
JavaScript工具库自主研发:DOM库,事件库,AJAX库,原型和继承库,MVVM核心库,基于SPA的路由库等。
jQuery经典交互特效:时间轴特效,tab页面切换效果,网页定位导航特效,滑动门特效,焦点图轮播特效,导航条菜单效果,瀑布流特效,弹出层效果,倒计时效果等。
PHP+MySQL后端基础:PHP,MySQL,HTTP(s)协议详解,Ajax进阶、跨域与Defered,Apache与Nginx 环境搭建与配置,接口的定义,Mock数据,Restful,前后端联调,前端安全(XSS,CSRF,JSON注入)等。
前端工程化与模块化应用:Gulp,Webpack,NPM,Git/SVN,CommonJS,AMD,CMD,ES6模块化等。
PC端全栈开发:大首页、列表页与详情页展示与交互特效、搜索、登录与注册、购物车、jQueryUI 与 jQuery EasyUI、Bootstrap(ACE)、Highcharts/Echarts、ArtTemplate、Velocity、Smarty、云平台系统前端等。
应用Vue.js开发WebApp:Vue.js基础,模块化,单文件组件,路由,与服务器通信,状态管理,单元测试与生产发布,服务端渲染SSR与Nuxt.js,基于Vue.js企业级项目开发等。
应用React.js开发WebApp:ReactJS基础,JSX语法,组件,flux+Redux,React,Router路由,动画效果,基于React 企业级项目研发等。
应用Angular开发WebApp:TypeScript 基础与进阶,开发环境配置,Hello World,架构、模块与组件,模板,元数据、数据绑定与数据显示,表单,服务与指令,依赖注入,路由,Ionic 3 MUI框架等。
微信公众号开发:初识微信公众号,订阅号的基本功能,使用百度BAE实现代码的快速上线,使用Git完成线上代码部署,公众号开发权限及功能接入,微信JSSDK接口API,微信场景项目开发与接入等。
微信小程序开发:微信小程序初探,小程序入门必学,小程序组件体验,小程序大功能,项目实战等。
React Native:React Native 初探,React Native 项目导航,React Native 项目文本框,React Native 项目滚动分页,React Native 项目第三方登录,React Native其他组件等。
各类混合应用开发:自主原生Navtive Hybrid,第三方Hybrid框架Cordova/Phone gap,第三方Hybrid框架等。
如果是单纯出于兴趣,或者只是为了突击某一阶段或者某一项目技术壁垒,不跟就业挂钩的自学倒也是无关痛痒。但是当上岗成为自学的终极目标和结果时,一切都就另当别论了。
前端自学者存在的学习误区:
· 奉为经典的东西可能已经过时,或者已经有了更好的替代者,而你获取信息的渠道有限,消息滞后,导致学习的内容也相对滞后。
· 学习方法盲目。看书看不懂就找视频类教程学习,觉得教程跟自己的口味不符就另寻他法,因为自己缺少对资源的辨识能力,总是在没有清晰规划学习线路的情况就盲目学习,导致无效学习时间过长而收获寥寥。
· 对技术的理解停留在理论层次,而缺乏真实企业项目的历练,如果没有相关实习或工作经历,对前端岗位具体的责任划分和工作流程了解不充分。
所以,自学前端需要达到什么水平才能去工作?我结合了知识点和现在前端主流岗位需求,列举了一些,希望对大家的学习有帮助~
. PC端网站布局:HTML基础,CSS基础,CSS核心属性,CSS样式层叠,继承,盒模型,容器,溢出及元素类型,浏览器兼容与宽高自适度,定位,锚点与透明,图片整合,表格,CSS属性与滤镜等。
. HTML5+CSS3基础:HTML5新增的元素与属性,表单域增强元素,CSS3选择器,文字字体相关样式,CSS3位移与变形处理,CSS3 2D转换与过度动画,CSS3 3D转换与关键帧动画,弹性盒模型,媒体查询,响应式设计等。
. WebApp页面布局:移动端页面设计规范,移动端切图,文字流式/控件弹性/图片等比例/特殊设计的100%布局,等比缩放布局,viewport/meta,rem/vw的使用,flexbox详解,移动web特别样式处理等。
. 原生JavaScript交互功能开发:基本语法,循环语句,函数与数组,String与Date,BOM与DOM,事件,拖拽效果,cookie存储,正则表达式,Ajax,面向对象基础,运动与游戏开发等。
. 面向对象进阶与ES5/ES6应用:Promise/A+,设计模式(观察者模式等),原型链,构造函数,执行上下文栈与执行上下文,变量对象与活动对象,作用域链,闭包,this,ES5,ES6等。
. JavaScript工具库自主研发:DOM库,事件库,AJAX库,原型和继承库,MVVM核心库,基于SPA的路由库等。
. jQuery经典交互特效:时间轴特效,tab页面切换效果,网页定位导航特效,滑动门特效,焦点图轮播特效,导航条菜单效果,瀑布流特效,弹出层效果,倒计时效果等。
. PHP+MySQL后端基础:PHP,MySQL,HTTP(s)协议详解,Ajax进阶、跨域与Defered,Apache与Nginx 环境搭建与配置,接口的定义,Mock数据,Restful,前后端联调,前端安全(XSS,CSRF,JSON注入)等。
. 前端工程化与模块化应用:Gulp,Webpack,NPM,Git/SVN,CommonJS,AMD,CMD,ES6模块化等。
. PC端全栈开发:大首页、列表页与详情页展示与交互特效、搜索、登录与注册、购物车、jQueryUI 与 jQuery EasyUI、Bootstrap(ACE)、Highcharts/Echarts、ArtTemplate、Velocity、Smarty、云平台系统前端等。
. 应用Vue.js开发WebApp:Vue.js基础,模块化,单文件组件,路由,与服务器通信,状态管理,单元测试与生产发布,服务端渲染SSR与Nuxt.js,基于Vue.js企业级项目开发等。
. 应用React.js开发WebApp:ReactJS基础,JSX语法,组件,flux+Redux,React,Router路由,动画效果,基于React 企业级项目研发等。
. 应用Angular开发WebApp:TypeScript 基础与进阶,开发环境配置,Hello World,架构、模块与组件,模板,元数据、数据绑定与数据显示,表单,服务与指令,依赖注入,路由,Ionic 3 MUI框架等。
. 微信公众号开发:初识微信公众号,订阅号的基本功能,使用百度BAE实现代码的快速上线,使用Git完成线上代码部署,公众号开发权限及功能接入,微信JSSDK接口API,微信场景项目开发与接入等。
. 微信小程序开发:微信小程序初探,小程序入门必学,小程序组件体验,小程序大功能,项目实战等。
. React Native:React Native 初探,React Native 项目导航,React Native 项目文本框,React Native 项目滚动分页,React Native 项目第三方登录,React Native其他组件等。
. 各类混合应用开发:自主原生Navtive Hybrid,第三方Hybrid框架Cordova/Phone gap,第三方Hybrid框架等。
哦,对了还有加分项,大数据可视化!
建议大家从一些知识细节入手,数据可视化入门,数据可视化基础,零编程工具使用:ChartBlocks、Infogram、plotly、Raw、Tableau,D3.js详解,D3.js 入门,D3.js 高级应用,D3.js 应用工具:NVD3、n3,charts,Highcharts,FusionCharts,Polymaps等。
1、css,html,js 基本要求要能够了解并且熟练。
2、在完成1后,了解前端自动化, webpack,gulp, 并且能利用webpack,gulp写一套脚手架(不是框架),实现最基本的 es6 -> es5(babel + eslint), css处理器(比如sass)-> css(postcss做浏览器兼容), 模板(比如 pug)->html。
3、在完成2的同时 你会了解 es6的语法,sass的使用,和一点点nodejs的使用。
4、完成2和3后, 你可以尝试了解 jQuery->vue->微信小程序, 其实方向就是 DOM操作->MVVM框架->商业化产品(微信小程序,混合式APP开发等)
5、在完成4的同时 你会了解到 一点点HTTP请求知识,cors跨域处理,AJAX等
6、在完成4后还有余力的话, 去了解nodejs+express 最基本的写一个管理系统,或者blog等等
7、在完成6的途中你会了解到 http请求,数据库操控, cookie与session,restful API,等等
如果能够全部完成7点,达到 了解并且掌握的程度, 那么找个实习是没什么问题了,剩下的都在工作中学习吧。
要熟悉常用的通信格式如xml/json之类。
现在大前端还需要学习一些mvvm的东西,如vuejs,angularjs,reactjs等等。
还需要了解一些浏览器的知识,便于做浏览器通用,然后最好也学习一些后端的知识。
看完这些建议你去招聘网站看看各大公司招聘前端工程师的要求,对应去看看技能要求,对照你就可以知道自己差距在哪里。
学习HTML和CSS,而且要完全掌握
必学:JavaScript
h5+css必学
多了解一些框架如:Bootstrap
MVC/MVVM/MVW框架:
Angular.js、React.js、Vue.js、Backbone.js、Knockout/Ember等这些前端框架都要了解,最好熟练两三个。
最主要是多练习 多练习 多练习,最好自己单独可以搞定某个项目整个前端,不然找工作会让你介绍做过的项目。