说起程序员这个群体,大家脑海里可能出现“技术宅”、“不懂社交”、“外表邋遢”等各种标签。这些标签虽然有些片面,但大体上是准确的。就像雷军之前在访谈里提到的:
我是一个追求完美的人,对周围的事情要求也非常苛刻。现在大家看到我的时候,会觉得我很容易合作,很包容,这其实都是我后来学会的,我的骨子里是特别较真的。因为我是一个程序员,在程序员的世界里,只有0和1,只有对和不对,其实这类人很难和世界融合。
大佬都有这样的问题,更何况是我们。所以我就在想,到底是什么原因导致了这些特质?
有一天在和朋友讨论面试题的八股化时,发现有些问题明明没什么价值,却经常在面试时被问到。这种问题一般是闭合性的问题,譬如“什么是什么”、“什么有多少”、“什么有多大”等等。闭合性的问题都有确定的答案,而“确定”恰恰是程序员喜欢的,因为它和01的世界吻合。
所以技术思维的第一个桎梏便是“偏爱确定性”,它会导致性格上的保守和对规则的过分遵守。
以我自己为例,每次到餐馆点菜时,在一道吃过的菜和一道新品之间,我大多选择前者。这种保守会让人在做决策时瞻前顾后、畏手畏脚,因此丧失很多机会。记得读研的时候,导师想要产业化实验室的医疗仪器,问我要不要负责。而当时的我十分纠结,一会顾虑技术是不是足够创新、足够领先,一会又担忧测量的稳定性和精确度是否足够,思来想去还是拒绝了这个机会。但事后想来,产业化的过程中技术只占一部分,甚至可能不是最大的那一部分。而销售渠道和各项规范才是产业化中真正重要也最具有挑战的地方,如果这两项有优势的话,其实不用过分纠结技术。
之前在给ART虚拟机提优化改动时也有过同样的犹豫。很多东西都未知,担心自己做不好。但硬着头皮做下去就发现:想多了都是问题,做下去才是答案。而且很多先前的顾虑根本不存在,纯属自己吓自己。
遵守规则,说好听点叫守规矩,说难听点就是听话。但规则是谁定的呢?还不是人。所以很多时候我们需要破除对规则的盲目信任,而多去思考规则背后的成因。一个规则的出现基于什么样的背景,有哪些权衡,又被哪些因素所制约。只有充分了解这些,才能破除迷信,也才有一丝创新的可能。刚刚结束的美国大选中,老特重回白宫,而小马成了他助力团中最为显眼的角色。在我看来,他们是一类人,不论是老特的不按常理出牌,还是小马的第一性原理,其实都是拆除规则的约束,从更高维的角度去思考问题。或者换句话说,不做规则的执行者,要做规则的制定者。
都说文人相轻,其实这种现象在程序员中也存在,用Vim的看不上用IDE的,搞后端的看不上搞前端的,做开发的看不上做测试的,不一而足(其实在非技术的人眼中,搞不好我们都是“臭写代码的”)。因此技术思维的另一个桎梏便是“自负”。
长期浸淫在代码的世界里,程序员会生出一种幻觉,认为一切事物皆可掌控。那些01只要经过理性的排列,就能解决任何问题。这种幻觉在技术越好的人那里越严重。过分的自信在面对代码时是有效的,但一旦情况变化,它就会产生负面的影响。具体而言,会造成人际关系的紧张和视野的局限。
其实我们不光看不起同行,那些非技术的外行同样被我们看不起。“销售不就是陪喝酒的么?市场不就是做PPT的么?HR?HR就是资本的走狗啊!”这样的认识广泛存在于程序员群体。但人是很敏感的动物,你瞧不上别人,别人也不会给你好脸色看,因此很多团队协作的障碍就在这样互相瞧不上的氛围中产生。
自说自话在程序员这个群体里很常见。两个不同技术栈的人在沟通时,说着彼此不懂的技术名词又懒得解释,或者不知道怎么去解释。最终的结果就是每个人在自己的领域都足够专业,但在其他方面又足够白痴。这也怪不得程序员,谁让技术发展得这么快又这么细呢。但这导致每个人都活在自己的技术茧房中,并在自我正确的重复中不断加深。马克思在《资本论》中曾说过:“分工使劳动者的活动范围变得越来越狭窄,剥夺了劳动者的一切智力魅力”。这种异化也让我们的视野变得局限,再辅以“自负”的情绪,最终沦为一只井底看天的青蛙。
以上这些思考,说的不是别人,而正是我自己。之所以写出来,一是字斟句酌的过程是对零星思考的提纯,二是方便日后回顾。当然,如果能给同道中人带来一些感悟和思考,那便是莫大的荣幸。