Category Archives: 打工日记

不是天才,就是笨蛋

  非常认同Steve Paul Jobs的“天才——笨蛋”论

  招人,最重要的就是识别笨蛋,请神容易送神难。这里说的“笨蛋”,衡量标准不仅仅包含智力因素和专业素养,还有工作热情和情商。

  反过来,如果真是天才,就不必太担心简历和职位要求之间的overlap:技术研发不像传达室门卫,本来就会时时刻刻面临新挑战,必须不断调整,关键在于有效学习;另一方面,不同观点进行碰撞是创新的必要条件,团队成员的思维方式最好不要完全重合。

  很多诺奖获得者都是跨领域的非正规军。但这种人都很聪明,就算开饭馆也会赚得多些。(补,查了一下,发现巴菲特这么评价Big G:“If Bill had started a hot-dog stand he would have become the hot-dog king of the world. He will win in any game”)

  如何确保成功?谁都不知道,其实有很多运气因素。也许比较靠谱的办法就是借势,混进一个充满天才的圈子。混进去了,想不被踹出来,还得训练自己的竞争优势,对团队贡献独特价值,拥有不可替代性。说白了,把自己也磨练成天才,这才有点戏。最好再有点个人魅力,像舜一样“一年而所居成聚,二年成邑,三所成都”,吸引天才们跟着你混,那你就“不再是妖,是人妖”

  幻想完毕,回到现实。伍六一说:“做尖子,哪有那么容易”。慢慢煎熬吧小伙儿。

BTW:昨天晚饭去吃苏州羊肉面;23点下班,夜宵是枫林路上传说中全上海最好的麻辣烫。解馋。

中场休息

  动态分配策略一上线,就顺利超出了预想标准。回想一下从10月底到现在,从一点都没摸过的菜鸟,调通第一个hello world,到一个版本一个版本迭代,逐渐把pFind集群加速比提上来。小马过河,既没有想象中那么容易,也没有想象中那么难。

  松口气,然后就感到很累,像身体里某个开关被突然切断一样。

  今天早上喉咙肿了。索性偷懒,让瓶子哥自己去实验室,自己接着闷头大睡。间或收到瓶子哥的短消息,告知后续实验结果,我发了个“太好了,这样数据就全面了”,接着昏睡。13点,喉咙消肿了,才起来出去吃饭,脑袋还是犯迷糊。一整天下来,只是回复了几封email,给笔记本的ubuntu升级了操作系统内核补丁,听了点儿技术报告,没干什么正事。

  从北京临走时,买了一本村上春树的《舞!舞!舞!》。昨天终于从行李里找出来开始看。刚看到一半,爱死这本小说了。越来越觉得《挪威森林》在村上的书里,并不是最有趣的。

  原本没想买这本。11月初“光合作用”打电话通知雷蒙德·钱德勒的《漫长的告别》到货了。当时pFind 2.2正在紧要关头,把这事扔在一边,拖了一星期再去,又卖完了。郁闷。因为是《寻羊历险记》的后传,所以选了《舞!舞!舞!》。

  过两天找机会去一次上海书城。

  这只是中场休息,到年底还有不到3周,还有事情想做。明天重新披挂,按村上春树的说法,继续“与现实生活短兵相接”。

昵称

  又要起名字了,按组里惯例,昵称都源于动画片

  前两天我们用淘汰的老旧电脑攒了个山寨版集群,用于分布式搜索引擎的调试,瓶子哥起名叫Monsters,真吓人。

  争论最激烈的是pFind 2.2内核,有人推荐WALL.E,有人认为它的女朋友EVA更酷,还有人喜欢圆乎乎的功夫熊猫ABAO。投票表决中。

  好像没在BLOG上提过pFind 2.1内核的昵称。hchi哥是2.1的第一贡献者,他给2.1命名叫DORAEMON。

  现在在上海,刚下火车就开始调试代码。中午又跑去吃牛排。一向喜欢坐火车,有规律的铁轨声让人心境平和。瓶子哥说,那是因为没有屏幕和鼠标键盘。年底还有6周,努力把能搞定的事都按时收摊。

电子竞技、周扒皮和工程师性格

  最近开始很严厉地执行todo list,以便把上半年落下的进度追回来,争取年初的愿望不落空。心情好多了,忙碌带来充实,另一方面,又感到自己变得刻薄而急躁。

  今天周末,居然一直睡到12:40才起床。打电话到办公室,旁边组的人说,组里工位上一个人都没有,我也就索性找借口不去加班,放松一天。游戏风云频道正在直播G联赛总决赛,于是看了一整天电子竞技比赛。

  很喜欢游戏风云频道,没有故作深沉的老家伙(年纪太大的,估计也看不懂星际、魔兽和CS吧,哈哈),主持人和嘉宾经常为比赛结果打赌,然后在转播中各为其主;对战术有不同意见,就会吵吵闹闹,恨不得剪刀石头布。别看圈子里都是年轻人,但无论是俱乐部、职业选手、媒体还是赞助商,还都很像样子,整体运作挺规范。

  跑题了,回来再说自己的情绪。翻了翻上周的邮件,口气总是很强硬:目标是什么;每个人负责哪一块;已经完成的milestones;距离deadline还有多久;最悲观情况下,哪个要壮士断腕,哪个要力保……很像周扒皮半夜鸡叫?提醒自己约束暴躁的性格。

  说到情绪和性格,《梦断代码》里提到,美国做过一项IT专业团队的个性特征的研究:“77%的样本偏爱思考后决策,只有23%的样本偏向感性。而普通人群里,这两类人大概相等。41%的受访者是内闭型思考者,比例两倍于普通人群。极端情况下,程序员的行为特征——避免目光接触、难以读懂身体语言、沉迷于偏僻的课题——非常类似 Asperger’s Syndrome(一种轻度自闭症,高智商人群发病率较高)。”

  这是不是意味着,只有自闭的书呆子才适合软件开发呢?

  恰恰相反,我见过的最出色的软件工程师,都特别善于沟通交流,无一例外。查《代码大全》那本厚厚的砖头,有一章专门论述程序员的必要个人性格,除了最后一条以外,几乎都与人际关系有关:Curiosity(求知欲)、Intellectual Honesty(诚实)、Communication and Cooperation(交流与合作)、Creativity and Discipline(创造性和纪律)、Laziness(懒惰)。

  的确,大多数技术人员都比较内向,善于集中精力,不喜欢多说话。恰恰因为这样,就更需要特别注意交流。例如我自己在工作的时候,就是一个典型的话痨,前两天还刚发过邮件提醒新人:“罗嗦一点,多解释一下,总是没坏处”。其实我是内向型性格,多次心理测试结果都是“哲学家”型,也就是前面提到的内闭型思考者。(哈哈,出乎很多人的意料吧)

  澄清一点,心理学所谓内向外向,并不像普通人理解的,话多就是外向。而在于你在什么状态下得到“充电”。内向的人,倾向于在独处时通过沉思和自省,得到平静和自我认同;而外向的人,则通过与别人分享和交流的过程,得到自信和升华。

  人际交流是一种技巧,是可以学习和积累的。其实不少内向的人都善于交际,尽管我们的“能量”源于独处时的“充电”(例如读书、写日记、锻炼、上网等),但也知道如何扮演团队中的润滑剂或领袖,在合适的时机,把能量放射出来。

  要交流,就意味着面临种种压力:语言误会、花费精力、真话带来的麻烦、利益上的冲突、器量上的修炼……但这是团队成员必须承担的责任,是职业精神的一部分。只顾自保懒得交流,是软弱和缺乏热情的表现。

  BTW 1:润滑剂,是除领袖以外,团队里另一种凝聚型的角色。《最后期限》专门提到这种人:独特的亲和力,自然而然地维护团队气氛。

  BTW 2:谢国忠的BLOG里提到了工程师,黑色幽默了一把:“所以这个世道没什么公平可说,反正谁站对了地方谁就钱赚得多。我觉得对世界最有贡献的就是工程师,但工程师赚钱赚的最少,你要为国家做贡献的就选工程师,想为自己赚钱的还是想办法钻进投行做金融去。”

技术报告:pFind研发中的工程问题

  上周领导推荐我参加一线科研骨干的公开报告。其他报告人都是博士,讲的都是高深的学术题目。而我分享的是pFind开发中的工程问题,很浅显。听众反应似乎还不错,大概正是由于简单,大伙都能听得懂吧。

  很多人向我要slides,索性共享在学术主页让大家下载。报告分两部分,前一半是关于计算蛋白质组学的背景介绍,不关心的话,可以直接跳到后面软件工程和架构部分。因为是连夜准备的,排版有些粗糙,有时间我会继续修改完善,不好意思。

pFind 2.2 Alpha 1诞生

  刚和瓶子对鉴定结果进行了检查,发了邮件,正在往SVN里check in。比原定deadline推迟了3天。

  2.2版内核不仅在功能上有革命性的加强,还重构了遗留的山寨代码。这次迭代出的6号发车流程,在架构方面让我很满意。浩哥即将在此基础上,进一步演进开发下一代流程。

  现在语无伦次中,心脏怦怦跳,骨头里都在冒泡。

  这10天的双人编程是一次令人激动的经历。每晚22点我去赶末班地铁,大伙儿留下来继续煎熬。昨天他们折腾到接近1点,直到Boss H看着手表勒令所有人回去睡觉。提一下新人吴美女,一周多搞定两种谱图索引算法,消灭了整个11月的todo list,战斗力之强悍超出男生们的想象。

  待会儿要和浩哥进行code review。先去饭饭。

新人培训和并行模式

  昨天的会从中午13:00一直开到天黑,仍然剩下一半没讲完。

  总算有机会接触组里的新鲜血液。如今小孩子越来越厉害:各种数学和编程竞赛的奖项,正规科研的项目经验,外企兼职的工程素养,自信开朗的性格……本科四年真没白过。

  这次保研,组里招了一个北交大的。BOSS H说北交的“老人”留了好印象。希望师弟的表现能为后来者继续加分。

  由于奥运会原因,新生无法暑假入组进行培训,于是布置作业:实现一个排序软件。出差前委托zfy检查作业,他心领神会,搞出个含有5亿个double的文件来难为人家。32位进程空间是放不下5亿double的,但这种数据规模在生物信息领域并不特别。我还没看代码,据说小同学们考虑得很周全,文件里加个汉字什么的小陷阱轻易搞不崩溃的。

  周扒皮从上海回来,俺们在10月份进行更严格的工程训练。(云风好像装了雷达,发表了不错的C++编译教程,拿来拿来)

  BTW 1:祝愿HP百年好合,2.0的deadline是明年年底。

  BTW 2:找到了Ralph Johnson的讲座“Parallel Programming Patterns”的视频。推荐。

要回北京了

  一整天跑来跑去学术交流,21:30回到屋子,神舟7号已经发射了。搞定方便面和啤酒,头脑一片空白。

  以前没出过这么长时间的差。总算方方面面都搞定了,明天回北京。

  开始变老了,标志就是待人接物不再像初入社会时那样青涩和慌张。记得第一次去生物学家那里常驻,人家热情地伸出右手欢迎我,我刚要握,发现手心都是汗,只好在裤子上蹭干了再继续,把气氛搞得超级尴尬。

  又接到猎头电话了,最近几个月这种电话很多。懒,都打不起精神拾掇英文简历。也担心是不是放跑了机会。好像我现在的年龄和工作经历正是跳槽的黄金阶段。说正经的,如果现在离开,我的简历上只能列:花4年时间开发学术Demo。只有pFind成了,我才会变成工业级蛋白质鉴定搜索引擎的架构师和产品经理。

  BTW:今天这个猎头小姑娘很职业,让我交流起来松口气。作为提供职业生涯服务的专业人士,猎头应该善于倾听,懂得站在对方角度考虑周全。但我遇到过几次哭笑不得的情况。有位大姐,明明浏览过我的英文主页,也掌握了邮件地址,却上来就念错姓名的2/3,我反复纠正,下次电话顽强地再次说错,最后反而搞得我不好意思再提了;另一个小伙儿,半个小时电话里,只会来来回回强调:钱多、外企、光鲜……我怀疑他压根没听出来“你真的认为MFC界面工程师的职位适合我?”这句话的语气很无奈。

培训中

  这周参加集中培训,包括各种讲座辅导、拓展训练和心理咨询。收获不少。最开心的是有机会认识各个部门里很多年龄差不多的同事。昨晚密云水库打雷很厉害,今天早餐桌上,就听到有人在谈论刘欣慈的《球状闪电》。不过最近上网的机会很少。以前在“刘未鹏blog”看到过不少心理学的探讨,这次心理咨询讲座引起了更多兴趣,打算买几本书进一步看看。

  前段时间昼伏夜出。意识到很多朋友都挺关心,感动。俺活过来了,接下来就四处找大家去腐败。

近在咫尺

  8月8日近在咫尺。

  旁白:软件行业的惯例,越接近deadline,越像恐怖片情节。《梦断代码》里提到一本叫The Limits of Software的回忆录,记录了美国航空管理局Advanced Automation System项目的悲惨过程。1500名IBM程序员,每天花掉政府百万美元。项目后期,巨大的压力带来严重的心理创伤,“没有人——哪怕作者——可以全身而退”。有人砸烂自己的汽车;有人疯掉;有人自杀;有个项目经理开始吃纸上瘾,项目拖后得越多,他在开会时嘴里的塞的纸就越多。该项目最终因为超出了技术和人力的极限而失败。

  我还好,没吃纸,只是每晚三点钟才能睡着。7月份的Beta测试中,BugFree里共登录了75个Bug,目前还剩12个待修正,4个推迟到下一版;Todo List里还有8件事没做,包括3个技术报告,1个软件著作权申请;hp忙得脚朝天,对donkey和shark进行全面清理。

  压力大,火气就大,总发恶狠狠的邮件:

  最出色的工程师都会主动追求细节和完美,绝不会摆出一副“别来烦我”的死样子,给提意见帮忙完善产品的人施加压力。“不怕神一样的对手,就怕猪一样的队友”。谁让我闻出来,有不肯追求自己产品完美的味道,就滚出团队,别给我拉后腿。  

  8月8日正式发布,世界各地任何崩溃信息或使用疑问,都会转给软件负责人进行客户支持。如果软件本身问题一堆,人机交互界面设计得很垃圾,你就等着处理潮水一样的客户支持邮件吧。

  05年我刚接手pFind工作时,发过一封邮件,重温一下……

  发几张图,到了8月8日,大家就可以到官方站点上注册并申请免费下载最新版本的pFind Studio了。

pScan启动界面,pFind Studio家族系列里最年轻的应用软件,首次公开亮相。

pLabel的主界面,接近两万行代码进行了彻底重构,与老版完全不同了。

把全世界竞争对手的软件打得满地找牙。