写在工作后的第三年

不长不短,三年。道家说,三是生数,可生万物。于是,我也希冀这是一个美好的开端,韶韶岁月余下的有限个三年的开端。

有点过于矫情了,余下的篇幅我会总结几个三年里比较突出的想法或者价值观,有关个人成长、行业、技术能力等等。这些想法来自于平时感悟,阅读和与他人的交流,在日常工作中不断被验证和强化,但更多的是一些对自己的敦促,所以觉得记录下来对于我个人而言也有意义。当然,记录下的不代表是正确的,就像长辈朋友圈里的文章,值不值得推敲,还有待更多时间的考证。

个人成长


短板效应

谁都知道“短板效应”,就连三年前的自己还敢拍着自己的胸脯,信誓旦旦,保证没问题。然而当成吨的工作量、应接不暇的人际关系和生活琐事,排山倒海波涛汹涌般向我袭来时,那块原本有十公分的“短板”立马会缩减到一公分,我称这个叫“短板效应”放大。

也许有人不理解,举个简单的例子,我是一个内向的人,不喜欢说话,工作轻松时候我还能够跟同事插科打诨,一旦工作量、进度一逼,每天就沉溺在完成任务中,一天跟同事说不了几句话。这在公司里面是非常糟糕的,因为越到项目紧张的时刻,越需要团队达到高度的步调一致,而步调一致是需要通过大量交流达到的。有一个术语叫 Cascade Failure,搞系统设计的人都能理解,一个短板,或者说瓶颈,会在高压下迅速奔溃,然后传导至整个系统,让整个系统迅速奔溃。这就是“短板效应”放大。(有意思的是,在写下这篇文章的那天,Amazon 搞了类似双十一的大促,然后就发生了“短板效应”放大,导致75%的用户都无法访问)

聪明与保持练习

我不是一个聪明的人,我必须诚恳地承认这一点,尽管老板、同事对我的第一评价与之相反。很早在高中时期,我便发现与真正聪明的人之间思维速度的差距。限制聪明的具体原因不在这里细表,为什么别人的评价却是不同?后来发现,因为他们往往只是根据结果论定。而过程呢?就是背地里的我,需要保持大量练习。于是才有了大量的高考练习题和错题集的反复研究,或者是刷了7遍的 Leetcode 算法题,当然之前一遍只用刷560多道,又或者是三年来每天至少两个小时额外的各行业的科研论文、书籍的学习。

聪明的重要性毋庸置疑,包括面试应届生时,聪明人永远是第一选择。但是聪明是可遇不可求的,是天赋,是能力,而保持练习是态度,是量变到质变的唯一途径。当然,要向正确的方向保持练习是非常重要前提,这里也不细表。

戒掉功利心

大部分人都不喜欢功利心太强的人,甚至作为领导是非常厌恶的,换句经常说的话叫“吃相太难看”。就我观察,如果一个人“吃相难看”,几乎没有人看不出来。在此就不总结推论了。功利心表现在趋炎附势,见人说人话,见鬼说鬼话,或者跪舔富帅同时鄙夷屌丝,又或者太急切的想去获得。我觉得这对年轻人来说,如果把一个技巧性的东西,当成了本性和目的,是挺悲哀一事儿。

收益、机会总归是要和能力匹配的,与其索取,不如积累,好好“蛰伏”,自然有兑换的时间。二十多岁的人,想立即拥有五十多岁的人的财富,这个叫抢劫,没有王法,别人多出来三十多年的积累不是凭空变的。现实是这样想法的人处处皆是,所谓的万民创业背后的个人动机,什么刚毕业就说三十岁前我要财富自由,我的妈耶,你爸是马云还是王健林,抢银行的也不敢这么说吧。

不要忽视积累和复利沉淀,年轻人是最底层的存在,但是可成长性也是最剧烈,最跳跃的。我有清晰的感觉,活过的二十多年间,大部分的时间都是不温不火的吸收和学习,甚至自我都经常怀疑,可以到了某个时间点,由于某些契机的激发,有明显的两个时间段自己有强烈的、醍醐灌顶般观念改变,就像修仙小说里面描绘的那样,之前积累的一切都贯穿了起来。戒掉功利心,相信积累,相信时间,等待机会。

归零心态

谈到功利心就不得不谈一下归零心态。这是很难的,特别是从一无所有奋斗来的人。但转念一想,得到的,拥有的,没有一项是永恒的,甚至可能成为负担的。见过“背着冰箱的舞者”吗?没见过,但是见过一到大考就失误的学霸,见过一面试就手抖的大神,见过维护形象而连连失误的高管,也见过为了保持连胜而损失惨重的投资高手。为什么,还不是被已有的钱财、名声、成就所累。背着冰箱的舞者必然动作失调走样,结果是技术发挥不出来,丧失美感,观众不再买帐。我们日常说的,心态好,回归初心,都可以理解成归零。欲望、焦虑和不安定永远是这个年纪的主旋律。无论是三年前在找工作群里此起彼伏的抱怨声,还是如今写字间里的匆匆脚步。“我该选择怎样的一条路”,这是在微信的深夜谈话里出现最多的疑问,高晓松说:“谁的青春不是兵荒马乱”。不怕输,有从头再来的勇气和底线,能很大程度降低焦虑感。年轻时候归零了是成本最低,学费最少的,用低学费体验了更多的生活,体验完整的成功和失败的周期。比起老了风中残烛,望洋兴叹,年轻就是资本啊。

“除了无线网络信号是永恒的,其余的世界则丧失了它的永恒性。”
-《东京一年》 蒋方舟

运气

我经常给准备面试的人说一句话:“面试靠的是80%的运气和20%的实力”。不光面试,很多事情都这样,比如经常说的上辈人赶上了好时候便宜买了房,或者早毕业一年正好赶上了经济好时候,例子太多,不一一枚举了。很多人不愿意承认啊,难以接受,心想我努力拼命,怎么可能做不成!其实这就跟追女孩一样,把别人女孩恶心得不行,还把自己感动得一塌糊涂。还有人觉得有志者事尽成,穷尽自己,最后走进牛角尖里面抑郁不已不说,还埋怨社会。虽然在这里过于强调运气,听起来玄学意味太重,但是冥冥之中自有安排的感觉越发强烈。尽人事依然重要,因为尽人事就是那20%,甚至是21%,它的作用只是提高把事情做成的概率。同时更重要的是平和的心态,成功不能骄傲,觉得人定胜天,失败不能气馁,觉得待我不公。

技术的思维与能力


该扯一扯关于技术的东西。从初中写下第一个木马程序算起,在技术里浸润了也有个小十年了,从最开始的鸟枪乱打,全栈发力,到后来有的放矢,深耕方向。我不能跟很多大神一样,保持着对技术初恋般的热爱,或者像一个手艺人一样,仔细打磨技术的边边角角,我觉得技术只是冥冥宇宙的一角,我更愿意把自己置身事外,站在另一个角度探寻“技”与“道”的交融,于是就不在这里阐述具体的一些技术,主要想讲讲对技术这一概念和技术人素质能力的一些浅薄看法。

技术的本质

技术从诞生的第一天起,它只有一个目的,就是解决问题。

这句话是贯穿我整个技术生涯的“金线”。我分几层解析这句话,
1. 技术是为了解决问题,不能为了技术而创造问题。这句话很好理解,要避免因为炫技、利益等引入新的或大或小的问题,这时候技术就成了新的负担;
2. 解决问题过程中可能出现新的问题,于是技术逃不过西西弗斯的宿命。这句话不好理解,西西弗斯的宿命只有一个,就是把石头推上山,同样的,技术的宿命就是把问题解决掉。石头会不断掉下山,因为地球有重力,而问题会不断产生,因为社会在增熵。因此我们可以推倒出,技术是永不会消亡的,同时随着熵的增长,技术也会增加,会成长。
3. 但是随着技术的增加,本身又会出现问题。了解过两次软件危机历史的都能体会这句话,这时候,就需要能够解决技术本身问题的技术,但我更愿意称之为“方法论”,比如软件危机后提出的软件工程以及架构设计等。

入职苹果公司时,苹果有一个理念特别打动我,当时屏幕上放了一张图片,图片上是一个十字,十字的一横是技术,十字的一竖是产品,而苹果就是交叉的那个点。之所以打动我,因为这阐明了我对技术的态度,任由技术发展进步,永远使用最合适的技术解决问题。

而技术的本质,或者说技术的哲学(这里与学术研究范畴的技术哲学不同),正是为了解决问题,为了降低这个世界的复杂度,装逼点的说法叫“减熵”,我的想法更朴素,就是让生活简单美好一些。

“一件事越是简单,它就越不易出现问题,即使出现问题后也越容易修复。”
-《常识》 托马斯 潘恩

技术思维

我从根本上是无法理解所谓技术思维的,说得好像某种特定的思维模式为了技术而存在。但实际上并不是这样,正如我所理解,技术是为了解决问题,那技术思维应该属于解决问题的思维,而解决问题的思维不是局限的,很多时候解决问题不一定要通过技术,作为一个技术人,更不应把思维局限在技术上,应打开眼界,用最合适的方法。我总结了几点关于如何选择合适方法的标准:

  1. 适合:过多可能引入新的问题,过少可能不能解决问题,适合最恰当。
  2. 简单:简单代表了成本低,代表了容错度高,代表了可维护性强。
  3. 平衡:我们经常说的 Trade Off,权衡利弊和互换的性价比。

“我们喜欢知识纪律,不喜欢无知的无政府状态。”
-《一个广告人的独白》 奥格威

技术人的素质

先讲两个小故事,第一个故事,小说《斯通纳》,主角是一个平淡的大学文学教授,在外面世界战火纷飞时,始终把自己关在象牙塔,与一战相比微不足道的知识保护层里;第二个故事,某天当我们正激烈讨论着如何设计系统架构适应 Feed 流扩散机制时,一个玩着电吉他的物理学博士出身的程序员向我们抛出了一个流体力学传播模型。在这里并不想赞美技术人普遍拥有的良好素质,例如朴实、效率、逻辑等等,而是讲了斯通纳和物理学博士的故事。

现在太多技术人,就是斯通纳,害怕外面的世界 – 无论是战火纷飞还是满地黄金。宁愿把自己困在知识的小牢房里,似乎一旦走出去,就会丧失自己的信仰,信仰的旗帜上写着“技术至上”。我觉得练功走火入魔可能就是这个意思。或者这只是我一人的偏见,作为技术人,是需要成为一个“T”型人才的。技术是门艺术,而艺术是美的,是可观赏揣摩的,正如康德提出的技术创造属于三个王国,其中一个便是美的王国,同样,技术也是具有哲学般的相通性,就如美丽的流体力学传播模型一样可以启发我们设计信息流传播的策略,又如经济学领域蒙代尔三角与理论计算领域布鲁尔三角的相似。说句怀古伤今的话,还是90年代的硅谷有意思啊!


本来想继续写写关于行业的想法,下笔时又感觉有很多想说但又混杂,还是等以后想清楚再写。关于未来,我短期内是非常悲观的,冥冥中感觉系统性金融危机会更大规模发生,技术的发展并没有让人性发生改变,大部分人仍然是短视和贪婪的,所有的事情在历史上都发生过,但是教训仍不能延续超过三代人,历史仍然会重演,而技术会扮演放大器的角色。但是我仍然愿意相信斯坦因,历史是螺旋式的上升。

能看到这,你一定是个有耐心的人,尽管都是些无聊的呢喃,如果你愿意可以联系到我,有空可以请你一起吃饭聊聊天。

程序化购买专题 - 广告需求方平台(DSP)竞价流程

概要

作为 DSP 角色,当接受到由广告交易平台(ADX)发送来的竞价请求时,通常会根据一些业务需求、广告主要求、用户特征等,对请求进行过滤,从而决策竞价与否。如果决定参与竞价,则会对请求特征连同自己的广告数据库、用户数据库等进行一系列的计算匹配,同时根据广告(Ads)、竞选(Campaign)、广告位(Placement)等的时长、已展示量等特征计算出竞价。以此逐步筛选,最终选出最优的广告以及竞选价格返回给广告交易平台。整个流程根据业界标准,SLA 通常需要在 200ms 内完成,同时考虑到网络通信的损耗,真正数据在 DSP 内部的用时不能超过 100ms。因为极高的 SLA 要求,所以对系统布局和算法提出了挑战。

具体流程

1. 接收竞价请求(Bid Request)

我们以 OpenRTB v2.4 的竞价请求为例,如下图。

Continue reading

程序化购买专题 - 简介

程序化购买的诞生

在30年前,啤酒商需要宣传它们的最新啤酒,于是买下报纸的版面,或者买下楼宇之间的广告位,挂上海报或横幅。
在20年前,洗涤剂厂商会制作电视广告,买下电视台的黄金时段播放电视广告。
在10年前,媒体门户网站大量出现,网站主纷纷在网站的显眼位置挂上“此广告位招租”,广告公司便上门来买下广告位,挂上客户的广告。

当互联网上只有有限的几个网站时,网站主们和广告商们似乎还能应付得来广告与广告位资源的协调。可是随着近几年来网站的急剧增长,手持设备的增加,信息媒介手段增多,该如何更有效的利用这些流量资源?于是,便有人想,为何不搞一个交易平台,专门销售广告位,广告商出价竞拍,价高者得,广告商不用电话邮件的跟网站主们商谈,让不知疲倦的机器和算法成为这场竞拍的仲裁者。于是,程序化购买的原型就此诞生了。

Continue reading