著作权归作者所有。商业转载请联系 Scott 获得授权,非商业转载请注明出处[务必保留全文,勿做删减]。
Scott 近两年无论是面试还是线下线上的技术分享,遇到许许多多前端同学,由于团队原因,个人原因,职业成长,技术方向,甚至家庭等等原因,在理想国与现实之间,在放弃与坚守之间,摇摆不停,心酸硬扛,大家可以找我聊聊南聊聊北,对工程师的宿命有更多的了解,有更多的看见与听见,Scott 微信: codingdream。 本系列共 15+ 篇,此为第七篇走心篇,近期接触太多冲动离职的小伙伴,提前发一篇走走心,大家看完后点下关注,再转发下朋友圈我就心满意足了。
正文开始
1 万个小时和 3 万行代码,会成为工作前 4 年非常核心的量化指标,把握住这段周期,可以在职场建立非常有竞争力的择业优势,更关键的是自己真正的潜能会被挖掘出来,继而有机会成为那个心目中的大牛,而把握二字,知易行难,背后的逻辑就是不断的走出舒适区不断的突破困境区。
我们不必纠结前几年的工作,是花了 8000 个小时,还是手写了 2 万行代码,如果是重复性的劳动就算是 4 万个小时 8 万行代码也没有太多意义,而 1 万个小时和 3 万行代码是我本人比较认同的一个经验值,在前几年沉浸式的花费上万个小时在技术的思考和实践上,无论是什么框架什么业务都能用更高的标准要求自己最终沉淀几万行代码的编程经验,那么大概率你的技术能力会处在中上游,所以我往往给新人的建议就是找活儿干,抢活儿干。
上一篇文章,我们讨论了学习方法:如何在工作内外获得持续的技术成长,针对的受众也是工作 2~4 年的前端,这个群体最容易出心理问题,很大一部分原因就在于还没有建立更成熟的自我认知,也没有完成从学生到社会人的身份转变,就像与 Scott 有深度私聊的这些同学也多在工作的头几年:
- 聊聊 1 – 3 年前端走出成长的焦虑
- 聊聊 2 – 1 年前端小生之跳槽困惑
- 聊聊 3 – 4 年高级前端如何走出舒适区
- …
- 聊聊 8 – 2 年前端频繁跳槽怎么破
- 聊聊 9 – 2 年前端面对职业危险期
- …
在认知不够成熟的时候,很容易陷入所谓的困境,或者顺风顺水的停滞搁浅在舒适区,这就是我们这一篇想要重点探讨的,跟上一篇的技术成长有所不同,这一篇我们更关注自我认知(心理建设、价值设定)和困境突围,首先我们从困境的定义开始,舒适区则放到最后。
困境与困难到底是什么
很多时候,我们对于困境的描述,往往像下面这些:
- 计算机基础不扎实甚至是完全没有,比如算法、数据结构、网络相关理论等等
- JS 基础能力不行,心里没底又觉得没有力气和方向迈出去
- 一年经验用三年,对于工作中用到的技术没有去了解内部机制
- 没有考虑如何把代码写的更好,业务中到处是胶水代码
- 工作环境导致的身边没有大牛,没有样板可以模仿、学习
- 空有想法没有行动,导致收集一堆资料却从未去看过
- 我们内部用的工具总是很老套。没有人想改变什么,没有野心,没有梦想,像一架老马车,大家都在凑合
等等不计其数的早年职业困惑,碎片化的焦虑让我们彻夜难眠,这些本质上是困难而非困境,我们定义为困境后,再从社区从他人这里获得的,也经常是相对碎片化的建议,比如:
- 前端虽然工作中用不了数据结构算法等等这些基础知识,但是这些知识决定了一个人的天花板高度,并且也是大厂常常考察的一点。当然学习这些基础并不能一蹴而就,只能在平时业余时间有意识的去补齐这部分的短板。
- 前端知识点确实很多很杂,因为并没有很好地阅读一些基础书籍,高程、你不知道的 JS、 JS 精粹这些书籍读完一定能打好一个不错的 JS 基础。
- 工作年限越长,公司对于开发者的要求就会越高。这时候公司需求的员工是一个能写代码、能解决团队成员遇到的问题、能带人的这样一个工程师。了解技术的内部机制才能让自己不被淘汰。
- 平时要有意识的去重构自己的代码,抽离可以复用的功能,这样做通常都能提高之后的开发效率。但是大家可能并不知道如何去优化自己的代码,一是可以学习团队中大牛的代码,看他是如何实现的;二是学习业内顶尖库的代码,看看人家是如何设计的。
- 收集了一堆资料就当看过了,对于存在这样情况的前端工程师,可以选择想学什么再去收集相关资料,然后立马设定 TodoList 督促自己学习。
看过听过之后,可能有一两条我们坚持下去了,而其他都慢慢丢在了脑后,这背后的一个很大的原因在于,我们往往不是缺少目标,甚至也不缺驱动的原动力,我们缺乏的是对自己职业属性以及困境区分于困难的正确认知,所以认知一旦出了问题,困境就随之而来,无论它是事实上的外界物理环境造成的,还是自己内心期望与惨淡现实的落差造成,这都会持续的伤害着我们的职业成长路线,而此时困境就是我们认知的边界尚未突破的尴尬局面,在这个局面下,一切皆困境。
哪些关键认知需要建立
一个人立足于世,不论男女,都有这几个问题需要自我思辨最终弄清楚:
- 社会属性,也即我的社会价值,我在中国(海外),当前阶段(不论是游学,实习,还是刚工作),我存在社会的价值是什么?无论从事哪个行业,无论内心是多懒散,我想我们都向往积极的活着,活着社会上,不成为社会的蛀虫,就一定有所劳动,这些劳动就是我可以为社会提供的价值,也即我存在的意义,这也是我当前从属行业它的价值。
- 家庭属性,也即我的家庭角色,无论我是孑然一身,还是生活在完整完美的家族关系中,无论我是一穷二白,还是家产非常殷实,我的多重身份(孙子、儿女、父母、哥哥姐姐弟弟妹妹…)就决定了,要为家人带去保障,为家人带来幸福与安稳,所有这一切都是我奋斗的原动力,这一切的奋斗一定不是通过躺着实现,一定需要我的大脑和双手来让血脉的存续,来让亲人的期待都不落空。
- 群体属性,也即我的社会关系,无论多宅,我们都是社会化的群居动物,团队合作和群体沟通始终贯穿我们终生,通过合作和沟通,我们具备了生存的外在能力,也具备了通过他人观察自己的机会,而所有的合作和沟通都是建立在资源的前提上,也就是你本身具备社交价值,无论是作为主导关系的强势主宰,还是仅仅作为倾听他人负能量的收集桶,这些价值每一年都会被不同的群体反复检验,这种检验会让我们明确知道身边聚拢越来越多优秀的人,还是寥寥无几的平层社交,通过这种比较让我们最终对自己的价值有更清楚的判定。
- 自我属性,也即我的内心所向,是当个出家人,是当个坦克兵,是当个店老板,还是工程师,这一切社会化的工种行当,都取决于我的价值选择,我定义自己成为什么样的人,内心深处的价值是导向哪里,在不完美的世界中有那么一些美好,它们浮现到我的心中分别是哪些坚守与放弃,这都影响到我的自我定位。
从社会、家庭、群体到自己,每个人的情况都不尽相同,大白话就是我们的三观不同,不同的三观驱动下,我们去往的方向和路径就可能截然不同,回归到工程师,我复述下我过往 8 年的认知过程,给大家一点点参考:
生存阶段
关键词是危机感,发生我工作的前 2 年,怎么夯实自己的技术,让自己在团队有立足之地,这花费了我大量的精力也给我带来了无尽的深夜烦恼,我当时的做法是疯狂的写代码,业余时间疯狂的接单做网站,也由于各种自卑不敢到社区大大方方的社交,大大方方的找前辈请教,没有任何指导的前提下,我凭着一股子热情,通过压榨自己的时间来慢慢积累代码时间和代码量,逐步克服了技术的生存危机。
如果让我重新来过,我依然会这般如此的压榨时间,但我不会再疯狂的用满业余时间做外包,而是用来看书学习,总结和整理,同时多留一些时间跟行业的前辈交流,提前做第三第四年的职业规划。
诱惑阶段
关键词是满足感,发生在我工作的第 3 年,工作轻车熟路的我开始飘飘然,总是沉不下心,很容易受外界干扰,同行的薪资待遇,同行做的事情,其他公司在做的业务,所有这些都像雨水一样不断的弄湿我的脸庞,我需要不断的用衣袖擦干它们,我渴望做更有成就感的事情,我渴望拿到更高的待遇,每一天的我都度日如年,针对这种情况我当时是找了前辈沟通,借助他们对我技术和职场成熟度的打击,我逐渐冷静下来,继续沉淀自己的技术深度。
如果让我重新来过,我会更理性的看待手头的工作和外面的机会,更深刻的认识薪资-能力-职业发展它们的长短期关系,更早的找更多技术前辈看他们的成长经历,帮自己仔仔细细规划技术体系的成长路线,而不是乱花迷人眼,荒废了大量时光在诱惑的对抗上。
证明阶段
关键词是饥饿感,经过第 3 年神魂颠倒和冷静后,我自我感觉良好,有更大的野心和成功的渴望,第 4 ~ 6 年我进入到证明自我价值的阶段中,这个阶段持续比较久,虽然中间有离职创业,但内核没变,我在找寻能让自己人生价值最大化的赛道,我试图着去证明一些我当时说不太清楚的东西,虽然对于短期薪资福利我看的更为平淡了,对于非技术的观察力和决断力我更为看重,对于更长远的技术投资和回报变现我更为看重,但依然没经历住时间的考验,对于创业的舍近求远和急于求成,而让自己饥不择食。
如果让我重新来做,我依然会选择离职创业,但我不会那么冲动的来做这件事,我会跟我的主管及主管的主管好好聊聊我的职业困惑,我会和社会上的创业团队多多接触,正负面我都会关注,不仅要看事情,更要观人心,人事双修,而不是一腔热血抱着技术二字去改变世界。
实现阶段
关键词是成就感,经历过创业的挫败,我对于自己的能力和理想有了更准确的判断,我开始从带创业公司的第一个团队到带小菜的第二个团队,从带 6 个人到现在快 20 个人,依然在创业依然在带团队,但初心和驱动力已完全不同,我更希望和一群人(更大的一群人)拿到一次次的成功,也是在这个阶段,我找到了答案。
所谓这个答案,是我某一天顿悟,驱动我做几乎所有事情的原动力是:独特、利他、团队和成就感,这就是我工作 8 年才第一次正确的挖出来,也是第一次的认识到自己内心深处的价值取向:
- 我希望自己自内向外所参与的事情,所打造的产品,所创造的价值,所塑造的形象都是独特的与众不同的充满创意的,一切平庸的重复的机械的守旧的一切不 Cool 的我都很难去喜欢,我都想打破而重立,我都想打破陈规推陈出新,我都想去挑战一下,这就是独特与我的意义。
- 我希望自己所做的事情都是对家庭他人对社会有正向的价值的,就像这本小册一样,我以分享的形式想要把整个团队的想法和沉淀给到各位,来帮各位早日走到正确的赛道上,一切对他人不利的,造成伤害的,让人无法健康成长的,不管是规矩还是制度还是潜规则,都违背我的内心,这就是利他与我的意义。
- 我希望自己不再是单枪匹马,不再是英雄主义,我应该有一群人一起开心一起哭,我的成功不再是靠自己,而是让团队的每一个人都能因我更开心更成功,团队不再局限是公司我带的团队,也泛指社会上我参于的任何一个聚会任何一次群体活动,都能因为我的参与变得更融洽更团结更有正能量,这就是团队在我内心深处的意义。
- 我希望所做的事情都能有好的结果,都能是影响到其他人影响到更大范围,这会让我收获一种愉悦的感觉,那就是成就感,这种成就感是我通过前面的独特、利他和团队都能实现进而升华后的一个新的层次,这种对成就感的渴望会成为我非常核心的驱动力。
上面谈了我的认知历程,我相信看到此处一定有同学受到启发,也会顿悟自己的使命和内心所向,如果这个实现阶段让我重新来过,我会希望自己可以再早一些再早一些好好认识下自己,好好了解下自己,这 8 年的职业经历带给我的这么多感受,而我总是忽略它们,总以为答案在外面,其实答案始终在内心深处,只是自己从未站在认知的高度,一次次的剖析自己拷问自己,一定要靠这么多年的折腾才能某一天醒悟,我不后悔这一路历程,我只是可惜这来的晚了一些,更早一点越早一些,我想我会收获更多的朋友,更多的成长和成就感。
下一个阶段是哪里,我还不清楚,但下一个阶段的关键词,我想基本不会变了,那就是:独特、利他、团队、成就感,这是我的内心价值,对于认知建立这样的里程碑,你准备好拷问自己了么?经过拷问后获得对自己最真实的了解、理解和认同后,再来还原到下面具体困境解法里,你的答案才会坚实很多,也会更容易做出对的抉择。
脱离困境并非只有离职
当认知都清晰之后,再来看这个命题,会发现似乎所有的困境不再是困境,仅仅是生活和工作的一个状态,而困扰我们往往只是困难,比如不知道怎么夯实技术基础,不是科班选手不知道怎么学习,团队没有学习氛围怎么破…而困境是什么,困境是我们尽所有能力去克服困难后,依然陷在泥淖中无法挣脱,而如果我们并没有倾尽全力去克服所有的困难之前,怎么可以把困难视为是困境呢?
我们重点聊聊一个常见的困境,就是择业切换之前,渴望离职的时候渴望摆脱的时候,这对于超过 10 年长度的职业生涯来说,要不要走,去哪里,它是事实存在的困境。
“做事不开心、钱给的不够” 这是行业里最流行的对于离职的原因分析,也的确是大实话,因为我这三四年线上线下面试以及聊过的几百个童鞋里面,是要有一小半把离职原因归咎于公司的变态制度、不人性化、没有弹性、没有技术成长空间以及薪资过低等等原因,在这样的环境里面的确是做事很不开心,回报也远远不够,我会鼓励他们早日脱离苦海,切换一家更适合成长的公司。
离职一定是一条最快路径的可选项,因为整个从行业、公司文化、业务方向、职能要求、团队配置以及老板方方面面都经历一次刷新,从前的困境烟消云散。但是脱离了苦海,再入的一定大大好过从前么?答案也是未必,离职是一把双刃剑,我身边好多个朋友当初忍受不了阿里内部大公司的一些毛病,会议多乱甩锅工程师氛围政治化等等,出来干了几年,好多个最后又回去了,因为发现外面溜了一圈,每个公司都有它的问题,有的问题比阿里更严重,有的则是前景非常灰暗,当然也有一些同学跳槽的很成功,只是比例确实非常非常小,这就是择业择公司的智慧和运气了,我们前面有一篇专门讨论如何挑选到成长空间更好的公司,大家可以回头去看。
每个公司都充满了委屈、不平、揪心甚至困惑,做这样的选择一定要慎之又慎,最佳的离职状态是职业到了天花板,公司已经不能再给你更大的舞台和空间,技术上管理上不能再上一台阶,此时需要切换一个新赛道从 0 开始,最差的离职状态就是不满意组织内的人和事,比较情绪化的不开心一走了之。
放弃是最容易做出的决定,而坚持无论在哪儿都是最难的选择,这也是我对一个在吉利车企做事的前端提出的建议:这个组织让你不开心,那么你可以用尽各种办法,线上线下的制度性的社交性的策略和办法,找各种人找各种资源来推动组织发生更好的变化,而不是静等着组织自我优化来满足你的心境,组织不是组织,公司亦不是公司,里面的每一个人所形成的整个整体才是你不开心的,但你也是参与者之一,有权利去优化它,通过这个过程你也能练就一身为人处世以及组织成长和管理的本领,这样的本领到哪里都适用。
而对于另外一个同学,我则是完全不同的建议,她说:今年刚刚 25 岁,女生,工作不到 3 年,自己内心想在技术上在好好深造锤炼,对前端工程化的构建,还有对技术的锤炼的深度及广度,很想去突破一下,目前的整个团队氛围不错,领导很好,但是整个研发团队以后端为主,部门前端只有 2 个,技术老板也不懂前端,框架一团糟,前端也没有经验特别丰富的人,大家也没有对技术的深度拓展及创新,很多技术都是我在推进,个人技术上得不到很好的成长,落地比较难,要不要换一个更成熟的前端团队来丰富自己的技术能力。我则是建议她可以大胆切换去更成熟有架构能力的团队,去迎接技术的下一个成长期,最后送她一句话:一切正向变化都始于知行合一的 All in,认定既坚定,坚定才能坚持,加油!
关于离职聊得比较多,主要是确实接触了好多好多离职中的同学,几乎都处于所谓困境中,但原因各不相同,并且大部分同学其实没有想清楚这个问题,更多面临的是困难,眼前的切换属于是冲动决定,甚至有的跳槽频率很高很高,后期严重伤害了职业生涯,而成功切换的总是很少数,非常可惜。
舒适区才是最大的困境
我们看抖音,会发现有些人的技术特别娴熟,比如切菜的,比如为快递打包的,工程师的编程技能也一样,如果长时间在某一块重复性训练的话,也会唯手熟尔,比如一个常年做活动页面的同学,比如一个常年做后台表单页面的同学,这些容易重复性的领域很容易造成一种错觉,那就是这块我熟能生巧总是很快搞定,然而却不知不觉的进入到了一个舒适区,有时候会自己意识到,有时候意识不到,带来的后果是往往技术的成长停滞不前,更可怕的是在不知情的情况下度过了多年时光,
1 个月前我遇到了两个工作都超过 3 年的前端同学,他们的薪资是 5k,他们都在做移动端推广的活动页面,非常熟练,其中一个意识到严重性另外一个只是觉得工资低,但工作很悠闲反而觉得很舒服,最后对他们的建议是,立刻马上切换工作内容,并且赌上自己所有的时间来学习前端知识,包括框架的使用,如果有可能再从团队中找一些可以写脚手架可以做组件可以开发工具的场景,让自己的重复性工作得到解放,或者干脆建议公司招人来取代自己做这些简单的工作,逼自己走出舒适区尽快追赶更行业优秀前端的巨大差距。
除了写代码,做管理也会遇到舒适区,同样一个带团队的前端同学工作 4 年,他毕业后就顺风顺水,自驱意识也很强,很快成为团队的技术骨干,并且带起来一个 10 人的前端团队,但整个公司的业务模式决定了所有项目的复杂度都不是很高,所以即便进行深度的工具基建,实际上缺少应用的场景,对业务产生的价值也不大,加上业务挑战也不高,同时公司付给他非常高的薪水,他就被动主动的进入到舒适区,出来去一些公司面试拿到 Offer 后,几乎所有公司都给不到他目前的薪水,还会打折很多,我对他的建议是:考虑跳槽去一家更有挑战性的公司,哪怕是比当前薪资低出一个数量级也可以,因为他已经成为团队甚至公司的天花板,公司用高薪不仅购买了他的时间,也购买了他的成长空间,虽然当下他公司很器重他,但一旦未来出来公司,能力却再次会落后于行业平均水平,这对于这样一位高潜力本可以成为大牛的同学是非常危险的阶段,除了切换,也可以选择留下,跟公司好好谈谈,从产品、技术、业务角度看有没有可能从技术侧驱动更多的创新,从而为自己团队带来更大的挑战,也就是主动求变,也可以为自己招前端老板来带领自己和团队走出舒适地带,不能因为眼前的利益而牺牲了未来更大的回报。
所以面对困境未必要离开,处于舒适区也未必要留下,每一个人处于这种状态下,都是很痛苦,如何把痛苦周期缩短,如果找到突破点求变或者坚持,其实都取决于我们对于自己的判断,以及对行业的判断,所有的判断加在一起,再来对每一个问题标注上优先等级,注释上自己力所能及的事项,再列出来推进解决它的详细计划,最终能否迈出去到一个更好的阶段,就取决于执行力了,说到执行力,再送给各位几个关键词来面对所有的人生困境:脑力、体力、心力、执行力,脑力是分析是智慧是取舍是规划,体力是坚持是强度是执行力度,心力是耐力是决断力是忍受向前的抗击打能力,执行力是使命必达说到做到破釜沉舟的落地程度,这一切都需要你足够主动,足够负责,才能点爆奇迹。
最后,再放一个童鞋的聊天记录,大家可以模拟下,如果主角换做是自己,遇到这样的困惑,自己会怎么做选择:
童鞋:Scott 老师,看了你的文章深有同感,我现在就面临这个阶段。我毕业两年,Code 两年多,在上一家公司呆了一年多,最近刚换了工作。我很幸运,在上一家公司遇到一个工作经验十分丰富的 Leader,他对我帮助非常大,所以我在上一家公司的成长非常大。但是我在老东家经常觉得压力大,来自公司的压力以及整个行业环境的压力使我想到了换一个环境,然后我非常顺利的跳槽了。但是我最近却依然十分迷茫,我意识到自己貌似并不热爱这份工作,这个职业,所以经常感到力不从心。不知道自己到底要不要趁现在还算年轻,换个行业,还是坚持初心
Scott: 你有想好换行业,是换哪个行业么,有没有哪个行业是你内心非常喜欢的
童鞋:对,这就是我目前遇到的问题,朋友那里有一个机会可以去做培训讲师。但是朋友也问我,万一你也不喜欢这个工作怎么办呢?我自己也不能准确的回答这个问题,我想知道是不是也有很多人跟我一样,也是因为生存而选择了这个行业?而不是真的喜欢呢?
Scott:如果你非常喜欢培训讲师,可以考虑,但是要清楚,如果 All in 讲师,你的技术生涯基本就 over 了,讲师是只输出,少输入,与技术会越离越远,最终你不会被技术所淘汰,而是会被讲师中的优秀新讲师所淘汰
童鞋:对的,这也是我迷茫的地方,自己又不甘心就这么放弃
Scott:如果你做讲师,也不应该是现在去做,应该再多沉淀几年,有了更深厚的技术认知,再来做,会好很多
童鞋:那老师你觉得喜欢和不喜欢重要吗
Scott:对于养家糊口不重要,都是赚钱,对于自我价值的找寻和实现很重要,因为关乎开心,要知道,很多程序员并不喜欢程序,但很擅长程序,很多人不喜欢手上的工作,但很擅长工作,把它做好,跟对它有多大兴趣,其实没有必然关系
童鞋:你说得太对了,每天为了工作,不断的让自己学习,就会经常反思一个问题,我不喜欢它,却为了它那么努力,我活着的意义是什么?
Scott:没有明确的爱好笃定之前,把拿到手里的做到极致,其实是最踏实的答案,人生路很长,真理慢慢熬,不用急于一时
童鞋:我明白了,所以做好当下就好了,等阅历够了,自我认识也会清晰很多,那老师在你写代码的经历中,你曾经有想过放弃的时候吗?
Scott:很多次,但最后都咬牙过来,反而越来越爱
童鞋:那我就放心了,谢谢老师,感觉宽心了很多..
这样的对话,几乎就是我的日常,我们工作头今年,其实遇到的都是类似的问题,起因就在于对自己的真实认知和判断尚不成熟,所以要戒骄戒躁,做好当下,多做总结多思考。
最最后,本文作为预热篇,旨在针对如下话题为大家输出:
把团队蛮荒到自动化运维的从 0 到 1 成长历程总结输出给社区,帮助更多的小团队少走弯路 以一种可被量化的方式汇聚小菜前端的困惑、沉淀与方法路径,给团队带来更多创作成就感 从更多视角侧切进入团队管理/技术演进/个人成长的过程中,探讨工程师团队的价值最大化
如果大家感兴趣,我们小菜前端团队,会集体智慧共同凝聚,一起撰写并推出一本偏前端职业生涯、技术成长和团队成长的小册,回馈给大家,大家在文后记得留言评论和提需求哦,还有别忘了加 Scott 微信哈: codingdream。