8 年 React 开发者的技术困境与突破思路
我从 2016 年 10 月就开始用 React 来替代传统 jQuery 进行网页应用开发。
作为一个从事 React 开发超过 8 年的程序员,我最近遇到了前所未有的困境:我失业了,我是我们技术组第一个被裁掉的员工,也是公司最早被裁掉的一批,被裁员让我意识到就业市场上可能没有企业会要当前状态的我了。正如我想的那样,我在各大招聘平台投递简历数十次以及向十来个企业招聘邮箱发送求职信,都被拒了,大部分甚至没有回应。
前公司给我开出的薪资是 15K ,这个薪资和我 2016 年 10 月入职的那家公司完全一样,我接受了,因为没有找到更好的。当前状态的我是怎样的呢?首先我屏蔽掉了加班严重的企业,其次自身技术水平处于中级偏初级的水平,更重要的是实际技术水平与 8 年开发经验严重不匹配。
回顾以往的面试,经常会出现问题答不上来,一个东西自己用过了,知道怎么用,但是无法回答它的原理;以往做过的项目,实现的技术细节,也答不上来了,遗忘的差不多;明明自己解决过不少复杂的问题,但是被问到时,大脑却找不到它们。过去的工作中,我很依赖于社区的各种包,如果要解决一个问题,而找不到包的话,我会焦虑,甚至开发进度会陷入停滞,我知道自己需要满足什么技术指标的包,但是自己却不愿意去造,一方面担心造得有缺陷,另一方面担心影响产品开发进度。
过去的工作,我解决了公司的问题,匹配的上当时的薪资报酬。但是我没有成长,因为解决的那些问题本身是不能让自己的技术水平提升的。那些呆过的公司,本身也没有得到进一步发展,它需要的技术也没有提出更高的要求。从结果来看,我就是在没有前景的几家公司里呆了 8 年,2, 3 年左右的经验重复用了 8 年。
为什么会陷入这种困境呢?
从工作习惯来看,我缺乏整理,十年来我记录了数千零碎的开发笔记,但是我极少去整理。还有工作中习惯调包,自己从不尝试去造包,一旦遇到无包可用的局面,工作就陷入停滞,调包这个习惯有好又坏,坏的一面如之前所述,好的一面是使用社区的包让工作中的问题解决的更快。我感觉自己就像个组装厂,没有核心科技,全是缝合各种供应商。
从个人选择来看,我不考虑要经常加班的企业,更不用说 996 的企业。我选择了安逸的工作环境,选择了小公司,满足于解决当前问题,遇到技术难题时,我的第一反应是绕开,总想着用现有的那点见底的知识与技术去解决问题,实在解决不了,就换个问题。平时不愿意去深入理解某个技术,不愿意去阅读源码。
似乎可以用四个字概括我陷入这个困境的原因,“我偷懒了”。往里再挖掘一点,"技术是为业务服务的,业务需要时再学习相关技术" 和 "只是打份工,不值得拼命" 这两个理念深深的影响我的行为。这个就业市场狠狠打着我的脸,你若不拼命,连份工都没得打。
客观地看,我的技术困境有其必然性,但也不是一无是处。隐隐约约中我看到了另一个方向,我可以扬长避短,我虽不擅长技术细节,不擅长造包,但是擅长组装缝合。我可以自己去发掘用户需求,为用户实现软件产品,砍掉产品经理这个中间商,调用各种技术供应商的包去实现软件,成为一个 Product Builder。
不再追求往技术深度方向发展,成为技术专家,或者往技术管理方向发展,成为管理,抑或者加入牛马大军,成为 996 打工人。因为我的年龄已经大了,我没有机会再成为技术专家或管理者,而 996 打工人是我不愿意的。
于是乎,我就只有一条路可走了。正如我博客首页写的内容:
🌱 I’m currently Building: 🔒 An Ethereum wallet built on Safe Smart Account, integrating Apple Secure Enclave technology to enhance user experience and security.
🧠 A personal knowledge card library that turns spare moments into learning opportunities, using spaced repetition to help you retain more with less effort.
对的,我要用一年时间去打造这两款产品,并赚取到每月 15K 的收入。我会每周更新我的想法、见解以及工作进度,绝不偷懒。
如果我做到了,我相信你也可以的。
如果我失败了,希望我的失败经验也能帮到你。