# Javascript基础加强

前端这个职业确实不轻松,尤其是移动互联网大热的这几年,技术革命就没消停过。单说框架/库吧,我相信屏幕前一定有跟我一样从原生 JavaScript 开始写,然后写 jQuery,写 zepto,写 Angular,写写写,一直写到现在的 Vue/React 等等。就算是刚刚入行、没有经历过技术变革摧残的的新同学,也能被当下纷繁复杂的前端生态给迷了眼。很多同学刚刚掌握了一门技术,以为settle down了、可以沉淀一下了,结果又冒出一个新玩意儿,没办法,继续追!所以说我没见过哪个前端写代码、学东西是不卖力的 —— 不卖力早掉队了。

但大家现在需要冷静下来思考这么一个问题:我很拼,别人也很拼,所有人都在拼的时候,我特别的地方、或者准确地说——我的核心竞争力在哪里?

能够决定一个前端工程师的本质的,不是那些瞬息万变的技术点,而是那些不变的东西。

# 什么是不变的东西?

我给大家举个例子。两年前某厂有个团队发了一则招聘广告,说重金求 Node 玩家,愿意给很高的 P 级,薪资什么的不用说自然非常丰厚。完了没过几天,这则招聘信息的截图竟然出现在了一个培训机构的招生广告里,附的文案是“ BAT 砸 xx 万招 Node 工程师,而你却还在学 PHP?!”。这事儿作为一个段子流传了很久,因为它足够滑稽——大家想想,Node的语法难不难?不难,准确地说,足够友好了!我相信每个团队都不缺会用 Node 或者说用任何一门语言去写 Hello World 的同学 —— 缺的是能够驾驭这门语言、能凭借自己深刻的架构思想和工程思想去支配这门语言、利用它去创造牛逼产出的人。

所谓“不变的东西”,说的就是这种驾驭技术的能力。

具体来说,它分为以下三个层次:

  • 能用健壮的代码去解决具体的问题;
  • 能用抽象的思维去应对复杂的系统;
  • 能用工程化的思想去规划更大规模的业务。
  • 这三种能力在你的成长过程中是层层递进的关系,而后两种能力可以说是对架构师的要求。事实上,在我入行以来接触过的工程师里,能做到第一点,并且把它做到扎实、做到娴熟的人,已经堪称同辈楷模。

# 前端工程师,首先是软件工程师

基础理论知识是一个人的基线,理论越强基线越高。再为自己定一个目标和向上攀附的阶梯,那么达到目标就是时间问题,而很多野路子工程师搞了半辈子也未达到优秀工程师的基线,很多他们绞尽脑汁得出的高深学问,不过是正规工程师看起来很自然的东西。—— 吴军

过去,人们对软件工程的理解比较狭隘,认为前端就是页面,和软件是两回事儿。随着前端应用复杂度的日新月异,如今的前端应用也妥妥地成为了软件思想的一种载体,而前端工程师,也被要求在掌握多重专业技能之余,具备最基本的软件理论知识。

出自 JavaScript 设计模式核⼼原理与应⽤实践