前端工程师的学习规划

背景

总结前端学习的经验和知识点,提供给新人学习,已经有前端经验的同学提高.

前端各方向学习规划

加粗的需要重点掌握

原生JS

  • 了解JS中的各种对象的含义 (Array、 String、Number、 RegExp、Function、Object、NULL、undefined、NaN)
  • 了解JS中的各种运算符 (+、-、/、*、~、!、|、||、&、&&、%、[]、{}、=、>、<)
  • 熟悉并学会使用 Array、 String、Number、 RegExp、Function、Object 的原生方法
  • 掌握JS Dom相关API,(增、删、替换、复制等)
  • 掌握JS对象的简单克隆和深度克隆
  • 掌握JS对象的类型转换
  • 掌握JS中的各类原生事件,以及事件代理
  • 了解JS中的prototype属性的作用
  • 熟悉JS中如何实现类,并了解实现继承的几种方法
  • 熟悉this在各种场景下的所代表的含义
  • 熟悉常用框架的API(代表框架: underscore \ jQuery \ handlebarsjs \ swiper )
  • 熟悉JS中的各种设计模式,熟练使用几种设计模式(单例模式、工厂模式等),知道不同场景如何选择使用不同的设计模式。
  • 熟悉JS中的模块化(模块化: CMD \ AMD),以及几个代表性的框架的使用 seajsrequirejsmodjs.

CSS

  • 了解CSS各种属性的含义
  • 了解页面主流布局实现方式. (左右等分,左右定宽中自由,左定宽右自由,12等分页面,自由组合布局)
  • 了解CSS sprite的原理和实现方式
  • 了解各大主流浏览器的CSS差别和css hack,能写出兼容各类浏览器的CSS.
  • 了解CSS font的原理和实现方式.
  • 了解CSS3新增的各类属性含义.
  • 了解CSS3 flex布局原理.
  • 了解CSS3动画原理,会使用一些常用CSS动画
  • 了解CSS动画和JS相结合的框架
  • 掌握前端动画技巧,熟悉动画原理,知道常用的JS/CSS动画库,了解各类动画库原理并使用
  • 掌握sass,less,stylus等css构建语言,并会使用

HTML

  • 了解HTML语意化,并知道在合适的位置正确使用
  • 了解HTML5新的标签和新特性
  • 掌握canvas绘图
  • 掌握localStorage本地数据存储
  • 掌握HTML5多媒体标签的使用(audio、video)
  • 掌握各类标签属性的含义

流程构建工具

  • 了解前端为什么需要流程构建工具,要解决的问题是什么
  • 掌握 Grunt\ Gulp 这类流程构建工具的原理并使用
  • 掌握 webpack \ fis 这类前端集成解决方案的原理并使用
  • 知道选择各类流程构建为自己的项目做项目构建
  • 熟悉使用babel将es6代码转换到es5,放到浏览器运行

前端框架及扩展

  • 了解前端各类开发模式,完成从面向过程编程到面向对象编程的转变
  • 了解使用MVC模式开发,代表框架 Backbone.
  • 了解使用MVVM模式开发,代表框架 angularjsReactVue.
  • 熟悉组件化开发优势,知道 React\Vue\angularjs 中几种开发模式.
  • 熟悉各类框架的组件编写方式.
  • 会使用npm来管理各种前端模块.
  • 掌握React-Native, ionicmuinative.js, phonegap等工具和框架原理

Hybird

  • 了解Hybrid App原理
  • 了解Hybrid和正常H5页面的区别
  • 熟练掌握bridge js的原理以及使用(先熟悉公司的bridgejs)
  • 掌握开发调试Hybrid页面的技巧

Node

  • 了解Node的运行环境, 熟悉window, Linux/Unix下不同的运行原理
  • 了解Node与浏览器JS不同的各类全局变量(process, golbal )
  • 了解Node中各类对象的含义(如: Buffer, Events)
  • 了解CommonJs规范,熟悉JS模块化的含义
  • 知道通过node官网来查看API返回
  • 了解并会使用Node常用框架和类库(如: express, sockit.io, koa, co
  • 熟悉nodejs的开发和调试技巧
  • 熟悉使用node搭建简单http服务器
  • 熟练使用express框架,并使用来搭建网站
  • 熟练使用其他第三方库来辅助网站开发
  • 会使用npm来管理各种模块,了解需要使用的模块源代码

工具

  • 熟练掌握Chrome调试工具.
  • 熟悉Photoshop切图, 并会使用Photoshop制作css sprite.
  • 熟练使用svn\git等版本管理工具
  • 熟悉各类编辑器(vim, sublime, webstorm),并掌握自己最常用编辑器的各类插件扩展(语法高亮、代码提示等插件)
  • 熟悉Github的使用,会找到其他人写的优秀代码来借鉴.
  • 了解shell常用命令,会配置Nginx.
  • 掌握Markdown等语言,熟练编写各类文档文章.
  • 熟悉各类平台的辅助开发工具
  • 了解前端的前沿技术,会搭建简单demo并运行,会比较各类工具优势劣势,以及使用场景

合作开发

  • 了解开发过程中代码流向,由 本地电脑 -> 开发服务器 -> 测试服务器 -> 预发布服务器 -> 线上服务器.
  • 掌握浏览器cookie的读写,了解http-only的含义
  • 熟悉前后端调试的原理,知道怎么和后端程序员进行调试,知道熟悉怎么本地mock
  • 熟悉整个项目的发布部署原理,知道本地代码和编译后代码的区别.
  • 了解CDN原理,指导CDN的带来的好处和弊端,会发布代码到CDN.

语言扩展

  • 熟练使用 es6 语法,掌握es6语法带来的代码变化
  • 了解flash语法以及编写
  • 了解php\python\java语法,会使用编写简单功能
  • 更深入其他语言语法.

前端书籍推荐

参考如下链接:

知乎大神的整理
github上其他人整理