不知道你上次思考前端职业规划是何时?javascript
若是你是一位学生,你确定对前端这个职业感到陌生,你虽然没有经验,但却对将来充满好奇,你有大把时间来思考,但可能摸不着方向,有种拳头打在棉花上的无力感。前端
若是你已经参加了工做,不管是刚开始实习,仍是工做了 3 年、5 年甚至 10 年,必定以为很是充实,但真正用于思考的时间足够吗?若是维持现状,再过 5 年本身的提高点在哪里?若是你对这些结论不清晰,极可能是缺少了对职业规划的思考。java
这种缺少职业规划的焦虑已经发展成为了商机。当你没有清晰职业规划,正在迷茫的时候,培训机构站出来讲,是否是对职业规划充满焦虑?若是是,能够订购咱们的课程,名牌大厂 P10 带你跑赢职场。其实课程确实是干货,但一个具体课程并不能代替你本身的思考,你须要本身想明白本身想要的,而不是被别人灌输思想,由于职场没有标准路线,但培训机构的文案确实有标准写法。webpack
因此这篇前端职业规划是站在我本身角度写的,你若是也在思考长线发展问题,能够做为参考。git
我总结出三个主要思考方向,分别是 知识分类、领域深耕、经济视角。github
知识分类 指的是你对知识的理解是否成体系。如今全球天天新增的知识,一我的穷尽一辈子也学不完,若是不创建一套你本身的知识筛选标准,长期发展就无从谈起。web
领域深耕 是实践,每天学习也是没有用的,你必需要作出什么有价值的事情,才能为行业带来贡献,或者说将知识转化为财富。固然不一样职业学习与实践的比例是不一样的,好比理论物理可能模糊了学习与实践的边界,而在职场环境的工程师,更容易区分什么是学习,什么是实践。算法
经济视角 是说你要可以带着经济视角看问题。能够说没有经济活动,咱们一切学习、生产、职业都没有任何意义,由于推进咱们学习、推进社会生产的动力是交易,没有经济活动就没有需求,需求是推进一切活动的基础。稍微理解了经济和生产的关系,就能理解为何技术要为商业服务,由于任何技术都要有转化为商业价值的潜力才值得被研究,大到社会价值,小到产品价值,都同样。小程序
下面我分别讲讲本身对每一个方向的理解。后端
做为前端,为了保持技术敏锐度,咱们会订阅许多专栏了解新知识。仅我知道的周更专栏就有 30 个,其实根据一些专门整理好的专栏检索网站,每周甚至能够看到超过 100 种不一样的前端专栏。大部分专栏都在作文章聚合,每篇专栏聚合的文章通常有 5 篇到 30 篇不等,这样即使去除重复,一周至少有几百篇新的前端技术文章等你去读,因此有些同窗会以为焦虑,甚至喊出学不动了。
我每周写前端精读刚好也要找一些文章阅读,但几年下来,我偏偏以为每周根本找不到有用的素材。就以本周的 javascript weekly 为例,我摘了一些文章标题:
第二篇是经过可视化帮你理解 DOM 事件的文章,UI 颇有意思,但 DOM 事件做为前端基础,精读实在不适合拿过来炒冷饭,这个知识点讲一遍就好了,不必作成 UI 后再讲一遍。
第二篇是讲一项技术可让 Node 运行在浏览器的,这确实是一个新技术,但现阶段咱们不必为这项技术找场景,只要知道有这个东西就好了,不必仔细阅读。第三篇是对 React 的完整教程,很是体系化,但没有新东西,适合前端新人读,因此也不须要看。
再后面几篇分别是框架升级带来的特性介绍、一个有趣的可视化效果、Next.js 新手入门、如何用 Lit 框架开发组件。这些知识从直觉来看属于可读可不读的,读了吧以为好像对本身没什么成长,不读又以为错过了什么,真的像鸡肋。
若是你看到这些 Feed 流也有犹豫的感受,我建议你创建一套前端知识分类体系。就像学习武功,若是你不了解什么是基本功,什么是花拳绣腿,那么天天面临几百本推送过来的 “武学新闻” 确实是无从学起,并且也学不过来。
在技术领域,知识分类体系是有规可循的,大体能够讲知识分为两种类型:通用、行业知识。
通用知识是指最为基础、适用面也最大的知识,好比数理化,这些知识咱们上学时都学过,工做中用到的知识都是创建在这些通用知识基础之上的,好比没有必定数学基础就难以学习计算机可视化领域,由于其中会大量运用数学知识。
通用知识最有用,也最保值,因此学校时就安排给咱们了,那么大学其实就在教通用行业知识,因此这个阶段若是没有打牢的基础,想要弥补也很简单,只要按照大学教材温习一遍就行了,对于计算机领域的通用知识通常有计算机原理、操做系统、设计模式、编译原理、数据结构、算法等。
领域通用知识看上去比较死板,而初入工做的同窗通常都在作拧螺丝钉的事,每每会忽略行业通用知识的重要性,但当你不断深刻接触公司核心技术时,会发现大量运用了大学里教的那些通用知识,等用到的时候再学就迟了。
若是说行业通用知识的保值时间是 30 年,那接下来提到的行业专用知识的保值时间只有 1 年。行业专用知识就是咱们在 Weekly 上看到的大部份内容,也包括培训班帮咱们速成的前端框架、API 等知识。这些知识很是有用,接地气,并且刚接触工做时第一时间就要用到,但这些知识最大的问题就是太过于上层,以致于同类产品过多,可替代性强,知识点能够随着新版本发布全变了样。
就像项目脚手架工具,如今天天都会出一个基于 webpack 或者 rollup 包装的新品牌,这种脚手架就不值得学习,你也不须要把新出的脚手架看成新知识,由于这些知识的生命周期大部分不到一年,大多没有人用,最重要的是除了名字之外,组成要素里没有任何新知识,因此读完源码也学不到新知识。更最重要的是,你没法根据这些知识生产同类产品,因此若是你真的想学脚手架相关知识,认真读好一个主流脚手架源码就好了,之后除了工做中用到,不须要看任何使用文档。
对于架构能力也同样,咱们在工做中经过踩坑甚至把一个项目作失败得出的经验,可能只是设计模式这本书里提到的一个常见误区;咱们在设计一个很是复杂的系统时,用到的模块通讯设计,可能只是操做系统设计里的一种常见通讯方法。一个能理解操做系统复杂度的人,基本上能够处理与其等价复杂度的软件工程问题,而软件工程的复杂度其实很难超越操做系统,因此与其在项目里试错,不如从这些基础知识里找答案。
因此若是你想在职业规划上更进一步,检查一下本身的基础是否牢固。若是你通用知识特别扎实,就能够快速学会行业基础知识,根据行业基础知识,你甚至能够独立创造任何一个新的框架,这些框架都会成为别人学习到的行业专用知识,若是另外一位同窗没有打基础,把时间都用在学习你作的框架上,那么他的职业发展必定程度会被你左右,而他若是只停留在用的阶段,而不了解实现原理,从长期来看,你的职业天花板必定会更高。
关于哪些是通用基础知识、行业基础知识、行业专用知识,这里不给出具体的建议,相信每一个人都会有本身的判断。
这段思考 不适用于 刚参加工做的前端同窗。
前端有一句有名的鸡汤 “前端不是由于作交互界面,而是由于站在业务的最前端”,其实这句话是有问题的,我以为每一位工做经验超过三年的前端同窗都有一种在业务领域的无力感。
其实最核心的业务模型自然在后端,这是由于前端只是一个用户与业务系统交互的窗口,没有前端,用户也能够和接口直接交互,只是这么作成本很大,因此为了下降用户上手难度,或者带来更好的用户体验,才须要不断升级 UI 界面,因此 UI 界面和后端每每是多对一的关系,移动端、小程序、网页对应的接口都是一套,目的就是为了方便任何场景用户都能轻松触达业务,因此做为前端,首先要对前端存在的缘由有正确的认识。
注意这里说的是业务模型,没有提到体验深度,若是讲究体验深度,天然只有前端能作到。然而前端本质仍是景上添花的部分,由于在任何行业耕耘久了,若是仅仅只考虑前端,那么目标永远是体验度量、研发提效的事情,不多触及到业务层,以致于前端在业务价值的体现不直接,比较难解释体验度量、研发提效与最终业务增加之间的关系。
因此对于有必定工做经验的前端同窗,想要更进一步,必定要在业务领域深耕。
那么如何在业务领域深耕呢?首先你要抛开前端视角,用业务眼光看问题,不然仍是会陷入无尽的交互细节。首先要了解你所在的领域,好比笔者在的数据领域,要知道行业的历史、现状和将来,有哪些产品,每种产品的商业模式是什么,产品之间有什么关联,如今的产品距离头部产品还有哪些差距,今年产品目标主要解决什么问题,三年目标是什么等等。每一个同窗首先都应该理解产品,其次再产生研发、产品经理的分工。
而后审视一下本身的工做,在产品核心能力里扮演者什么角色?好比作 BI 工具,其核心是数据分析能力与报表可视化分析能力,若是你总在作相似报表列表页、我的中心这种通用中后台的工做,你就要想一想,这些工做是否是能够外包出去,若是不行,那就想办法作一些领域搭建,往通用领域转吧。
当你审视了本身工做,发现核心产品能力与你工做内容不相符,而你又不想转到前端中后台通用领域一直作研发提效的事情,这时候你就要想办法和老板沟通改变一下工做内容了,你能够找一些前端也能接触强业务模型的领域,好比 BI 分析,数据可视化等等。其实通用领域也有很多深水区,好比语雀背后的富文本编辑器、流程图、研发工做台、业务组件库等等都是能够作深的通用领域,当你想再上一层楼时,就要像玉伯同样成为语雀整个产品的引领者,这样你其实又进入了知识协做、生产力工具这个专业领域。
若是你既不想往通用技术领域发展,又没法改变工做内容,就尝试承担更多职责吧,若是可能的话,尝试参与后端业务逻辑的开发,这样能够帮助你深刻、全面理解业务逻辑。其实前端 + 产品的路线也能够很好在专业领域作深,前端 + 后端路线也能够,你须要根据本身团队实际状况作出调整。
任何产品的研发团队都要有产品全局观,这就是刚才说的在技术以外,你对你所在业务领域的理解程度,理解程度越高,技术方向就越明确,但若是你的职业规划是再继续攀爬,就要成为整个产品负责人了。如今的年轻人很是上进,许多公司都在尝试采起活水政策,让想更进一步的年轻人尝试新方向开疆拓土,而不是留在一个成熟的团队里内卷。
作职业规划的另外一个目的固然是升职加薪了,可是你的薪资并不能无限膨胀,其增加大体仍是符合市场规律的。另外任何工做都是一笔经济帐,咱们要带着技术、产品和经济视角看业务,才能作出合理的判断。
由于去年疫情缘由,全球远程办公获得了积极实践,而且在将来依然有增加潜力,所以做为用人单位方,一定会逐渐放眼全球去看人力成本问题,由于在哪都能办公。从全球软件开发数据来看,美国的工资水平最高,中国软件工程师的工资也紧随其后,因此在软件领域中国已经不存在劳动力成本低廉的优点了,尤为当你工做经验丰富后,要竞争中高级岗位,中国软件公司开的薪资放眼全球都不低。
然而国家之间技术发展阶段、教育水平仍然存在差距,若是一样的资深技术专家岗位,国内与国外开的薪资持平,但中国的软件工程师架构水平彻底不及美国的软件工程师,那么长期来看,这种错配会形成企业用人成本浪费,企业会在必定程度想办法优化一下人员构成的。所以做为前端,或者软件工程师,你必须清楚长期而言,你要和全球的软件工程师竞争,因此你还要充分了解你的领域在全球范围的发展阶段,人才水平如何。
以上是我的的经济帐,接下来谈谈业务的经济帐。
首先你要了解本身的技术是怎样转化为收入,覆盖本身工资的。咱们首先看市场竞争,市场竞争经过价格调节供需关系,咱们作的产品成本、售价很清楚,是否值得作一目了然。然而对于复杂产品须要多人协做,若是人与人之间再经过市场化机制合做,每每容易产生低效的结果,好比我作的按钮按照 3 元一个的价格卖给后端,那为了提高个人价值,我会提价到 5 元一个,然而倾向于给产品加更多的按钮,这样都在看短时间利益,谁也不会为产品长期发展负责。
因此公司是一个相对大锅饭的组织,谁也不要给本身工做订价,你们都尽量的打磨产品,月底按照合同约定给固定薪酬。这样作确实解决了产品长期发展的问题,但这套机制成熟后,尤为在大公司,刚毕业就去拧螺丝钉的同窗极可能永远没有机会了解何为成本,没有成本概念,就难以想清楚为何作事要考虑投入产出比,或者以为 ROI 这个词很高级,其实这个词一点不高级,只是公司将它屏蔽了,但若是这致使你作技术彻底不考虑成本,只追求让你激动的技术细节,或者只作你感兴趣的技术方向,那实际上是不成熟的表现,你作的事情可能也难以被业务承认。
若是你想往更高层次发展,成本意识是必定要培养的,能够了解一下人力成本、机器成本、以及接入二方、三方服务的外部成本,了解这些成本后,再算算产品年营收是否能覆盖这些成本,若是想继续加人,那明年产品营收相应要翻多少,如今市场空间容许产品翻这么多吗?若是想提供更好的服务,要加机器,那么你的业务方是否会由于服务变好变得更多?衡量业务方增多带来的价值通常从订单价格,MAU 来看,若是服务外部,直接看价格是否覆盖成本就好了,若是服务内部,就看 MAU 是否值得投入这些机器成本。
然而也不能只看钱,市场份额也很重要。若是 Chrome 对研发投入只看年营收,那如今 IE 估计仍是主流浏览器。其实 Chrome 在确立霸主地位后,对谷歌产品生态的打通、W3C 的话语权、开发者吸引力有很大提高,这些看不见的影响面难以直接转化为金钱来统计,因此若是你认为产品市场份额的提高能够带来长线价值,那么也能够把市场份额做为目标之一。
最后经济视角也不只仅让咱们停留在算业务账上,经济学的边际收益理论能够指导咱们优先作边际收益更大的事。当前业务产品矩阵中,拓展哪些产品能够快速弥补不足,若是作技术优化,优化哪些模块带来产品收益、可维护性收益最大,若是时刻能想清楚这些问题,那每一年的产品、技术方向就不会跑偏。
总结一下文中提到的三个思考方向,实际上是职业生涯发展中可能遇到的三种问题。
工做时间久了就会发现,哪怕依然有学习的激情,但保持刚毕业那会的学习方式已经难有突破了,你会发现:工做实践用到的知识不会不少,反复读或者写入门技术文章,只会让本身停留在校招生的技术水平;本身所处的职业也限制了进一步发展,你须要思考怎么打破职业天花板;甚至只钻研技术领域都是不够的,你们都在谈成本,你在谈技术,自然就不在一个频道上。
本文也给出了对应的三个解决方案,知识分类 帮助你解决反复学习无用的、入门知识的问题;领域深耕 帮助你解决职业天花板的问题;经济视角 帮助你解决技术单一视角的问题。
其实职业有天花板很正常,没有哪一个职业上升通道是一路无阻的,但人是活的,你能够逐渐改变本身,在适当的时候多看看业务、经济问题,学习知识也不要仅停留在表面,虽然这些你工做中可能根本用不到,但这实际上是悖论,由于你没掌握某些知识,因此也没机会接触那些工做,想打破悖论只能从痛苦的自我打破边界开始。
与通常前端职业规划不一样,我并无说不少前端领域专有名词,或者点名要学哪些框架,由于我以为人之间智商差距并不大,必须掌握的知识工做几年都能学会,而真正能拉开人之间差距的,不是智商,而是学习方法,或者学习路线,若是你把时间用在错误的地方,或者错误的阶段,终将积累成巨大差距。
但愿个人思考能够对你有帮助。
若是你想参与讨论,请 点击这里,每周都有新的主题,周末或周一发布。前端精读 - 帮你筛选靠谱的内容。
关注 前端精读微信公众号
版权声明:自由转载-非商用-非衍生-保持署名(创意共享 3.0 许可证)