对前端行业同质化的一些思考

大家好,我是雷布斯。

今天咱们继续给大家分享一位前端大佬,对于前端行业的判断以及思考,值得大家耐心阅读。


今年的就业市场,竞争压力很大。在不少技术或者社交的平台上,也有人在渲染前端从业人员的危机,甚至使用“前端已死”的字眼,颇有“语不惊人死不休”的意味。

对一个工作多年的老鸟,可能因为浸淫行业多年,对前端岗位的发展与变化都比较了解,不会太受影响,但对新人可能就有误导了,甚至不敢入行。谨以此文,分享一些个人感受和看法。

作者背景介绍:

  • 我从业10年整,经历了从前后端不分离,JQuery,到现在到处开花。
  • 经历过从小厂到大厂,再到小厂。
  • 从事过网页制作、页面重构、前端开发,现任前端负责人。
  • 经历过裁员,空窗,若干次被面试,若干次面试。
  • 常年关注行业动态、技术动态,保持对行业和职业发展的思考。

鉴于以上,相信这篇文会对屏幕前的你有所帮助。

唱衰

唱衰一个职业不是第一次出现,比如前几年的土木,近几年的计算机。

但就互联网行业来说,最早被唱衰的是客户端,唱衰的声音甚至到了现在,但过去这么久,客户端的岗位真的没有了吗?

“衰”的表象是:岗位机会减少,面试难通过,薪资不及预期

人才市场怨声载道:有的人投了几十份简历,却连一次面试的机会都没有,有的人是面了很多,却一个满意的offer都没有。

有人抱怨,就代表着这个职业不行了?

其实这背后,可能有 HR 也在抱怨:JD 发出去好几天,收到了很多简历,但很多都是学历不匹配,技术栈不匹配,甚至存在简历造假的情况。

那么我们应该怎么看待一个职业的发展前景?

这不应该由某个人或者某些人说了算,要看市场需求,看分工。

前端开发刚起步时,在腾讯、携程等公司出现过少量页面重构岗位,大家经常一起讨论Web标准、语义化、CSS新技巧、设计模式、提效工具等等,,大部分人从零开始入门,对基础知识的学习和研究是大家共同的兴趣和需要。页面重构职位,相当于在前端岗位的基础上,再次细分,重构人员来做切图、页面结构和样式、交互,前端开发做业务逻辑、展示逻辑。它确实在某一个时期,起到了关键作用,引起了大家对视觉稿还原、样式创意、遵循标准编程等方面的重视,也输出了一些精通这方面的人才。

但后来的情况大家都知道:Node、Angular、React/Vue、小程序、Flutter、Electron、WebAssembly...

前端的走向逐渐变成了大而全,而不是小而细。

这种情况下,你说页面重构岗位有危机,可能会慢慢不存在,需要有忧患意识,是有事实依据的,但就像上面所说,前端近几年,甚至往后几年,岗位需求都不会变,大而全的走向不会变,这样的形势下,说“已死”,未免有些滑稽。

既然不会死,为什么显得没有那么繁荣了呢,大家且继续往下看。

找工作难

要说唱衰的来由,就是“找工作太难”,并不代表着前端岗位就消失了。

既然职位本身没有衰落,那为什么会出现找工作难呢?

归根结底其实就四个字:供大于求

  • 供:来自持续不断的新人进入,新人包括大量的应届毕业生、培训班(听说不少城市的培训班都不招前端学员了)等,但同时不会有同样规模的老人退出,所以每年活跃在外的人才数量都是纯增长,且增幅很大。

  • 求:在大公司为了各自的护城河快速扩张,小公司大量涌现时,是需求最旺盛的时候。但近几年因为疫情和国际环境的原因,小公司大量倒闭,大公司的扩张脚部脚步放缓,这就造成了“求”大大减少。

还有一些情况让这种供求关系更加紧张:

  • 裁员:比如教育、区块链等行业因为政策问题有过大量的裁员,又比如一些因为公司经营不善,或者组织架构调整,需要降本提效,优化了大量的人员。
  • 跳槽:前些年,很多人如果因为工作不如意,会选择在拿了年终奖后就离职,这就会造成一波的跳槽高峰,但在今年的行情下,选择裸辞的人会很难过。

当“供”持续增加,“求”持续减少的时候,市场上的机会就会显得很少,竞争也会格外激烈起来,很多人会有“明明觉得自己还行,就是面试过不了”的错觉。

到底为什么过不了面试?

“框架 + 库”工程师

我从事前端的年限比较长,也经历了前端行业从野蛮生长到繁荣的多个阶段。

  • 最初是会用 div + css 布局,用Jquery操作 DOM。
  • 到后来,要求适配移动端、angular、会使用gruntgulp等工具
  • 再到后来,需要使用更复杂的 Vue/ReactRNFlutterWebpack等框架或者工具

要求越来越多,越来越新,从招聘信息到个人简历都罗列一堆名词。

就国内的环境来说,中小厂一般要求 Vue、Vue-router、Vuex、Axios、Element UI 等 Vue 的全家桶,大厂则一般要求精通 React、React-router、Redux、Axios、Antd

上面只是基础的前端框架,除此之外,还有可视化、微前端、设计模式、工程化、性能优化等名词。

对面试者来说,专科、本科、研究生,大厂、小厂背景的人似乎都没有太大区别,如果你是面试官,当你打开千篇一律的简历,会有什么样的感觉?

面试的同学可能已经绞尽脑汁,而且前端就那么多东西,在过往的工作经历中,也完全能胜任岗位的要求。

但作为收简历者,这么多差不多的简历,要用什么样的标准录用,录用谁呢?

这其实就是标题所说的“同质化”,我们想要打动面试官,就绝不能满足于“框架 + 库”工程师。

打动面试官

大家觉得怎样更能打动面试官呢?

我想到了三个方面:

一、软素质:学习能力,总结能力,逻辑思维。

二、技术栈:跟团队一致是最好,上手成本小。

三、项目经验:做过一样或类似项目的最好,不仅上手快,还可能帮助团队提升效率,解决问题。

在投递简历时,要有针对性,不匹配的技术栈、职级/年限要求都不会被优先考虑。相反,优先选择与自身技能匹配度高的岗位,这样简历通过筛选的机会更大,面试成功的概率也较高。

需要认识清楚的一点是:即使是前端岗位,不同团队的需求也是不同的。有些团队需要移动端H5开发,有些需要小程序开发,还有些可能专注于APP开发、性能优化、服务端渲染、中间件、项目重构或升级等。

大家可能在面试结束后,接到了 HR 扎心的回复:“我们求贤若渴,但...”。

当你用不变的自己去尝试不同的机会时,失败率自然会增加,不必过度自责。求职是一种互选的过程,你要对自己负责,而面试官则要为公司负责。如果双方不合适,果断放弃对双方都是好的选择。

然而,我们的目标并不是被淘汰,那么如何提高成功率呢?

  • 了解自己的优势和劣势,明确自己的技能和经验,并针对岗位需求进行自我营销。展示与目标岗位相关的项目经验、技术能力和解决问题的能力。
  • 深入研究公司和岗位要求,理解他们的业务和技术栈。通过在简历和面试中展示你对公司和职位的了解,表现出自己的兴趣和适应能力。

简历

简历的重要性被多次强调,但还是有人不重视,或者不得要领。

现在的简历设计变得更容易,因为有许多平台提供模板服务,这样至少外观不需要花费太多功夫。然而,即使如此,并不意味着每个人都擅长编写简历。

  • 个人信息:突出重点院校以及在校期间的学习、比赛和项目经历等。如果大学期间没有取得什么成就,那也可以强调其他优势。但要注意在简历中传达积极进取的态度和能力。

  • 掌握技能:通用技术大家都差不多,不会成为亮点。所以尽量精简列出技能,也可单独分列专有技术。

  • 项目经历:不必展示过多业务细节,主要是清楚地描述项目的类型、特点以及各自带来的技术实现方面的差异、难点和优化点。较微小的技术点(如使用了key,使用v-show代替v-if等)则可以不列举。

  • 个人评价:不应该过于宽泛,最好举例说明。同时避免前后矛盾的表述(例如说喜欢钻研,但考察后又显得相对肤浅)。这样给人的感觉才更具体且有说服力。

我们之前也分享过很多简历优化的方法,大家有需要的话可以前往自取:

正向加成

所谓的正向加成是指当人们看到你的简历时,发现你的工作经验年限、项目积累和技术深度与预期相符甚至超出预期。反之,如果与预期不符,则产生了反向作用。

如果你的工作经验年限较短,但拥有广泛的技术知识,并且能够展示自己的思考和总结能力,这将是很大的加分项。一方面,这体现了你对技术的热情和主动学习的态度;另一方面,也表明你具备较强的学习和理解能力。这样的人无论当前水平如何,起码具备较高的培养价值,随着时间的推移,他们能够创造出更大的价值并独当一面。

然而,如果你的工作经验年限较长,但项目经验一般,技术停留在表层,甚至因为长期没有更新或复习而退化,那就会出现前面提到的个人积累不足或不出彩的情况,这将产生反向作用,并且可能是致命的。

因此,无论你的工作经验年限长短如何,都需要保持积极进取的态度,持续学习和提升自己的技术能力。确保在简历中展示出与预期相符或超出预期的项目经验和技术深度,这将有助于获得正向加成,并增加你在招聘过程中的竞争力。

薪资玄学

你将自己放置在什么位置,别人就会以相应的眼光看待你。

找工作时,我们都有期望的薪资水平,即使在简历上没有写明,面试过程中也会被问及。

期望薪资就像商店里商品标价一样,如果一件衣服只值几十块钱,那很可能是地摊上的普通货品,而不是陈列在商场里的高端品牌。

人也是如此,根据当前市场行情和个人情况,需要合理预估自己的水平。对于经验较短的人来说,一般不会要求太高的薪资。但是对于经验较长的人来说,薪资范围就更广泛了,从10K+50K+都有可能。

从刚开始工作到工作十几年,期望薪资会呈现一个抛物线形状,从低逐渐上升,然后又下降。顶峰通常出现在5-8年的经验时段。而超过10年的经验者往往表现为经验丰富但技术杂乱,因此期望薪资偏低(除非是专家、总监或CTO等职位)。

这种现象与前端行业整体年轻化、对年轻人的用工需求有关。同时,每个人都会逐渐变老,但并非每个人都发展成架构师、管理者或技术专家。如果你年纪大了,但与年轻人相比竞争优势不明显,那为什么不与年轻人竞争呢?

重点在于,尽管公司希望节省用人成本,但并不是你越便宜,公司就越想雇佣你,而是你能提供物有所值的价值,才会受到公司的青睐。

武装到牙

越是行业竞争激烈,越需要做好每个环节。

首先,印象非常重要。之前我们提到过简历,这是第一印象。

第二印象是笔试题(如果有的话)。负责任的面试官会精心挑选笔试题,每个问题都有其意图,考虑到题目的难度和跨度。以下是一些减分表现:

  1. 基础题答错,这是不应该出现的情况,尤其是应聘高级岗位时要更加小心。
  2. 答案不全面,这类问题通常是开放性的,看你对知识广度和遇到问题的处理能力。你答得越多,就代表你对类似问题的思路越多。
  3. 没有清楚审题,一个问题变成了两个问题,只回答其中一个。

如果笔试表现不佳,第二印象也会不好,很可能没有机会进行面试,除非简历中还有其他亮点,才会考虑给予机会。但是一次面试几乎等同于最后的机会。

第三印象是谈吐和表达能力。

如果你有实力,但是无法在简历或面试中展现出来,那是非常可惜的。

很多人认为技术过关就足够了,其他不重要。技术确实非常重要,如果你能回答问题得很好,即使说话有些口吃,相信公司也不愿意放弃你。但实际上,很少有人能做到技术过关并且在表达上没有问题,所以表达能力变得非常重要。

表达能力体现在多个方面:自我介绍、项目介绍、回答知识点问题、解决难题、职业规划/期望等等。

每个环节都是加分的机会。如果你的表达清晰、自信、有深度,那么会得到加分。但如果你的表达模糊、混乱、空洞,就会减分。

印象是第一关,细节是第二关。

如果无法在大方面与他人区分开来,就需要从细节入手。以下是几个细节类别:

  • 与众不同

    • 比如:WebGIS、微前端、WebGL、低代码等。
    • 如果招聘方正好需要这方面的人才,并且其他候选人没有相关经验,而你具备此经验,那将成为优势条件。
    • 即使其他候选人也具备相关经验,但如果你的学习和应用更深入,经验更丰富,研究细节更多,那你就能在简历和面试中占据优势。
  • 技术原理

    • 近年来,面试中关于技术原理的问题基本上已成为业界共识,我也会问这类问题。但并非生硬地按问题和标准答案对应来问,而是询问设计目的、使用场景、优缺点、启发性等内容,希望从探索兴趣和追求更好体验与问题解决的角度来了解候选人。这不仅仅是测试候选人是否背得下来,更重要的是看他们对算法的理解程度以及对编程意义的认识。
  • 算法

    • 我没有专门考过算法题,当我向候选人问出这个问题时,并不期望他能够如数家珍,甚至不想听到他说刷过leecode,这点可能跟很多面试官不同。
    • 为什么问,想了解的是候选人有没有了解过算法,他对算法的意义有没有自己的认识,实际需求中哪些地方可以用上
    • 这些跟上一条一样,能够一定程度反映出应聘者的职业追求和素质,但不会成为面试通过的决定因素,只是加分项。
  • 参与度

如果你们团队造了一个火箭,你负责的是燃料、驾驶舱、推进器等,就是参与度高,但如果你只负责摁下最后那个开关,可以理解为“没有参与”。

只有参与度高,才有从调研、实施、解决问题,到成功上线的经验,才知道来龙去脉,否则,就算你属于那个团队,也没什么有价值的东西可继承。

  • 难点攻克

攻克难点能反映什么?实现过的功能的复杂度、应对的态度、思考路径、总结沉淀。

不论水平高低,大家都会有自己的盲点,往往这种时候才真正锻炼人,使人得到提升,比较能考察出候选人的多方位素质。

不要忽视细节,不论是软素质还是技术水平,细节到位的人,工作中不要太省心!

大厂双刃剑

很多人希望进入大厂,因为大厂有光环、高薪和福利等诱惑。

然而,我们必须承认大厂也有两面性:

  1. 业务细分:在大厂的一个团队工作的人,很长一段时间内可能只接触到特定类型的业务或技术项目。这限制了广度的发展,缺乏广泛的经验积累。没有广度,技术能力可能相对较弱。

  2. 工种细分:大厂中的分工更加详细,例如在前端开发领域,通常不涉及跨端开发、后端开发或运维等环节。甚至在同一个团队中,组件库和打包构建等任务都会由专门的人负责,普通的开发者很少有机会接触这些领域。

长期以来,由于工作内容的限制,与各个领域的接触面变窄,参与度降低,缺乏主动权,反而会给人一种印象,即你虽然来自某个大厂,但似乎并没有做过什么事情,也没有深入了解过相关领域。

这是一些从大厂出来的人找不到好下家的原因之一,寻找工作并不仅仅靠背景就足够。

鸡啄米?

网上流传一张趣图,形容前端开发的门槛低,技术含量低,鸡啄米瞎捣鼓就能把代码写出来。

image.png

初看时,似乎会觉得对前端职位有些冒犯,但我们不必太过敏感。事实上,前端学习确实具有一些特点:起步容易,只需要一个编辑器和一个浏览器,零基础的人只需几天的学习就能编写简单布局的页面,表面上看起来确实容易。

此外,如今前端框架的流行使得学习成本进一步降低,使用标签(div、p、span)可以轻松处理大部分情况,几乎不用操心DOM操作,使用CSS库进行样式设计,使用作用域限定实现模块化,甚至不必考虑组件的复用,不会的问题可以通过上网搜索解决...很多系统都是非前端人员自己摸索着完成的,这降低了大家对前端系统学习的必要性。

除此之外,还有另一种观点认为,在团队中前端缺乏话语权,好像与前端相关的东西都很简单,一提到技术难度,大家就会想到后端、运维等方面。

这与两个方面有关:

  1. 业务和项目类型:在某些项目中,前端可能确实只做一些简单而重复的工作,没有什么问题需要解决,也没有太多的优化空间,别人看不到前端创造出的外显价值,开发者自身也得不到锻炼。

  2. 前端驱动/赋能:据我了解,很多人每天的工作就是接收需求、按时完成任务、修复bug并上线,如此循环。除此之外,他们没有多余的思考,甚至对自己编写的代码也不太在意,只要能运行就好,优化工作嫌麻烦。

长期下来,个人的能力和素质可能会趋于平庸。因此,我们应该清醒地认识到,这种说法并不是前端简单,而是指作为一名开发者的能力相对较低。不要用个人的能力和贡献来定义整个前端领域。

八股

程序员面试常碰到考八股,有人认为是无意义地卷,太难,面试跟撞运气一样,但就算不考这些也不代表容易,相信不少人碰到实际的编码题,场景题,同样被难倒。

最近在拜读一本小册,里面有一段话很值得参考。

我曾经面试的时候,被问过几个问题:

  1. 说说宏任务与微任务;
  2. 说说 setTimeout(..., 0)setImmediate 与 process.nextTick() 等的顺序。

我其实是记不住的,就算你现在来面试我,我仍然记不住,需要翻文档、翻源码。但那次面试我就挂了吗?其实没挂,我绕过去了。

“这些八股我没有准备,但我可以说说这些定时器或任务在 Node.js 里面是怎么实现的。至于顺序是怎么样的,无非是在事件循环里面先写哪句再写哪句罢了。”然后我就讲了具体实现,最后好像也并没有挂。

这个过程很好地体现了,程序员应该知道的是什么,不是应付面试的死记硬背,而是理解背后的设计。

值得说明的是,当你慢慢地搞懂了那些八股,知识体系越来越完善的时候,就会发现它们是环环相扣连成一片的,很多需要独立记忆的东西,理解之后就不需要记了,对工作中一些最佳实践、优化手段也能理解更深刻。

当下的选择

对下一份工作的期望和目标是什么?每个人更多地关注当下,但也不能只考虑眼前的情况。

看了很多简历,发现接近 90% 的人在一个公司工作的时间不超过2年。有些推荐系统甚至将有过2年以上工作经历的人归类为“工作稳定”。

为什么工作稳定会成为一个标签?这并不难理解。因为一个成功入职的人,可能需要从上百份乃至更多的简历中筛选,并经历多轮面试的比较才最终确定下来。这整个过程的成本非常高,从入职到熟悉项目、了解同事、理解业务,还需要花费几个月甚至一年的时间。如果在一年之后离职,之前大部分的努力就白费了,又得重新开始。此外,团队成员的更替也会带来团队的历史债务,例如文档缺失、代码难以理解等。因此,稳定性的重要性就不言而喻了。

然而从个人角度来看,有时候离职是“忍无可忍”的结果。比如,实际工作与入职时的预期差距太大,加班过多,工作内容有些“坑”,受到领导的压制,晋升机会有限等。每个人都能给出合理的理由。

总结起来,如果之前的经历不够顺利,上一次的职业选择也不成功,那么在下一次找工作时,就需要吸取教训,仔细考虑自己需要什么、想要什么。需要思考哪种岗位、哪种工作内容更有利于个人的成长和未来发展。你可能认为这过于理想化,很多时候我们没有选择的余地,或者看不清楚。但我们应该尽力去做,而不是盲目地选择一家公司。

在此提出三点建议:

  1. 如果经济上并不紧迫,那么成长重于金钱。可能有一份工作让你少赚2K,但下一份工作能多赚10K,这个账算起来并不困难。

  2. 勇于挑战自己。有时候别人觉得你可以胜任某个岗位,而你自己认为自己承担不了,这种担心是多虑的。这其实是你快速成长的好机会。

  3. 不要带着偏见去找工作。你认为的情况未必是实际的情况,不要盲目地做出选择,很容易判断错误。

我们应该明确自己的期望和目标,并在找工作时保持客观的态度,这样才能获得更好的机会。

红利褪去

程序员需求旺盛、薪资较高的情况已经持续了近10年,这在一定程度上是互联网行业的红利。在该行业刚开始兴起时,只要有能干活的人就可以参与其中。随着互联网不断渗透到各个行业,如外卖、打车、共享和音视频等领域的出现,每个新方向都意味着新公司或大公司的新业务出现,资金涌入,需求增多,薪资也相应提高,这是自然而然的结果。

然而,随着行业红利逐渐消退,需求减少,薪资也相应下降,有些人开始感叹“世道变了”。但实际上,这应该是市场回归理性的过程。

最初进入行业的一些人,很大一部分并不真正喜欢这个职业,他们对于“改变世界”的追求早已经失去了,只成为了各种“管理系统、官网、H5页面”的搬砖者。

想一想大学时我们学了什么?C语言、Java、数据结构与算法、汇编、线性代数...而现在我们在做什么呢?调整样式、调试接口、修改bug。

那些早就应该掌握的知识,现在放在面试或者实际项目中我们觉得困难,觉得吃力,这种情况多少有些不应该。正如一句谚语所说:“浪潮退去才知道谁在裸泳。”

我们可能会因为自己没有足够优秀,而会感到羞愧。

沧海遗珠

前面我们算过一次,求职的人在持续增多,机会又在减少,这意味着一部分人暂时找不到工作成为必然。

当一个月、两个月,甚至更久找不到工作,该怎么办?

一方面,人不是刚开始就能准备得很好,发挥得很好,或者碰到认可自己的人,可以根据自己的情况和节奏、策略,持续准备,持续找,花两三个月找工作都是正常的。

另一方面,可以把自己的要求稍微降低,暂时找一份工作,不处于失业状态,有收入就不会那么焦虑,在这份工作当中,再寻求成长,待时机成熟,或许更好地选择就来了。

当然,还有最后一种选择,就是转行,这对大多数人,都是更难的选择,因为要从头开始,起点更低,爬坡难度更高,可能还要面对一定落差,是更考验心态的,不到万不得已,或者很好的机会,不宜选择。

最后

不论是新人还是老人,我们都需要正确看待自己和周围的环境,做出冷静、理性的判断。

《进化论》有云:“适者生存”。当环境改变不了,公司标准改变不了,我们唯有改变自己,来适应之。

什么时候前端会无?当浏览器不存在了,网页媒介不存在了,前端才可能往另一个工种转变,但是,到时会发生变化的又何止是前端呢?所以,稳住心态,积极面对每一天,总会迎来新的生机。

还没有使用过我们刷题网站(https://fe.ecool.fun/)或者刷题小程序的同学,如果近期准备或者正在找工作,千万不要错过,我们的题库主打无广告和更新快哦~。

老规矩,也给我们团队的辅导服务打个广告。

原文链接:https://juejin.cn/post/7204057769493708855