那一年,我加入了某知名公司的某知名部门,在办公室中,我看到了到处都挂着——“努力就会成功”的条幅,这个部门中大多数员工的邮件签名都会有“努力就会成功”,我感到一种热血沸腾的气氛,这是我在多年工作来都没有感受到的,当时挺高兴地能和这样一群人工作,也没多想。直到有一天,我看到这些高级的软件工程师们把自己关在又挤又吵的会议室中,拼命地加班,真是拼命,周一到周日,每天早上10点到凌晨3点甚至凌晨5点,连国庆节都来上班,就在这样的环境和状态下,连续干了三个多月……上线前,QA找到了1000多个bug(你没看错,就是一千多个),最后这个项目用了1年多的时间来返工,本来一个6-8个月的项目,团队被打了鸡血想在3个月内完成,最终却花了近两年的时间来返工……(要知道,我以前在外国公司工作,外国老板看到团队在长时间加班会感到焦虑的,因为加班通常代表着有不好的事情正在发生……)

所以对此,我是有点看不懂的,看不懂的是,为什么这么一群聪明的人,放着明亮宽敞的办公桌不用,硬要挤在一个又窄又小又吵又热的小空间里工作,而且要这么透支地写那么重要的很关键的系统级的代码……这就好像,一架在一个小作坊里被人加班加点赶工出来的飞机,谁敢坐啊?!老实说,这群工程师真是很优秀的工程师,他们完全是可以做得更好的……但是却做出了如此蹩脚和糟糕的系统……他们说,这样坐在一起可以做到快速沟通,然而,我觉得这恰恰是一种没有章法的表现。

也是在这家公司,在这个项目烂尾一年前,公司感到了危机,CEO号召全体996,举全公司之力从董事长到下面基层员工对抗外部所谓的威胁,有的部门为了表现,甚至997,然而,在一年后,做出了一个烂得不能再烂的软件,最终以失败告终,很多人包括CEO也因此下课……

这是最让我看不懂的一个事了,为什么这么如此成功的公司的高级管理层会做出这样的事情,而且还制定这样的政策……把这么优秀的员工以及公司大把把数以亿计的钞票投入到这种错误的路线上来,而且还拼命地加班…… 他们脑子里在想什么呢?难道他们真的以为,有足够多的钱,足够多的人,然后拼命加班,就能打败对手吗?……

你喜欢这句话吗?

“努力就会成功”,“加班就会有成就”,“勤劳就会致富”……是这样吗?仔细思考一些,这些话存在严重的逻辑问题,我们在高中的时候学过“充分条件”,“必要条件”和“充要条件”!“努力就会成功”这句话,把“努力”说成了“成功”的充要条件,这不就是错的吗?努力只是成功的必要条件之一。你在错误的方向或是格局很小的方向上努力,能有用么?你努力地要饭,你努力地当搬运工,你努力地打骚扰电话销卖保险…… 在错误和小格局的方向上努力,你还觉得努力还有用吗?

但是很多人是很喜欢“努力就会成功”这句话,这类人也很喜欢看很多小人物通过自己的努力变成成功人士的励志的故事,为什么这种故事会被很多人喜欢甚至感动。因为这很符合大众的心理诉求,这种诉求其实就是一种只要使力只要拼命了就可以成功的心理诉求,因为这类人基本上都是能力有限,不知道怎么提升自己的人,当他们看到只要拼命使力就可以成功的观点时,他们就会有共鸣,就会感到,不用学习那些晦涩难懂高级的知识,不用掌握和练习哪些高级技能,自己只需要在低级的事情上拼命和努力,加更多的班和干更多活,自己就会像电影中的那些小人物一样,总有一天会成功的……

“努力就会成功,勤劳就会致富”,不但符合那些低级管理者的利益诉求,同样符合那些能力不足不愿意学习和成长的人的诉求。因为,他们混淆了行动与进展,忙碌与多产,他们以为能靠蛮力可以弥补思维上的惰性,靠拼命可以弥补能力上的不足……

喜欢或认同这句话的人基本是能力上有问题的人,这类适合做劳动密集型的事。不信你可以试试看,当一件事的难度超过一定程度的时候,那些聪明的人会找到更省力的方法,而能力上有问题的,还是在那使蛮力。

我成长的过程

回想我的过去,我在2001年那年被外包到了某银行做开发,标准的9/10/6,封闭开发,就是用C语言在AIX系统里堆一些银行的交易逻辑,老实说,这个过程并没有让我学到什么东西,也没有什么成长,我每天想的就是我要离开这个地方,所以,我在晚上10点以后开始看书学习到11点半,并使用工作环境动手实践书上的代码,一年后,我精读了《TCP/IP详解》《Windows核心编程》《Java编程思想》等书。然后,我找到一份外企业的工作,月薪一下翻了三倍。

在外企不加班,但是当时的外企压力也很大,对代码的质量要求的也很高,来的第二个月,就因为代码写的太差,差点被开掉,所以,为了能够达到更高的标准,我自然也是很努力的,在周末甚至黄金周节假日我哪里都不去,我就去公司,但我不是在公司上班,因为我没有自己的电脑,所以,我只能蹭公司的电脑,这导致办公楼的管理人员经常打电话给我让我帮他在周末的时候管理物业…… 在这家公司是我成长最快的时候,然而,并不是因为我的努力,而是因为有很多比我牛逼的人在Code Review上给我大量的帮助,在项目上帮助我,我的努力学习虽然也有作用,但更多的是高手对我的帮助

再回想一下我以前在职场上的很多关键点,不是因为我加班了,而是因为在某些关键问题上,我跳出来解决了其它人都解决不了的问题,我解决了一个网络通信莫名其妙的断掉的问题,我把性能优化了很多倍,我解决了一个不能重现的一个困扰团队3个星期的问题(其实就是大家没有认真读文档),我在入职一个公司的第一天里就为这个公司解决了一个历史遗留问题……在Platform,我每周解决了bug数是全公司的其它人的总和还要多(从不加班),在路透,我带团队优化的系统的性能是全球所有研发中心最高的,在亚马逊,两周打通美国和德国的订单和商品列表系统……我也有失败的时候,而我失败的时候,总是因为我搞不定事,即便是加班拼命努力也无济于事!是的,我的职业生涯的成长,最根本的不是你有多努力,有多勤奋,而是你能搞定很多人搞不定的事!

你不信你可以看看你们公司那些不用加班,就算什么也不干,公司也要花钱养的技术人员,他们的成功一定不是努力和加班加出来的,你会发现这些人拼的不是谁干的多,而是谁解决的问题更有难

我加班996的时候,从来都不是我成长最快的时候,而我和一群牛人在解决难题的时才是我成长最快的时候。

Work Smart

2015年因为父亲病危要动手术,所以我不能工作在家照顾父亲。于是我就成为了一个自由职业者,帮很多公司解决一些技术问题,好多都是高并发和系统稳定性的问题,有一些是分布式架构的运维的问题,还有一些是工程管理和企业文化问题……有一些小公司的单体架构在业务上一推广就宕机了,于是把我叫过去,我在生产线上直接re-arch,用一些非常规的手段,1-2天就把性能救过来了…… 还有就是解决一些点状的技术问题,还帮用户做一些design/code review……,有70%工作是真正的按劳取酬,也就是先把问题解决了再谈要收多少钱,那段时间我出卖的不是我的劳动力,而是我的技能,所以,反而比打工挣得多多了,而且还比较轻闲……

有时候,我还调侃到,你在大公司里一天写上万行代码,拼命地加班,你信不信,我只用写几百行代码就挣得比你多?同样是一个简单的 for-loop 语句,有人写的就值1万元一行,而你写的则一文不值。关键不在于谁写的代码多,关键在于我们解决了什么样的问题。你千万不要以为只要付你足够的钱,你就可以996,让你干什么都可以,然而当你自己把自己当成劳动力的时候,你也就只是一个像牲口一样的行事了!

这就好像算法一样,你那个O(n^2)的递归穷举算法,再怎么样也干不过我的O(n)的动态规划的算法。

现在我拿了投资在创业,一开始帮助各大企业建高并发高可用云化架构的公司,现在还给企业提供金融和营销能力,我跟客户谈业务的时候,基本不是因为我有多加班多努力地做方案,而是我能一针见血地指出用户的问题,帮用户解决问题。我在很多地方都见到阿里、蚂蚁、华为、HP……,一个小创业公司跟他们竞争真的很难,但我知道,要能竞争过这些大公司,这根本就不是能够通过加班996或是拼命努力就能搞定的,我必需要使用更好的方式,所以,除了更好地站在用户的立场,能够给用户制定更符合用户的技术方案之外,我必需做到我的技术方案不比这些大公司的差,而这一点,完全不是加班、努力或是勤奋能出来的,这是需要靠自己的经验、学习能力、归纳思考、和与更多牛人交流才出的来的……当我给某银行CIO介绍完我的分布式系统的方案后,CIO给我微微鞠躬说:“过去一两年,我听过几乎所有国内外产商跟我讲的分布式的方案,你的是我听过的最好的方案!谢谢你!”,当我给某省电信行业公司讲了一下DevOps的方案后,老总对我说:“你们真的是做事的人!”,当用户来问我:“你们的API网关是怎么写的?为什么运行的这么稳定?”……这些话都是让我很心里很暖的话……当然,我也有被骂的时候,也有失败的时候,但基本上来说,我无法通过努力工作改善我思维的不足……

我们学计算机当程序员最大的福气不是可以到大公司里加班和996,而是我们生活在了第三次工业革命的信息化时代,这才是最大的福气,所以,我们应该努力地提升自己,而不是把自己当劳动力一样的卖了!在这样的一个时代,你要做的不是通过加班和拼命来跪着挣钱,而是通过技能来躺着挣钱……