现在谈到 web 前端的技术结构, 知识体系, 都会搞出一个非常大, 枝叶非常多且细的相当宏大的思维导图, 就像这种的
这种大而全的图示对新人来讲, 太大了, 不好掌握, 而且容易在其中迷失. 我想今天和大家谈一下针对新人的前端知识体系.
1, 要谈这个问题, 就得首先定义一下什么叫 "新人"? 到什么时候就不算新人了?
新人在我这里是定义为零基础进入前端开发行业, 工作不足二年的, 就算新人了. 二年之后, 就不算新人了, 至少算是有一定工作经验了.
2, 要对知识体系规定二个范围,
一是, 时间范围, 就是新人在二年时间之内;
二是, 在二年之内要掌握哪些东西.
3, 在 1 和 2 的基础之上, 规划出来的一个前端知识体系, 才是一个相对可执行, 可操作的知识体系.
那么头二年时间内, 应该掌握哪些东西才是适合的呢?
这个问题很并不是很好回答, 因为每个人的进度不同, 有人天天学, 有人每天学点, 有人每周学点, 这种情况下怎么去规定说二年内应该掌握哪些东西. 所以必须有一个标准, 用来抹平所有个体差异, 能够统一的用来衡量同一群体里的所有人, 这个标准在我看来, 就是 "工资"!
因为市场对所有人都是公平的. 那么一个合格的二年工作经验的前端开发, 应该是多少的工资呢? 先明确一点, 在咱们这个行业, 谈工资不先说城市的, 都是耍流氓. 北上广和我大沈阳的前端工资差的不止一个地球那么多. 就暂时以北京为例吧, 合格的二年工作经验的前端开发人员, 工资必须一万以上.
到现在为止, 这个问题就演变为, 前端开发想要一, 二年内月薪过万, 需要达到具有什么样的知识结构.
先分几个大的部分说,
一, JavaScript,
三, 开发规范
四, 业务及场景
五, 面试
这几个部分如果完全细分的说, 那就是几本书也说不完了, 所以咱们就是以工资一万为界来聊一聊. 为什么是聊聊呢, 因为这几个方面具体到每个人身上也是千差万别, 所以只能就大体的方向来讲, 而不能下定义.
一, JavaScript
说来大家可能并不信, 我个人觉得 JS 对于初学者来说, 其实并不用太过于深究. 因为一家公司能够接受你, 必须是建立在对你的能力水平有清醒认识的基础上. 那么肯定安排给你的工作, 就是你目前力所能及的. 所以 JS 的基本语法 OK 就可以了, 具体包括:
1, 变量, 作用域
- , This
- , Prototype
4, 函数和闭包
5, 异步和 Ajax
二, HTML,CSS
这个部分就是注意一下语义化和 dom 的结构, 不要在 DOM 上过于嵌套.
CSS 就是注意一下 CSS 选择器的深度, 还有多平台多浏览器的兼容和适配.
没什么可多说的, 都是体力活, 做多了就都 OK 了.
三, 开发规范
这个话题可大可小, 往大了说就又得搞一本书出来了, 咱们往小了说说. 其实很简单, 就是按着你的前端同事们的格式去写. 刚开始时别把它想的太复杂.
人家怎么命名方式, 你就怎么起名; 人家怎么写 JS 方法, 你就怎么写 JS 方法;
最重要的就是协同, 例如 SVN,Git, 这些
四, 业务和场景
业务就是公司具体在做的产品, 一定要记住技术是服务于产品的. 好的技术未必有好的产品, 但好的产品一定有好的技术. 技术没有高低之分. 必须 能够 做到能用笔把公司的产品的业务逻辑, 用顺序图给画出来. 并且在业务上要有大局观, 不能觉得某一块东西不是自己负责就完全不理. 要在心中有一个产品的全景图, 要能够对公司的产品甚至是产品线拥有上帝视角. 要明白没有业务做为结果产品, 单纯的技术其实并没有什么存在的价值. 就好比一把铁锹, 如果不能用来挖土, 那么这把铁锹做的再好又有什么意义呢.
至于场景, 可以说的就不多了, 无非是 PC 和移动端, 移动端又分为手机和 PAD.
PC 端就是一些浏览器兼容性, 移动端就是各种终端的适配. 但要注意, 因为设备规格的不同, PC 和移动端在同一个业务上的具体实现流程是不一样的.
五, 面试
这个首推面试题, 把网上你能查到的面试题都过至少看一遍以上, 直到许多面试题你看着都面熟, 基本做题这个部分就 OK 了.
然后就是面试时的回答, 主要是把你做的项目的业务流程说清楚, 然后你是负责其中哪个部分, 谁和你对接, 数据是如何产生和使用的. 等等
刚才提到的那些知识并没有太难太深的东西, 都是一些基本的知识和技能, 所以也就是月薪一万吧. 但现在的前端, 月薪一万只是起点而已. 我个人看法吧, 这五个部分都基本 OK, 然后二年左右的工作经验, 我觉得工资拿不到一万不太可能.
刚才讲的五个部分, 其中一, 二, 三都是相对成熟的, 就是那些东西, 必须那么写. 第四部分业务和场景里, 主要就是业务那块. 业务流程一般会划分为组件和模块, 组件我认为是无逻辑的, 就是一些切换和开关, 样式, 强调通用性; 模块是有逻辑的, 强调的是对数据的处理, 以及根据数据来控制网站的视图.
自己是从事了五年的前端工程师, 不少人私下问我, 2019 年前端该怎么学, 方法有没有? 没错, 自己整理了一份 2019 最全面前端学习资料, 从最基础的 HTML+CSS+JS 到 HTML5 的项目实战的学习资料都有整理, 送给每一位前端小伙伴, 有想学习 Web 前端的, 或是转行, 或是大学生, 还有工作中想提升自己能力的, 正在学习的小伙伴, 需要可以私聊我哟, 也有我的前端开发 qun,[四八四] [七五七] [七六零] , 对于学习 Web 前端有任何问题 (学习方法, 学习效率, 如何就业) 都可以问我, 最后可以点一波关注哟!
来源: http://www.jianshu.com/p/bd00af696b0c