Year: 2015

从静不稳定设计说起

时常与一些同行朋友说起“软件难做”的话题,一方面软件确实挺难做,变数着实太多(推荐《梦断代码》),另一方面,让人理解软件难做,更是不容易的事情。如果说第一个问题靠苦练内功还能看到希望,第二个问题就近似无解而让人绝望了。下面两个场景,相信大家都不陌生:

头儿说:你们开发怎么这么慢?拿这么高的薪水,做事还这么慢?我急得不得了,只可惜我不懂开发。我如果懂,我去学校招50个码农,连续熬夜一两个礼拜,绝对可以做出我想要的系统。

头儿说:我真是对系统失望透顶了。想我以前刚创业的时候,七八个人,五六台电脑,什么事都是靠喊,那时候工作效率多高,人均产值多高?现在人才到几百个,就成了这个鬼样,说要上系统,上了系统有变好吗……

我有时候会想,这些说法在普通人看来似乎也没有错,但行业中人都知道错得厉害。那么,问题究竟出现在哪里呢?我想来想去,觉得原因大概在于,持这样说法的人往往只依靠来自生活经验的“逻辑”和“直觉”,还没有真正理解“软件”(或者说“系统”)到底是怎么一回事。

Continue reading 从静不稳定设计说起

记忆的捷径

我从小记忆力就不好,哪怕对自己很喜欢的东西,也难得记住。

我曾经是军事发烧友,但二战时期德国的两种导弹,V1和V2,到底哪种是巡航导弹,哪种是弹道导弹,我一直记不住,看过了又忘;我也曾经是电脑游戏发烧友,但只记得id Software的创始人是两个约翰——约翰·罗梅罗和约翰·卡马克,这两个人分别干了什么,我也记不住。结果这类话题往往不敢与其他人细聊,生怕露馅而尴尬。

秉承这种记忆力的突出结果就是:我的文科一直学得不好。中英《南京条约》开放了哪些港口:广州、厦门、福州、宁波、上海。这样的答案有些人看一遍就能记住,我却要把“广夏福宁上”念个几十上百遍,才稍微有些印象。我当然羡慕那些记忆力好的同学,同时也好奇:有些人的记忆力明明不够好,第一遍也背不下来,为什么还是能记得那么多东西,而且那么清楚呢?

这个问题困扰了我很久,直到有一天我忽然发现,我分得清V1和V2导弹了,分得清约翰·罗梅罗和约翰·卡马克了。这当然不是千百遍的背诵做到的,但是花的功夫也不少。

Continue reading 记忆的捷径

谈谈社交这回事

时常有人说跟我打起交道来,感觉不像普通的程序员。我不知道这到底是褒还是贬,不过原因我大致清楚,因为在普通人印象里,程序员应该是很沉闷很木讷、不善于交流的。大家不知道的是,在很长的时间里我也确实是比较沉闷和低调的,这也是选择计算机专业的部分原因。但是一个偶然的机会,改变了我对社交的认识,从此促成了我“不像程序员”的改变。

Continue reading 谈谈社交这回事

简历的重点是抓人

我有时会帮朋友们做些工作引荐,所以经常见到一种可惜的情况:有些人明明素质很好、专业很过硬、经验很丰富,偏偏简历做得太过敷衍潦草,一眼看去泯然众人、毫无亮点,甚至让希望引荐的我感到汗颜。看来,有必要认真谈谈简历这件事情。

要想找到好工作,简历是敲门砖,所以怎么重视都不为过,尤其是要提供“抓人”——也就是能给简历阅读者留下深刻印象——的简历。

Continue reading 简历的重点是抓人

“推倒重来”的讲究

上个月,有个以前的同事问我:“你在的时候,为什么不把原来的系统都重做了,我们明明有实力啊”。

我说:“我们也做了很多事情嘛,系统稳定性、安全性、增加冗余、理清各模块职责、API通讯机制的建立、内部分层的整理。”

他说:“对,但我还是想知道,你为什么不把系统重做了呢?”

于是我问:“我离职之后,后来似乎多投了不少人重做系统?结果怎么样呢?”

他说:“结果,结果就是做业务要同时操作三四套系统……”

就我所见,把原有系统“推倒重来”的喜好不只程序员有,使用者更有。拿我几年前的那份工作来说,刚入职老大们就来跟我讨论系统重做的打算:需要多少人,多少钱,多长时间,能把原有系统推翻重来。毕竟大家每天都忍受切肤之痛:速度慢、经常出错、不安全、客户抱怨、架构糟糕…… 所以都想拿出“敢叫日月换新天”的劲头,来个干脆的彻底解决。

这种心情可以理解,但在我任内“重做系统”一直没有被提上日程,整个技术团队所做的都是“改良”的工作,内容就像我上面说的:系统稳定性、安全性、增加冗余、理清各模块职责、API通讯机制的建立、内部分层的整理。这个选择我有充分把握,而且在我看来,如果断然“推倒重来”,我未必能比继任者做得更好,甚至可能更糟糕,因为“推倒重来”绝不是那么简单的事情。

Continue reading “推倒重来”的讲究

从诺贝尔奖想到的

屠呦呦女士获得了诺贝尔奖,这是开心的事情。

首先要对屠女士说声“恭喜”,然后要对屠女士说声“感谢”。至于其它忙不迭凑热闹,往自己脸上贴金的跳梁小丑们,即便他们身居庙堂,我们只能视若不见了。

当然,围绕屠女士获奖这条消息,无论是挺中医的,还是反中医的,都要出来大作文章。这几天朋友圈的刷屏,充分证明了这一点。我的朋友霍炬问了个问题:举全国之力,筛遍中医典籍,最终从某个角落找到蛛丝马迹,以西方科学的实证思路找到了治疗疟疾的特效药,这到底是证明中医有用呢,还是中医没用呢?

我答了一句话,霍师傅于是说:“你看,就不能跟你这样的人讨论”。

那么,我说了什么?

Continue reading 从诺贝尔奖想到的

那些我印象深刻的建议和教诲

人的一生,当然有很多的时间去自己摸索和探究,做出自己的选择;其他人的教诲,很多时候并不会干涉选择,反而会让人少走弯路,更快捷抵达自己的目标。下面,我列了自己印象深刻的教诲(或者说“建议”),既是对各位的感谢,也希望通过分享让更多人受益。

技术是你的安身立命之本

这是大学时候中文系的王老师对我说的。当时我基本不怎么上计算机的专业课,晚自习看原版教材,白天在图书馆泡着,外加去中文系听课。对从小只接受过自然科学教育的人来说,不受约束阅读文史哲的魅力实在太大了,越看越入迷,加之当时网络管束很松,很容易在网上和大家聊得热血沸腾——只是,我从没有想过自己毕业了要干什么。

结果,又一次和王老师聊天时,他跟我说:“技术才是你的安身立命之本,文史哲只能当兴趣”。虽然我当时不理解这句话的真正含义,但还是照做了,又拨出很多时间学习计算机专业知识。当然,最终的理解还是王老师帮忙完成的。有一次上大课,他说:“面对人间的不义,作为知识分子我们当然有责任上阵。但是,上阵是有多种方式的。你们是希望赤膊上阵呢,还是披挂上阵?” 就在那一瞬间,我明白了“技术是安身立命之本”的含义,并受用至今。

Continue reading 那些我印象深刻的建议和教诲

我的做菜史

很多人学做菜,都是从独立生活开始的,我也不例外。

我小的时候,电视上有个著名的笑话“鸡蛋怎么吃”,说的是一群“小皇帝”自己做饭时,面对鸡蛋束手无策,因为“平时我们吃的鸡蛋不是这样的啊”。笑话归笑话,反映的却是事实。因为那时候下馆子虽然不如现在这么流行,在家“饭来张口”却是常态,充其量,洗洗碗,这就算“干了家务”了。如果非要找出和“做菜”挨边的,就只有煮方便面了,当然,这不需要任何技术。除此之外,任何需要一点点技术含量的工作,都很难胜任。比如菜谱上都说煮面条要煮到“半透明”状态即可,但我从来也没有真正有把握把面条煮到“半透明”。

Continue reading 我的做菜史

写作是种高质量的社交

人是社会的动物,有人的地方就有社交,社交有多种形式,流行的有社团、QQ群、博客、微博、播客等等。随着技术的发展,会出现越来越多的新社交形式。不过我认为,无论形式如何变化,写作——更准确来说,是面向公众的严肃写作——是适应未来潮流的,高质量的社交,理由列在下面。

首先,愿意写作的都是认真思考的人。

老话说“教学相长”,通常来说,判断一个人是否真正懂得一门知识,就看他能不能向其他人讲明白;看一个人是否读懂了一本书,就看他能不能把书的内容复述清楚。很多时候我们以为自己“懂了”,真正讲出来,写下来,才发现有太多地方不懂、不顺。讲述和写作的过程,就是反复咀嚼自己所理解的,并依照一定逻辑重新组织整理的过程。具体比较起来,写作又胜于讲述,因为写作面向的人群更广,“当场解释”的机会也更少。所以说,愿意写作的人通常都有认真思考的态度。而高质量的社交,离不开认真的态度。

Continue reading 写作是种高质量的社交

那片适合创新的池塘

你知道GPS是怎么发明的吗?

马里兰州罗瑞尔市坐落着约翰·霍普金斯大学的应用物理实验室(APL)的自助餐厅,长期以来都是就职于实验室的物理学家、数学家、技术人员聚会的热门地点。在1957年10月7日的午餐时间,大家讨论得异常热烈,因为苏联刚刚发射了第一颗人造卫星。

两位年轻的物理学家威廉·吉尔和乔治·韦芬巴赫也参与了讨论。他们首先确认这不是苏联的把戏,因为确实收到了来自太空的音乐。继而他们忽然想到,可以利用多普勒效应来计算卫星的移动速度(简单说,多普勒效应就是指信号源或接收器在运动状态时,相对速度与波形频率的固定关系。如果你路过鸣笛的消防车或救护车,会觉得随着它们的远离,鸣笛的音调也下降了)。结果,吉尔和韦芬巴赫用了几个小时,就实现了收听、测量、跟踪的功能。

过了几周,一个无组织的科学家团队在此基础上补充细节,研究关于轨道卫星的理论,提出了改善建议。之后,APL负责人批准了款项。于是APL的科学家们有了一整套算法,能够精密地测算出卫星的运动轨迹。

到了1958年春天,APL的副主任弗兰克·麦克卢尔把两个家伙叫去办公室,神神秘秘地问:如果卫星运动时,可以用固定的地面接收器来计算卫星的方位,那么反过来,卫星固定,地面接收器运动,能够测算出接收器的位置吗?这个问题没有人想过,也没有人评估过。经过几天的紧张计算,吉尔和韦芬巴赫确认:“反向定位”是可行的。

2年后,美国实现了“反向定位”系统,最初用于为潜艇确认位置。1983年,大韩航空的班机因为导航故障误入苏联领空被击落之后,美国向民用领域开放了整套系统。这,就是今天我们熟悉的GPS。

Continue reading 那片适合创新的池塘