目前在我眼中的软研鄙视链是这样的:
架构--->后端--->前端。
可以说做一位一名前端工程师在同级别的其他同事面前是地位比较低下的。
那么今天我们就来集思广益一下,如何成为一个优秀的前端工程师并且一步一步甚至成为全栈工程师。
1.深度与广度。
首先让我们思考这样的一个问题:在前端的学习中,到底是‘深度’比较重要,还是‘广度’比较重要呢?
这个问题的答案是,它们同样重要。其实在我们前期的学习与积累阶段,我们应该更注重的是自己知识面的广度(当然,这里不是说东一榔头西一棒子,而是指在可以掌握每一项技能的基础之上,逐渐趋扩宽自己的广度),众所周知前端的知识体系是一个很庞杂的东西,所以我们需要去了解与学习的东西会很多,这个时候就需要我们在知识的广度上有足够的积累。当我们在广度上有一定的积累之后,我们需要做的是在一个方向上去进行深度的挖掘,这里的一个方向不是说要局限住只在一个方向上进行深层次的探索与学习,而是说我们要一个方向一个方向逐个方向上去进行探索。这个过程就类似于我们去挖一口水井。只有当我们挖掘到足够深的地方我们才能够见到地下的水,不然我们只会挖出一个又一个的土坑,永远不会有真正的产出。
2.基础知识的积累与沉淀
第一部分我们去做了深度与广度的探寻。但在去做各个方向的探索之前,我们最需要去做的,就是夯实自己的基础知识。
关于html和css部分的内容我就不做赘述了,这里主要说一下js部分的基础知识如何去学习的更扎实一些。其实这部分的积累是最重要的,但是同时也是最无聊的一个阶段。因为在这个阶段我们需要不断地学习我们认为“无足轻重”的基础知识,可能有些太基础的东西你会想当然的认为“这种东西怎么可能有人不会”,但是当你深入的去了解它的实现,使用,应用场景以及涉及到的对性能的影响后你会发现,没有说什么东西是简简单单的。在这里给大家推荐几本书《JavaScript权威指南》--->《JavaScript高级程序设计》(js红宝书)--->你不知道的JavaScript(上、中、下共三本)。当你以递进的顺序将这三本书理解清楚以后,你的js基础已经足够你去做任何方面的探索与学习。
3.一个大体的探索与学习方向
首先,我们的目标可能是为了满足我们的业务需求,所以当我们搞定了基础后,我们需要尝试着去学习框架。
目前主流应用的两个框架,分别是vue以及react。而这两个框架也分别代表了mvvm以及mvc两种不同类别的框架。首先我们需要去通过阅读官方文档,来学习框架的使用,在这里我以vue框架为例。我们可以先通过官方文档https://cn.vuejs.org/ 去学习vue以及vuex的使用及其应用场景。当我们可以初步的使用一个框架后,我们要做的就是清楚他的核心内容是什么。这里依旧用vue进行举例,我们需要去了解他的核心内容是数据的双向绑定也就是说数据劫持这一部分,那么具体又是怎么来实现数据劫持这部分的,这都是我们需要去学习的和了解一个框架所必须经历的内容。
其次,我们可以去学着写一写配置,类似于webpack的使用及其原理,webpack和gulp的区别以及我们在不同的应用场景下该如何选择,这些都在我们学习的范畴之内。
4.深度的学习
当我们在基础知识和广度上都有一定的积累之后,我们可以向着一个方向去进行更为深入的学习。偏向全栈发展的可以学习一下nodejs以及express框架的相关内容,偏向前端的同学可以去对框架进行更深层次的学习,比如从源码着手去学习vue或者react各部分功能的实现原理,并且可以边学习边尝试着自己手撸一个简单的框架结构出来。
总结:
我认为,当你开始深层次学习的时候,单纯的理论学习已经失去了任何意义(当然即便是在进行基础知识的学习时也要记得一定要自己进行实践,只有当你的理论与实践相结合,你才能够真正的掌握这些东西)。所以我们需要在项目中去进行不断地发现问题,解决问题,并在这个过程中去逐渐的学习更多知识,加深自己的深度。
所以从今天开始我也准备从头开始,将整个体系与基础进行新一轮的学习,来让自己的基本功更加扎实,并在这个过程中不定期的更新当前阶段的学习笔记,有喜欢的同学可以把接下来的内容当做是小白教程来一起学习一下。接下来的日子不定期更博。
p.s 有要参加校招的同学,可以跟着这位大佬的git https://github.com/InterviewMap/InterviewMap 将知识体系梳理一遍,从而更好地应对面试,希望大家可以拿到更多更好的offer