拖更已是常态

年终总结时,我曾痛下决心,每月至少写一篇,结果。。。

当然可以找很多理由,比如工作啊,比如生活啊,但说到底其实就是拖延症发作。
其实啊,人活在世,槽点总是会不断积累的,只不过放着放着就忘了。

不过最近确实也没研究啥新玩意,还是在做着各种各样的“日常”,毕竟是打杂工程师嘛。倒是我的react后台写的很欢快,发了几个版本,渐渐有点样子了,收到star还是挺开心的,也收到了一些正面的反馈。已经在前端的大坑里越陷越深了。。。
对于非技术方面的思考倒是很多,而且这比研究技术难得多。
我tm是不是中年危机了啊。。。

不管怎样,偶尔停下脚步,收拾下心情,挺好的。我还保留着独立思考的能力,略感欣慰。
虽然我不能保证我的思考都是正确的,博君一笑罢了。

关于title

所谓title,或者说level/头衔/级别,就是“高级/资深/总监”之类的“名号”,国外可能是“junior/senior/director/principal”之类的。这玩意大家都挺在意的,但也是很容易有槽点的一个东西。

起因是我最近看了下脉脉,被一众高title闪瞎了眼。。。让我有一种跻身上流社会的错觉。。。这个经理那个总监,这个CXO那个创始人的。。。倒是前老大就简简单单写着“XX司技术”,让我觉得很亲切。

这让我想起某次面试,候选人的简历显示他曾是某个公司的VP。看到简历我就吓尿了,这种级别的轮得到我来面试么?结果聊下了发现,水份有点大。。。说技术吧,他已经脱离一线开发很久了,很多东西只知道个概念,甚至概念也说不清;说管理吧,其实他前公司的规模很小,而且互联网公司很少会找一个纯粹的“管理者”,大多是所谓的“技术管理者(Tech Leader)”。虽然我看在党国的份上想拉他一把,但他二面还是挂掉了。。。

所以说,title这种东西,有时候可能有水份,只能起一个参考作用,或者说,只有统计学意义。同一家公司高level的人一般整体上能力优于低level的,但具体到某些个体上就未必了。
不同公司间的级别也很难对比,google/FB的senior到国内可能就是总监了;甚至同一个公司的不同部门间级别也不能对比,做业务的部门往往更容易拿到结果,做基础技术的部门就可能比较悲催,比如dba/运维。。。具体到个人就更不能一概而论,跟个人际遇有很大关系,比如加入的早晚。。。升级也是个有点玄学的事情。

同理,想靠title服众也是很难的,还是要看实力。

但有一点毫无疑问,title/level是越高越好的,不管是出于什么目的,为了虚荣心也好,为了待遇也罢,人们总是会故意/非故意的美化自己,于是有了各种各样“注水”行为。。。简历可以美化,项目经历可以夸大,技术栈略懂皮毛就可以到处吹逼,甚至某大型同性交友网站的经历都可以造假。。。前段时间v2ex不是就爆出了某人号称参与了各种大型开源项目,看profile各种NB,实际上所有PR都只是改了改文档/注释之类的。。。

我不能认同这种注水行为,但我非常理解。因为这个社会早已经不是埋头做事的年代了,自我包装/自我营销是非常重要的,甚至你说是“忽悠”也可以,没有人可以置身事外,虽然这有点悲哀。当大家都在注水的时候,如果你不参与进来,就会被你的圈子、被业界、甚至被社会抛下,这就是所谓的劣币驱逐良币吧。就好比,工作三十年都不如买套房挣钱快,还有谁愿意工作啊,都炒房去算了。
单纯靠技术获得成功是非常难的。人脉广/会做ppt才是硬道理。。。我不否认这些“soft tech”的重要性,但是不是有点本末倒置了。也许从单个事例来看这不是什么大问题,最多是用人不察罢了;但整体上看,这会潜移默化影响所有人的价值观,就不知是福是祸了。

曾经在cc98(浙大的内网论坛)上有一个帖子,题目大概是这样的:《如果你不了解XX和XX,就只能一辈子是个工程师》。浓浓的朋友圈画风有木有。。。某老年dota男主播2009(有段时间我还经常打dota的)也曾在节目中感慨过:自己的父亲不会营销自己,所以只能做个工程师,没什么成就(大意)。我想说“工程师”跟你们什么仇什么怨。。。
但不得不承认,目前这个社会的主流价值观就是这样的(以后会不会变化我不知道)。想取得世俗所定义的“成功”(当上CEO赢取白富美走上人生巅峰之类的),就不得不跟随这种价值观。可能我有点悲观,但我觉得现实一定比我写的还要残酷。。。这很像经济学中所说的泡沫和通货膨胀(专有名词:通P膨胀),在膨胀的过程中,上层会不断掠夺底层,马太效应愈加明显。反正别像某打工皇帝一样把泡泡吹爆了就好。。。

不过话说回来,我并不是想说“肉食者鄙”之类的。决定你的level/title的,不是你的技术,而是你的价值。对公司而言,如何衡量你的价值?写代码/做业务当然是价值,解决其他人不能解决的问题/找到前进方向/日常管理也是价值,说的夸张点如果你靠黑魔法之类的能帮公司招来各种大牛,就算白养着你不干活公司也不亏啊。。。所以说价值有很多种,不同环境中的衡量标准也不一样,技术只是其中一部分罢了。
搞技术的人很容易陷入所谓的“技术万能论”,觉得只要自己技术足够NB就万事OK了,然后自然就会变成人生赢家。不能否认有这种大神,比如Linus。但大多数人达不到这个高度,更多的是各种反面教材,请自行google四大魔道编程天王(不知哪位仁兄起的这个名号)。。。

关于“贴标签”

由title衍生而来的一些想法。
“贴标签”/“扣帽子”,说的都是一个事,这个很难用语言去定义。如果不了解什么是“贴标签”,去知乎看看各种涉及到女权的话题,如何稍有不慎就会被喷成“直男癌”,然后就明白了。。。
title就是一种简单粗暴的标签,可以快速的让你“了解”一个人,虽然这种“了解”非常不靠谱。

标签是一种非常好用的东西,可以快速的了解其他人。人们往往会根据某个标签的“共性”去推断一个人的方方面面。比如对于“程序员”,大家往往会觉得“逻辑性强/情商低/挣的多/死的早”。。。虽然这些特征也只有统计学意义,具体到某个个体上未必是这样,但一般也不会偏差太多。标签还可以快速的让他人了解自己,通过给自己贴标签的方式,让对方根据这些标签去推断。想想相亲时都是如何做自我介绍的。。。虽然这不是什么好办法,而且对方的理解可能有偏差,但确实是最省力、最快速的方式。
可以说,贴标签就是人的本能,每个人都在忙着给别人贴标签,也在给自己贴标签。

但标签也可能是个很危险的东西,因为有一些人会不负责任的评判他人,滥用标签。可能是无心的,只是为了求个存在感,或者是为了显摆,也许“评判他人”这种行为有一种高高在上指点江山的快感吧;但也有可能是恶意的,比如上面说的“直男癌”,只是用来攻击意见不同的人的工具。这就有点批斗的感觉了。我最近碰到的一个事例是“这人技术不行”,言下之意“他不如我”。额,只是业务领域不同而已,这个评价未免有点过了。还好我双方都了解一些。。。

我更推崇所谓的“no judge”,不要随意的评判一个人,不管什么身份地位,这是对人基本的尊重吧。一旦对某个人下了“判决”,那固有的印象就很难改变了。no judge ≠ 不能评价别人,而是说评价时要更谨慎,基于客观事实而不是主观臆测,同时对自己做出的评价要负责。
为啥网络喷子可以肆无忌惮的给其他人扣帽子,就是因为他们不用为说过的话负责。。。
这个话题如果继续讨论下去,都可以上升到人性的高度了,那就不是我能想明白的了。

我也要时刻注意自己的言行,谨记。

关于业务

业务代码写的多了,心中总是难免忐忑。

在网易,我可以4年只干一件事,或者说至少是认准一个方向,把hadoop研究明白就可以了。不管是做BI、做数据、做运维、做开发,都是围绕着hadoop。
但是离开之后,细细数来,直接参与的已经做过4、5个业务,算上间接参与的就更多了,“打杂工程师”可不是随便说说的。不同业务方向间基本没什么关联。关键是没有“做起来”的,这就有点焦虑了。。。总是热火朝天干一段时间,但没什么起色,然后慢慢冷寂。。。当然有些业务是不能急于求成的,是需要“熬”的,慢慢去培养和运营。但是如果经过三五年才失败,才被判死刑,那中间这段时间岂不是荒废了,怎么跟参与项目的人交代?失败不可怕,关键失败后总要留下点什么。是技术?经验?资历?我也不知道。。。
就像我之前说的,“苦劳”这种东西是不存在的,how cruel this world。

从公司的角度来说,在没有明确业务模式的情况下,确实是要不断的快速尝试,fail-fast。因为一旦停下来必定就会挂掉,动一动还有可能找到方向。个人如何在这种不断变化的尝试中成长,才是我们需要思考的。

有这种焦虑的人应该还挺多的。但就像我之前说的,业务和技术从来不是对立的。这就是个围城,单纯做业务的觉得自己一直在拧螺丝,技术没什么成长,担忧未来;单纯做技术的又觉得自己技能过于单一,缺少业务场景,很难做出成绩拿到结果。这两种状态我或多或少都经历过。最好的结果是二者能互相促进,业务的发展能推动技术,技术的发展又能给业务更多想象空间。但如何达成这种正向的循环,因人而异,只能自己去不断摸索。
从个人成长角度来说,技术为本,兼顾某些业务领域,同时也要能快速理解其他领域的业务模式,再懂点管理,是最好的状态了吧。当然这只是我一家之言,未必是对的。

随着云计算的发展,现在越来越多的东西变成了基础设施(Infrastructure):db、mq、hadoop、redis,作为一种服务提供给外部用户,降低了开发成本,也让分工更加明确了。分工的好处就是可以提升生产效率,用户完全不用了解细节;但也容易把人变成螺丝钉,缺少一种全局的视野,毕竟懒惰是人类天性(这我深有体会)。。。

话说回来,一块业务的成功与否,往往也是需要天时地利人和的,如何找到靠谱的业务方向也是个技术活,真正NB的人往往是“创造”需求而不是“发现”需求。而我们一般只能在“人和”上下功夫,或者说,“执行力”。这样就算失败,至少可以说是“非战之罪”。就像打台球一样,就算球就在洞口,就算我能计算好所有球碰撞后的行进路线,但是tmd打出去的白球总是歪啊,计算的再好又有毛线用。。。

成长没有捷径

看到一些文章,感触颇深,摘录下。

http://www.infoq.com/cn/news/2016/12/architect-CTO-growth-not-easy

成长是漫长的,充满了点滴细节,没有一蹴而就,但是智慧和经验却可以复用

独立思考,推动变化及拿到结果的能力和愿望会变的更为重要

http://www.infoq.com/cn/articles/road-of-the-development-of-technical-people

在你事业的上升期,你需要更多的软技能

你还要明白在职场里的几个冷酷的事实:你要开始要关心并处理复杂的人事
code is cheap,talk is the matter

杂谈

一些零散的想法。

  1. 认识自己才是最困难的事。what you are you do not see, what you see is your shadow.
  2. 我这人应该算是比较谨慎保守的,做事之前会想的很多,考虑的很全面再动手。缺点是有些时候想的太多了,有些踌躇不前。我也见过很多人干劲十足却很少思考,说是横冲直撞也不为过。孰优孰劣?没有定论。还是一个“度”的把握。
  3. 在网易时某前辈说过一句至理名言:“能重启解决的问题都不是问题”。虽是戏谑之语,我却想借用一下:能加班解决的问题都不是问题,能用技术解决的问题也都不是问题。那啥是问题?找不到方向才是问题。
  4. 如何说服他人一起做某件事?说白了很简单,上策是让双方有共同的利益,下策就是大棒+胡萝卜。。。做事的态度(自主推动 vs 公事公办)对结果影响很大。
  5. 忽悠其他人之前往往要先忽悠自己。。。
  6. 发现前端项目在github上更容易获得star,毕竟做的是看得见的事。但就目前而言,后端的天花板更高。
  7. 慎用fixme。。。有多少次fixme变成了遗留问题,这就是技术债务啊。

扯了这么多,也只是我自己随便发发牢骚而已。很多事情只能是如鱼饮水,冷暖自知。我说出来其他人也未必能感同身受。不过至少我吐槽之后感觉轻松多了。。。