Duan Hong +

前端综合症疗法

TL;DR

原文- Not An Imposter: Fighting Front-End Fatigue

Front-end fatigue

对于前端开发而言,入门需要学习大量知识,很容易造成初学者的疲劳。同样,对于老司机而言,技术和框架层出不穷,不学就要落后的态势,加上选择的成本,也就呵呵了。。。 姑且译作前端综合症好了

最近和一个后端的朋友谈到,工作之外我在代码和学习上也投入了很多时间。他给我看了一段 Uncle Bob 的《 Clean Code 》,将乐器演奏家为某个演出准备的时间与开发者实现某项功能的投入的时间作对比。

很喜欢这个类比,但对书中的观点并不完全赞同,书中的描述的思考方式很容易造成精神力的疲劳。每天投入大量时间,反复练习,对于提高技能固然有效,但持续性难以为继。

同样,前端综合症普遍存在。我看到过很多关于 JavaScript 学习疲劳的文章,这种现象普遍存在,并不限定于 JS 本身。

需要说明的是,这里并不是就前端演变的吐槽,相反,我很喜欢日新月异的技术。同样的,我每每为技术发展的浪潮之势而激动不已。

就目前而言,它是把双刃剑。

首先,对于一个前端开发者来说,你需要掌握以下技能:

在以上基础上,对下面的也要有所了解

其次。我们的日常的工作不会覆盖上述所有知识,也没有太多时间去深入研究和学习。那又该如何做才能掌握以上技能呢?

what is pwa

Hearing terms such as “Progressive Web Apps” can be quite daunting to developers’ ears. New techniques and technologies lead to the feeling of fatigue — front-end fatigue. (Image credit)

你可能会这么做:

对于技术的布道者,可能是这样子的:

最近,我发现自己的精力被分成了三块, 一边写代码,一边带上耳机听着关于代码上的讨论,同时不忘在 Slack 上聊着代码。我对此已经受够了,每一个毛孔都充斥着代码,精疲力竭。

那几乎是我的极限了,大家应该也会有类似的经历吧。人生中最重要的,就是 工作、家庭、朋友,喜好。工作时常把我们搞得精疲力尽,痛苦不堪,以至于去怀疑当初的职业选择。

一些同行表示要结束这种状态,去换一种能够在下午5点钟下班的工作。我倒觉得,只有少数人对此工作感兴趣,当你抛开一切去做个房产中介的时候,做好的房产中介仍然会成为你努力的方向。而这就需要你在空闲时间从房产中介的集会中打听消息,研究房产的价格走势。几个月前,我曾就职于一家金融公司,那段时间,为了能在所选领域做到最好,经常熬夜补习金融知识。

这里并没有捷径可循,很多专业都需要在工作之外投入大量精力和时间去学习。也许对于前端研发来说,技术变动的确实太快,以致于让我们觉得自己是在苦苦追寻一个不停变动的目标。就像几乎我每天都会收到一封标的 “XYZ” 技术已死的邮件,但我确信它并不是真的,要是那样的话,技术不早该消失了吗?

现在前端的生态正处于活跃期,会持续的变化下去,而这并不是坏事。就个人而言,我很享受学习新的技能带来乐趣,但有时也会为此感到窘迫。

扯了这么半天,下面的才是我如何让自己摆脱前端综合症的:

都是这样子

我所熟悉的开发者中,无论在职的还是已经转行的,都是比较聪明的那种。同样的,他们也为长长的有待学习的技术清单,而不知所措。也许有那么一些人掌握了技能清单的全部,但绝大多数还是要面对此问题。

我们很依赖 Google 和 StackOverFlow 去帮我们解决工作中遇到的一些问题。真的,大家都是这样子。

某些方面的不精通并不意味着你不是一个好的开发者,懂得这一点很重要。

是的,网红也能扬名了。

没有人了解所有的一切,Titter 上关注的摇滚明星也只是有限的几个领域非常非常优秀,因而被你我所了解。其他方面呢,他们和我们是一样的,仅此而已。

都曾被忽悠

我所认知的几个很牛的前端开发者说,如果招聘者不熟悉应聘要求中的全部技能,就贸然贴出,是对求职者的一种误导,他们也不去再去申请该职位了。其中一个是这么说的:

90% of the JDs I see make me think “Argh, I’m so behind!” In fact, it bothers me so much, that I’m thinking about staying in my current role, and just trying to push for more money simply because I feel like I’ve “gotten away with it” here.

看到招聘要求,90% 的开发者都觉得自己懂得还是太少了。实际上,我也有此感受,现在我决定留下来,再赚点钱,毕竟我还有很多要学的。

而实际上,那些招聘描述就像是在挂羊皮卖狗肉。招聘描述和真实需求之间到底有多大差异呢?一位叫 Brad 的网友制作了下面这幅图:

job edited

招聘广告详解查看大图 作者

铭记一点,一切都会好起来的。每项工作开始阶段,适应起来可能异常艰难,但最终你会慢慢适应新的工作流程和工具的,一切都会慢慢好起来的。

不要拒绝工作中的陌生领域,学习一种新技能最好的方式,就是在工作中反复使用它。

如果你觉得自己已经中招,那说明你是一个相当好的开发者了,否则你都不会意识到这个问题的存在。

夯实自己的基础

牢固的基础知识才能经得起时间的考验,不会再日新月异的技术潮流中迷失自我。

一位好朋友的话,我至今印象深刻:

“Focus on the fundamentals has always been my mantra. If you can build good sh!t and solve problems then that’s all that matters, how you solve them (the tools) has and will always change”

牢固的基础知识是技能的精髓,它赋予你创造工具,解决问题的能力,这才是至关重要的,解决问题的工具会一直变化下去,但万变不离其宗。

比如,当 React 和 ES6 浪潮席卷而来的时候,我把学习的中心放到了 ES6 语言本身,而非框架本身。如果那天 React 大势已去,我在 ES6 中学到的 JS 知识也不会随之消失。许多 ES6 中的特性你都可以在 Chrome 的控制台里把玩,就让繁琐 Babel 的依赖配置见鬼去吧 。。。

不需要掌握一切

这一点非常重要。我并不认为那些新的框架、工具库和模块在扼杀我们,相反,去学习和研究他们是我们自己的执念。

学习过程中,重要的一点,集中于当前的关注点。我现在正在研究 ES6 中的函数式编程。

虽然学习清单中已经积攒了很多任务,但我一直尝试着不被它所扰。举例来说,首先我会选一些当前有可能涉及到的知识,把玩一下 Polymer, 深入学习下最新的 CSS 技能,比如 Grid 布局。不要一开始就开展太多类目的学习,那样你我都很难记住。同样的,一些知识并不会永远沉积,遇到的时候再去学也为时不晚。

不要冲动去尝试,要理解和掌握当前所用的知识点。同样,不要再某个问题上死磕到底。

如果你也像我这样,学习清单肯定也会越来越长,必要的时候,去剔除一些内容。并不是说有的条目都值得我们去消耗时间,自己要尝试去甄别哪些有学习的价值,哪些将在不久后没落沉寂。从长远考虑,学习设计模式和架构的知识,比追赶当前的潮流的框架更有价值。不久之后,你会慢慢追上来的。

大部分公司没有使用最前沿的技术

互联网的快速发展,催生了很多新的东西,但是,这些东西在商业中的普及,仍需要好长一段时间。大部分公司对此保持观望态度,等待相关领域的正向反馈。

Angular 诞生于 6 年前,三年后,我所在的一个初创公司才开始尝试它。React 也有 3 年历史了,我现在所在的公司在圣诞节前才开始使用它。这期间也诞生和埋没了很多其他的框架。如果都掌握的话,呵呵,是不是已经疯掉了啊

在 CSS 领域,Flexbox 2010 年就已经颁布了 - 是在 6 年前哦 !但是呢,并不是所有浏览器都支持。年初的时候,我们把 FlexBox 用到了线上环境,但它仍没有被到处使用。

我的观点就是,没必要去掌握所有的知识,虽然技术演变日新月异,但它的普及要慢很多。你不需要时刻紧跟它的脚步,保持关注就够了。

懂的越多,不懂的也越多

这是很正常的。刚开始时,接触的少,不懂的也少。当你掌握了某些东西的时候,觉得自己真是个天才。慢慢的,随着学习的深入,这种幻觉逐渐破灭,你开始领悟到,自己掌握的只是冰山一角而已。

随着经验的积累,你会慢慢深入到一些空白的领域。这个时候,你就要接受这一点(越深入,不懂的就越多),而不要深陷其中。总之,跟着感觉走。既然选择了前端这个职业,就不要想着坑老本了。

生活要丰富起来

很容易产生这种感觉,我落后太多了,我要时刻不停的学习。这样下去的话,你迟早要崩溃的。留出一点时间去丰富自己的其他技能,和你的 boss 协商下,这样才有时间去做自己喜欢做的事。

我的很多编码思路是在健身房里想到的。锻炼对大脑的重要性等同于身体健康。每天进行 20 - 30 分钟的体育运动,可以让你保持大脑的清醒,消除倦怠情绪。

花些时间陪陪家人和朋友,不要总聊工作的事。

开发者的优势

不要为工作的事担心。当前,我们整处于一个有利的机遇,市场对前端的需求远大于开发者的数量。我不知道这中状况会持续多久,还是好好把握现在吧!

你不需要掌握所有的一切就能找到工作。据我了解,99% 的面试者都被它给骗了 😂

遇到最坏的情况,记住,历史代码中也残留着金子。总有些公司还在老旧代码中苦苦挣扎,而这正式那些怀旧程序员的机会。

总结

希望上面的建议能缓解你的职业中的困惑。最坏的情况就是,你到达了自己的极限,精疲力竭。但,过去的那种不管一切,低头就学的激情一去不复返了。

原文链接


第二次翻译的尝试,过程很痛苦,结果很精彩。

结合自己几年的工作经历,正如作者所说的那样,职业疲劳正逐渐席卷而来。过去的已经过去,不再回来。

Enjoy ~

Wanna say something ?

Blog

Friends