大家好,我是雷布斯。
今天咱们继续给大家分享一位前端大佬,对于前端行业的判断以及思考,值得大家耐心阅读。
今年的就业市场,竞争压力很大。在不少技术或者社交的平台上,也有人在渲染前端从业人员的危机,甚至使用“前端已死”的字眼,颇有“语不惊人死不休”的意味。
对一个工作多年的老鸟,可能因为浸淫行业多年,对前端岗位的发展与变化都比较了解,不会太受影响,但对新人可能就有误导了,甚至不敢入行。谨以此文,分享一些个人感受和看法。
作者背景介绍:
鉴于以上,相信这篇文会对屏幕前的你有所帮助。
唱衰一个职业不是第一次出现,比如前几年的土木,近几年的计算机。
但就互联网行业来说,最早被唱衰的是客户端,唱衰的声音甚至到了现在,但过去这么久,客户端的岗位真的没有了吗?
“衰”的表象是:岗位机会减少,面试难通过,薪资不及预期。
人才市场怨声载道:有的人投了几十份简历,却连一次面试的机会都没有,有的人是面了很多,却一个满意的offer都没有。
有人抱怨,就代表着这个职业不行了?
其实这背后,可能有 HR 也在抱怨:JD
发出去好几天,收到了很多简历,但很多都是学历不匹配,技术栈不匹配,甚至存在简历造假的情况。
那么我们应该怎么看待一个职业的发展前景?
这不应该由某个人或者某些人说了算,要看市场需求,看分工。
前端开发刚起步时,在腾讯、携程等公司出现过少量页面重构岗位,大家经常一起讨论Web标准、语义化、CSS新技巧、设计模式、提效工具等等,,大部分人从零开始入门,对基础知识的学习和研究是大家共同的兴趣和需要。页面重构职位,相当于在前端岗位的基础上,再次细分,重构人员来做切图、页面结构和样式、交互,前端开发做业务逻辑、展示逻辑。它确实在某一个时期,起到了关键作用,引起了大家对视觉稿还原、样式创意、遵循标准编程等方面的重视,也输出了一些精通这方面的人才。
但后来的情况大家都知道:Node、Angular、React/Vue、小程序、Flutter、Electron、WebAssembly...
前端的走向逐渐变成了大而全,而不是小而细。
这种情况下,你说页面重构岗位有危机,可能会慢慢不存在,需要有忧患意识,是有事实依据的,但就像上面所说,前端近几年,甚至往后几年,岗位需求都不会变,大而全的走向不会变,这样的形势下,说“已死”,未免有些滑稽。
既然不会死,为什么显得没有那么繁荣了呢,大家且继续往下看。
要说唱衰的来由,就是“找工作太难”,并不代表着前端岗位就消失了。
既然职位本身没有衰落,那为什么会出现找工作难呢?
归根结底其实就四个字:供大于求。
供:来自持续不断的新人进入,新人包括大量的应届毕业生、培训班(听说不少城市的培训班都不招前端学员了)等,但同时不会有同样规模的老人退出,所以每年活跃在外的人才数量都是纯增长,且增幅很大。
求:在大公司为了各自的护城河快速扩张,小公司大量涌现时,是需求最旺盛的时候。但近几年因为疫情和国际环境的原因,小公司大量倒闭,大公司的扩张脚部脚步放缓,这就造成了“求”大大减少。
还有一些情况让这种供求关系更加紧张:
当“供”持续增加,“求”持续减少的时候,市场上的机会就会显得很少,竞争也会格外激烈起来,很多人会有“明明觉得自己还行,就是面试过不了”的错觉。
到底为什么过不了面试?
我从事前端的年限比较长,也经历了前端行业从野蛮生长到繁荣的多个阶段。
div + css
布局,用Jquery
操作 DOM。angular
、会使用grunt
、gulp
等工具Vue/React
、RN
、Flutter
,Webpack
等框架或者工具要求越来越多,越来越新,从招聘信息到个人简历都罗列一堆名词。
就国内的环境来说,中小厂一般要求 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等职位)。
这种现象与前端行业整体年轻化、对年轻人的用工需求有关。同时,每个人都会逐渐变老,但并非每个人都发展成架构师、管理者或技术专家。如果你年纪大了,但与年轻人相比竞争优势不明显,那为什么不与年轻人竞争呢?
重点在于,尽管公司希望节省用人成本,但并不是你越便宜,公司就越想雇佣你,而是你能提供物有所值的价值,才会受到公司的青睐。
越是行业竞争激烈,越需要做好每个环节。
首先,印象非常重要。之前我们提到过简历,这是第一印象。
第二印象是笔试题(如果有的话)。负责任的面试官会精心挑选笔试题,每个问题都有其意图,考虑到题目的难度和跨度。以下是一些减分表现:
如果笔试表现不佳,第二印象也会不好,很可能没有机会进行面试,除非简历中还有其他亮点,才会考虑给予机会。但是一次面试几乎等同于最后的机会。
第三印象是谈吐和表达能力。
如果你有实力,但是无法在简历或面试中展现出来,那是非常可惜的。
很多人认为技术过关就足够了,其他不重要。技术确实非常重要,如果你能回答问题得很好,即使说话有些口吃,相信公司也不愿意放弃你。但实际上,很少有人能做到技术过关并且在表达上没有问题,所以表达能力变得非常重要。
表达能力体现在多个方面:自我介绍、项目介绍、回答知识点问题、解决难题、职业规划/期望等等。
每个环节都是加分的机会。如果你的表达清晰、自信、有深度,那么会得到加分。但如果你的表达模糊、混乱、空洞,就会减分。
印象是第一关,细节是第二关。
如果无法在大方面与他人区分开来,就需要从细节入手。以下是几个细节类别:
与众不同
技术原理
算法
参与度
如果你们团队造了一个火箭,你负责的是燃料、驾驶舱、推进器等,就是参与度高,但如果你只负责摁下最后那个开关,可以理解为“没有参与”。
只有参与度高,才有从调研、实施、解决问题,到成功上线的经验,才知道来龙去脉,否则,就算你属于那个团队,也没什么有价值的东西可继承。
攻克难点能反映什么?实现过的功能的复杂度、应对的态度、思考路径、总结沉淀。
不论水平高低,大家都会有自己的盲点,往往这种时候才真正锻炼人,使人得到提升,比较能考察出候选人的多方位素质。
不要忽视细节,不论是软素质还是技术水平,细节到位的人,工作中不要太省心!
很多人希望进入大厂,因为大厂有光环、高薪和福利等诱惑。
然而,我们必须承认大厂也有两面性:
业务细分:在大厂的一个团队工作的人,很长一段时间内可能只接触到特定类型的业务或技术项目。这限制了广度的发展,缺乏广泛的经验积累。没有广度,技术能力可能相对较弱。
工种细分:大厂中的分工更加详细,例如在前端开发领域,通常不涉及跨端开发、后端开发或运维等环节。甚至在同一个团队中,组件库和打包构建等任务都会由专门的人负责,普通的开发者很少有机会接触这些领域。
长期以来,由于工作内容的限制,与各个领域的接触面变窄,参与度降低,缺乏主动权,反而会给人一种印象,即你虽然来自某个大厂,但似乎并没有做过什么事情,也没有深入了解过相关领域。
这是一些从大厂出来的人找不到好下家的原因之一,寻找工作并不仅仅靠背景就足够。
网上流传一张趣图,形容前端开发的门槛低,技术含量低,鸡啄米瞎捣鼓就能把代码写出来。
初看时,似乎会觉得对前端职位有些冒犯,但我们不必太过敏感。事实上,前端学习确实具有一些特点:起步容易,只需要一个编辑器和一个浏览器,零基础的人只需几天的学习就能编写简单布局的页面,表面上看起来确实容易。
此外,如今前端框架的流行使得学习成本进一步降低,使用标签(div、p、span)可以轻松处理大部分情况,几乎不用操心DOM操作,使用CSS库进行样式设计,使用作用域限定实现模块化,甚至不必考虑组件的复用,不会的问题可以通过上网搜索解决...很多系统都是非前端人员自己摸索着完成的,这降低了大家对前端系统学习的必要性。
除此之外,还有另一种观点认为,在团队中前端缺乏话语权,好像与前端相关的东西都很简单,一提到技术难度,大家就会想到后端、运维等方面。
这与两个方面有关:
业务和项目类型:在某些项目中,前端可能确实只做一些简单而重复的工作,没有什么问题需要解决,也没有太多的优化空间,别人看不到前端创造出的外显价值,开发者自身也得不到锻炼。
前端驱动/赋能:据我了解,很多人每天的工作就是接收需求、按时完成任务、修复bug并上线,如此循环。除此之外,他们没有多余的思考,甚至对自己编写的代码也不太在意,只要能运行就好,优化工作嫌麻烦。
长期下来,个人的能力和素质可能会趋于平庸。因此,我们应该清醒地认识到,这种说法并不是前端简单,而是指作为一名开发者的能力相对较低。不要用个人的能力和贡献来定义整个前端领域。
程序员面试常碰到考八股,有人认为是无意义地卷,太难,面试跟撞运气一样,但就算不考这些也不代表容易,相信不少人碰到实际的编码题,场景题,同样被难倒。
最近在拜读一本小册,里面有一段话很值得参考。
我曾经面试的时候,被问过几个问题:
说说宏任务与微任务; 说说 setTimeout(..., 0)
、setImmediate
与process.nextTick()
等的顺序。我其实是记不住的,就算你现在来面试我,我仍然记不住,需要翻文档、翻源码。但那次面试我就挂了吗?其实没挂,我绕过去了。
“这些八股我没有准备,但我可以说说这些定时器或任务在 Node.js 里面是怎么实现的。至于顺序是怎么样的,无非是在事件循环里面先写哪句再写哪句罢了。”然后我就讲了具体实现,最后好像也并没有挂。
这个过程很好地体现了,程序员应该知道的是什么,不是应付面试的死记硬背,而是理解背后的设计。
值得说明的是,当你慢慢地搞懂了那些八股,知识体系越来越完善的时候,就会发现它们是环环相扣连成一片的,很多需要独立记忆的东西,理解之后就不需要记了,对工作中一些最佳实践、优化手段也能理解更深刻。
对下一份工作的期望和目标是什么?每个人更多地关注当下,但也不能只考虑眼前的情况。
看了很多简历,发现接近 90% 的人在一个公司工作的时间不超过2年。有些推荐系统甚至将有过2年以上工作经历的人归类为“工作稳定”。
为什么工作稳定会成为一个标签?这并不难理解。因为一个成功入职的人,可能需要从上百份乃至更多的简历中筛选,并经历多轮面试的比较才最终确定下来。这整个过程的成本非常高,从入职到熟悉项目、了解同事、理解业务,还需要花费几个月甚至一年的时间。如果在一年之后离职,之前大部分的努力就白费了,又得重新开始。此外,团队成员的更替也会带来团队的历史债务,例如文档缺失、代码难以理解等。因此,稳定性的重要性就不言而喻了。
然而从个人角度来看,有时候离职是“忍无可忍”的结果。比如,实际工作与入职时的预期差距太大,加班过多,工作内容有些“坑”,受到领导的压制,晋升机会有限等。每个人都能给出合理的理由。
总结起来,如果之前的经历不够顺利,上一次的职业选择也不成功,那么在下一次找工作时,就需要吸取教训,仔细考虑自己需要什么、想要什么。需要思考哪种岗位、哪种工作内容更有利于个人的成长和未来发展。你可能认为这过于理想化,很多时候我们没有选择的余地,或者看不清楚。但我们应该尽力去做,而不是盲目地选择一家公司。
在此提出三点建议:
如果经济上并不紧迫,那么成长重于金钱。可能有一份工作让你少赚2K,但下一份工作能多赚10K,这个账算起来并不困难。
勇于挑战自己。有时候别人觉得你可以胜任某个岗位,而你自己认为自己承担不了,这种担心是多虑的。这其实是你快速成长的好机会。
不要带着偏见去找工作。你认为的情况未必是实际的情况,不要盲目地做出选择,很容易判断错误。
我们应该明确自己的期望和目标,并在找工作时保持客观的态度,这样才能获得更好的机会。
程序员需求旺盛、薪资较高的情况已经持续了近10年,这在一定程度上是互联网行业的红利。在该行业刚开始兴起时,只要有能干活的人就可以参与其中。随着互联网不断渗透到各个行业,如外卖、打车、共享和音视频等领域的出现,每个新方向都意味着新公司或大公司的新业务出现,资金涌入,需求增多,薪资也相应提高,这是自然而然的结果。
然而,随着行业红利逐渐消退,需求减少,薪资也相应下降,有些人开始感叹“世道变了”。但实际上,这应该是市场回归理性的过程。
最初进入行业的一些人,很大一部分并不真正喜欢这个职业,他们对于“改变世界”的追求早已经失去了,只成为了各种“管理系统、官网、H5页面”的搬砖者。
想一想大学时我们学了什么?C语言、Java、数据结构与算法、汇编、线性代数...而现在我们在做什么呢?调整样式、调试接口、修改bug。
那些早就应该掌握的知识,现在放在面试或者实际项目中我们觉得困难,觉得吃力,这种情况多少有些不应该。正如一句谚语所说:“浪潮退去才知道谁在裸泳。”
我们可能会因为自己没有足够优秀,而会感到羞愧。
前面我们算过一次,求职的人在持续增多,机会又在减少,这意味着一部分人暂时找不到工作成为必然。
当一个月、两个月,甚至更久找不到工作,该怎么办?
一方面,人不是刚开始就能准备得很好,发挥得很好,或者碰到认可自己的人,可以根据自己的情况和节奏、策略,持续准备,持续找,花两三个月找工作都是正常的。
另一方面,可以把自己的要求稍微降低,暂时找一份工作,不处于失业状态,有收入就不会那么焦虑,在这份工作当中,再寻求成长,待时机成熟,或许更好地选择就来了。
当然,还有最后一种选择,就是转行,这对大多数人,都是更难的选择,因为要从头开始,起点更低,爬坡难度更高,可能还要面对一定落差,是更考验心态的,不到万不得已,或者很好的机会,不宜选择。
不论是新人还是老人,我们都需要正确看待自己和周围的环境,做出冷静、理性的判断。
《进化论》有云:“适者生存”。当环境改变不了,公司标准改变不了,我们唯有改变自己,来适应之。
什么时候前端会无?当浏览器不存在了,网页媒介不存在了,前端才可能往另一个工种转变,但是,到时会发生变化的又何止是前端呢?所以,稳住心态,积极面对每一天,总会迎来新的生机。
还没有使用过我们刷题网站(https://fe.ecool.fun/)或者刷题小程序的同学,如果近期准备或者正在找工作,千万不要错过,我们的题库主打无广告和更新快哦~。
老规矩,也给我们团队的辅导服务打个广告。
原文链接:https://juejin.cn/post/7204057769493708855