我发现对技术的思考,最后都无关技术。
1
我写过一个完整的微信商城程序,如果我今天不提起的话,到现在它都是不为人知的。从2016年初开始每天下班写写,大概写了3个多月。这套程序拥有完整的支付逻辑,从在微信支付到打印订单小票,支持微信免登录,甚至可以核销卡券。技术上,从缓存token到打印机驱动,从域名解析,反向代理,CDN加速,数据库设计,UI,作图…… 后来我意识到了一个问题:我不会卖东西! 再后来我就跳槽到了一家外企,那个程序也就搁置了…… 为什么我要自己开发一款商城程序呢? 因为我要对自己的产品有绝对的话语权。当时的微店、乐外卖、有赞都有数据不透明,强制广告,回款限制等问题。
这个故事我们先搁置一边,我有很多神奇的经历,大家如果想听故事可以先关注我,全网我都叫caiyongji,以后我会慢慢讲。
2
再说回造轮子这件事。你可能会经常听到,“不要重复造轮子”,但大厂面试往往又问你,“小伙,会手撕二叉树么?” 为什么会造成这种现象呢? 有些项目追求快速迭代,开发效率是关键指标,那么这样的项目(或公司)便主张“不要重复造轮子”。有些项目追求品质,要超越对手,甚至要做到行业第一,这样的项目便主张“重复造轮子”。 比如,抖音的短视频业务一定是自己造轮子,抖音的短视频技术栈,在世界范围内都是领先的,没有框架可以给他用,因为他已经是行业第一。 同理,谷歌的搜索,腾讯的微信……都自己造轮子。微信甚至有自己的通信协议。
使用框架虽然方便,但有时候框架是赶不上你的需求的,你的技术有时甚至是要领先于框架的。企业吃饭的本事总归是不能外包的,所以往往造轮子的项目都是公司的核心。
如果你想做核心项目,你就要学好基础,有造轮子的能力,通常这样的人薪水都不差。
3
我们再说说“不要重复造轮子”。 每一个调包侠都想做世界上最快的男人。快速开发产品,快速上线,快速版本迭代,快速修复问题…… 这样的项目往往选择轻量级的框架,为什么? 因为钱和时间。时间就是金钱,归根结底是因为钱。 这个世界上只分为赚钱的代码和不赚钱的代码。两个同学A和B,同样的技术栈,进入不同的公司,一个年终奖2个月,一个年终奖100多个月,是因为他们的能力差别么?显然不是。 说到底,技术是服务于业务,能帮助业务赚钱的技术就是好技术。已经有站在金字塔顶尖的大神们帮助我们构建了框架,我们为什么不用?更何况,我们大多数人是达不到大神的水平的。 很多人看到技术远不如自己的人,赚的比自己多,会愤懑。其实,是我们自己太神话技术了。技术人总想着让自己的技术行业领先,想着去大公司,做核心。可是,核心项目之所以是核心,它隐含的一个条件就是它并不需要那么多的人。我们不如停下来发展一下自己的工程能力,业务能力。 我和朋友聊过,现在市场上算法工程师是过剩的,虽然谷歌、微软还有国内互联网大厂面试看重算法,一旦你去不上呢?再大的企业HC也是有限的。 其实国内有很多不知名的企业,他们的公司规模不大,但业务却是很赚钱的。如果按照人均产出算的话,甚至是碾压一线大厂的。有时候对于这些闷声发大财的公司,我一度怀疑他们处在这个时代的暗网里。你很难在市面上发现他们的招聘信息,大家熟知的主流求职APP也找不到这些公司。 这里说句题外话,你看到的是别人想让你看到的。你很难在最佳雇主里找到外企的影子,但很显然像谷歌微软这样的公司应该位列榜首的。 我想告诉你的是,那些懂金融的技术,懂电商的技术,懂区块链的技术,懂管理的技术,都是很有市场的,有时候主动去契合某个公司内的某个岗位,也是成年人不得不做的妥协。
4
如果你问别人“要不要重复造轮子?”无论他们给你肯定或否定的答案,他们都是耍流氓。 总有人想总结出一个道理在任何层面都适用。我想说这个想法本身就是太单纯了。哪有那么多可以一言以蔽之的道理。不同环境,不同场合我们要适用不同的道理,甚至有时是截然相反的。 在技术浪潮中,哪有什么大神与小白,每个人都是一朵浪花。然而,每个人都不只是一朵浪花。我们讨论的技术,最后都无关技术。互联网,从来都是依托于显示世界而存在。
希望大家能在这个不断变化的世界中,找到自己的路。