进入前端这个领域,用了大约3个月的学习时间,到现在又用了3个月的工作时间,大致是时候罗列总结前端开发工程师的等级判断标志性事件了,用于指导自己将来一段时间的学习方向。
最开始的3个月学习时间,属于从一无所知的状态到开始了解这个领域,也即是:窥之一角。
从开始工作到现在的3个月时间,属于从懵懵懂懂到刚刚入门,也即是:初学乍练。
从最近开始,在开始了解vue的响应式原理 => 设计模式(观察者模式) => js 面向对象 等知识,逐渐有点把 js 当做一门基础工具的感觉,可以用这门基础工具构建更具有实际意义的工具,算是从刚刚入门开始向初级工程师迈进的过程。
那么,在这里定义一下各个阶段:
-
窥之一角 ——3个月
- 能知道 html 各类标签的含义及使用场景,知道各标签常用的属性值。
- 能知道 css 各类样式的含义和作用,能写出常见布局方式。
- 能知道 js 的基础语法,能使用 js 进行简单的DOM操作。
- 能知道 jQuery、bootstrap 等类似库的作用,并能搭建基础的开发环境以及基础功能的使用。
- 能知道 vue | react | angular 任意一种的基础编程方式,能在有脚手架的情况下写简单的组件。
-
初学乍练 ——3个月
- 能熟练掌握 html 的基础原生标签,能从归类的角度对 html 标签进行区分。
- 能熟练掌握 css 的基础样式,能熟练使用 css3 的特性(尤其是动画),能熟练掌握布局。
- 能熟练使用 js 进行函数编写,进行简单的 DOM 操作。
- 知道常用的 BOM 对象,并能进行基础的操作与配置。
- 能熟练使用 vue | react | angular 进行业务开发,能知道框架的结构,能熟练避免常见的误区。
- 能读懂 webpack、babel 等 conf 文件的配置,并能在有脚手架的基础上根据需要进行部分配置项的改写。
- 能熟练使用 git 进行项目初始化、开分支、提交、merge、conflict处理、reset、rebase、config等操作。
-
一星初工 ——3个月
- 能熟练使用 ES6 的各类特性,例如promise、generator、class等,能在常见场景中知道 this 指向,例如箭头函数、构造函数。
- 能对 DOM 有整体框架性认识,能熟练掌握 DOM 的各常用对象的实际作用,能了解一些相对较为少用特性,例如 crypto、shadow dom等。
- 对 js 面向对象有基础性认识,能设计出基础的类,对对象的构造方式有明确的认识,对Object.defineProperty中的getter/setter、for…of…所使用的Symbol.iterator等有。
- 对 js 原型链有明确的认识,对 constructor、prototype、__proto__等相关对象有关系上的明确认识。
- 对 css3 有全面的认识,能熟练使用 css3 各种特性进行样式开发,能自行对 css 进行分类。
- 会使用 less | scss | stylus 等css预处理语言编写样式,会使用 mixin、function、extends 等功能。
- 对23种设计模式有基础认识,能画出各模式的示意图,并能用 js 实现其中10种模式。
- 对 js 模块化有清晰的认识,能在node、window环境下进行模块化编程。
- 对 webpack 的各部分配置有更清晰的认识,能按需添加不同插件。
- 对数据结构和算法有基础的认识。
-
二星初工 ——3个月
- 对浏览器工作原理有基础认识,能明确知道浏览器从启动到关闭的各个阶段如何工作,了解 js 线程在进行 DOM 渲染和 css 处理时的方式,能使用 web worker 进行多线程开发。
- 对 DOM 的认识更加深入,能熟练使用 js 进行 custom element 创建和操作。
- 对 h5 的 event 认识更加深入,能熟练使用 js 进行 custom event 创建和操作。
- 对全局样式规划有一定认识,能熟练使用 less | scss | stylus 等预处理语言写基础样式库。
- 对23种设计模式认识更加熟练,能熟练画出各模式的示意图,并能使用 js 实现20种模式。
- 能熟练使用 ES 的各类特性,能清晰地认识到 js 异步编程的模式优劣,能理解 js 异步编程的实现原理与方式,对 js 性能提升的原理和方法又更清晰的认识。
- 对项目结构化分层有一定认识,能在项目中熟练地进行结构划分达到一定程度解耦。
- 对 js 模块化编程有更深的理解,能明白命名空间、scope与代码组织方式之间的对应关系,能理解common和AMD的实现方式。
- 对前端工程化理解有一定认识,对webpack、babel的配置更熟熟悉,能熟练配置前端工程化常用的功能。
- 对数据结构和算法有更进一步的认识,能将设计模式和数据结构以及算法进行结合。
-
三星初工 ——4个月
- 对23种设计模式认识更进一步,能熟练使用 js 实现所有设计模式,并能清晰阐述各模式的使用场景和异同。能在项目中有意识地识别设计模式并能进行优化。
- 对 js 的模块化编程理解更加深刻,能在不同平台下熟练进行模块化编程,能手动实现common/AMD/CMD等模块化。
- 对项目结构化分层认识更加清晰,将代码结构规划自然地融入到每个项目的开始中。
- 对 js 性能提升有清晰的认识,开始了解 js 的底层实现原理,对 js 的内存、堆栈、gc等有清晰的结构认识。
- 开始了解 node,会使用node的内置模块,例如 fs、os、process、path、http等,并能够开发基础的命令行工具进行自动化脚本处理。
- 了解 shell 语法规则,能比较熟练使用 shell 开发复杂度为中等的功能。
- 对vue实现原理更加清晰,能总结其源码,能自行实现简单的响应式框架。
- 能对数据结构和算法有较深认识,能刷通较多算法题。
-
一星中工 ——4个月
- 熟悉 node 下的基本功能开发,例如使用 koa/express 进行网络开发,能进行简单的 mysql 开发。
- 对 shell 有较全面的框架认识,能使用shell配合node进行较复杂的自动化脚本开发。
- 熟悉 python 基础语法,使用 django 进行网络开发。
- 对 网络协议 有较深认识,能清晰总结出网络分层模型,能清楚说明各协议之间的异同与适用场景。
- 对前端组件有较深认识,总结多个前端组件库,能总结出常用公共组件,并实现。
-
二星中工 ——5个月
- 能熟练使用 node 进行开发,能对web请求过程中发生的细节有更清晰的认识,能使用 koa/express 开发较大规模的项目。
- 能熟练使用代码结构分析图。
- 熟悉 golang,使用 go bee 开发api。
- 熟悉 nginx | openresty, 进行网络代理搭建。
- 熟练使用 lua 做网络中间层开发。
-
三星中工 ——5个月
- 搭建 gitLab | Jenkins,配置git hook,搭建自动化发布环境。
- 搭建 docker, 布置不同环境。
- 总结工具链,熟练搭建工具链。
-
四星中工
- 熟练使用原型工具。
- 了解基础的视觉设计原则。
-
一星高工
- 关注开发流程
- 关注框架选择
-
二星高工
- 关注感兴趣的内容
-
三星高工
- 关注感兴趣的领域,并付诸行动
-
小有所获
- 在感兴趣的领域持续投入