Tinyfool的Blog

这就是我,Tinyfool,郝培强!身高180,体重240,标准的中年老胖子。 有妻有女,无房无车,现居上海,程序员。

Browsing Posts in 生活

我把我的职业生涯回忆文章定名为《在路上》,是因为最近我有些感悟,开始不那么彷徨:人生是一段旅程,大多理想也许无法达到,但无所谓,只要还在路上,我们就可以继续追寻,这种努力的追寻有时候比结果更重要,有时候能产生比你想要的结果更好的结果。

其实我不并像很多人以为的那么乐观,我对我们的国家,我们的社会,我们的个人发展,总体的看法一直都是很悲观的,以至于这些认识讲出来都可能会违反我国法律。但是,最近在大问题上,我越来越不彷徨,我可以不管自己的内心多么悲观,多么苦闷,都积极的去面对这个世界,作出自己的努力。有些人对此有巨大作用,堪比照亮我漫漫前路的明灯,他们是刘涛,李志文,叶劲峰,周筠,刘江,李笑来,我会一一撰文介绍一下他们。

一、直爽,勤奋,执着的刘涛

twitter id:@liut
blog:http://liut.cc/blog/

刘涛是我的一个老朋友。最早知道他是很久以前了,那次我跟火炬讨论一个非常复杂的MySql问题,我们都束手无策。他跟我说要是刘涛在就好了,他说刘涛钻研一个东西就会钻研的很深,刘涛可以解决他遇到的所有的MySql的问题。说这句话的时候,刘涛还只是一个网管,兼MySql DBA。

过了几年,刘涛在一个公司做程序员。Donew5周年聚会,我、火炬和刘涛都应约参加。那次就是周鸿祎的第一次提出“谁的屁股都不干净,出来混都是要还的”,那时候,我和刘涛都坐在会场的一角。

刘涛问我,tiny,这个人这么无耻,你觉得应该不应该骂?

我说应该。

他立刻站起来,大喊了一句“周鸿祎,你给我滚下来”

全场皆惊,一片混乱,周鸿祎的回应大概是说,骂我的有本事上来说之类。

我就被刘涛吓了一跳,虽然之前火炬也跟我讲过刘涛的性格很直爽。此事,记录在我多年前写的Blog《参加Donews五周年聚会之爽与不爽》之中。那时我就非常佩服刘涛了,真是太直爽。

后来,我们创业曾考虑拉刘涛出来,但那时他所在的公司貌似很好,所以作罢。

后来,我老婆(@yatounini)生完孩子以后重新出来上班,刘涛和我另外一个朋友大鱼儿所在的公司也正在招人。我就跟刘涛说,希望让我老婆过去,跟他们学习学习。刘涛还是很直率的说,你老婆水平要是不行我们可不要啊。

其实那时候,我老婆的水平确实还很一般,我想让她过去主要目的也是希望她可以在一个比较靠谱的团队里面锻炼锻炼,提高一下水平,有刘涛和大鱼儿在的团队我百分百放心。

后来,因为我老婆的技术不行,编程习惯不好,刘涛有几次告诉我可能不想要她了。直到后来他和大鱼发现,我老婆做事情的时候往往还是很认真,也肯于学习,虽然底子差了一点,但是后来还是有很大进步的,我老婆才在那个公司真的立了足。

而因为刘涛的苛刻,我老婆也经常跟我抱怨刘涛要求太高了,甚至几次被气哭。

但是最后,我老婆还是理解了刘涛的苦心,从她自己的成长看到了刘涛的苛刻带来的诸多好处。

刘涛在项目中总是追求精益求精,对每个人check in的代码都会review,看到错误和不好的代码,都要求重做,或者他亲自改掉。因为他的严格,他们的项目才有了可靠的质量,也因为他的严格,我老婆的技术水平也有了很大的进步。

对比起来,我就很欠缺对完美追求的执着,也因为嫌麻烦不去做code review。在这个问题上实际上是有惨痛的教训的。我们做搜索产品的时候,有一个程序员水平虽然还可以,但是做事情很马虎。有很多次都出现了,他写一个代码花了一个星期,然后check in到我们的主线以后,后来,引发了很严重的事故,然后我和火炬花几个小时,甚至几天的时间调试才发现是他的bug。这些事故,很多都严重的影响了客户对我们服务的信任程度(不过幸亏我们的态度很诚恳,尽量及时解决问题,他们都原谅了我们)。

有一次是,我们的构建索引的老代码(我写的)因为省事儿用了Dom解析Xml,随着数据增长,内存耗费很严重。于是我要求他写一个Sax的解析程序,他自己没有搞定,在我做了demo后,指导后,终于做出来了。但是他把新的Sax实现加上去以后,居然没有去掉Dom实现。实际上,两个算法各跑了一遍。但是,他刚check in的时候,客户数据其实还不够大,而一个月后,客户的数据量暴增,我们的索引进程经常内存耗尽死掉。我调试了几次都没发现原因(数据量大测试也很麻烦),仔细看了代码后才发现他做的蠢事儿。这个错误非常明显,如果我们在他check in的时候,做code review是一定可以发现的。

还有一次是,让他来写一个文件下载功能。写好了以后简单测试都没有问题。过了一个月,有一天我们的lighttpd经常出问题,莫名其妙的php进程就占用了大量内存,甚至造成lighttpd无法响应。但是重起服务后,又没有任何问题了。出现问题的周期不固定,后来分析日志也很困难,出现问题的时候,有很多web行为,也很难看出有什么明显的入侵,或者反常访问。后来我怀疑是日志下载程序造成的,打开代码一看原来是他为了图省事儿调用file_get_contents函数来获取文件内容,下载小文件,小日志无所谓,用户下载几百兆的日志的时候,而且用多线程下载的时候,一下子就把服务器的内存耗尽了。这个问题很好解决,而且事先如果做了code review也是一定可以发现的。

所以我很后悔没有坚持拉刘涛跟我们一起创业,至少我们那个项目因为有了好的code review,能节省大量为解决各种程序bug耗费的时间。

刘涛很少写blog,最近才开始真的写一些,那天他刚写了一篇《一言难尽话PHP,兼谈我的编程经历》,我们公司的一个项目的负责人,一位非常牛的大牛,就跟我说要我帮忙把刘涛挖过来,因为这文章一看就知道刘涛是极少数真的懂PHP的人。

有刘涛这样直爽,勤奋和执着的朋友,或者说同道,时刻都提醒我不能对项目掉以轻心,要对质量有所追求,不要放弃自己观点,是我的第一盏明灯。

待续》》

我听说连岳有相当长时间了,仍旧懒得去看他写的文章,直到实在被周围称赞连岳的声音弄烦了,我才去看了看。果然写的很好,很多都对胃口。

后来,他开始上twitter,我fo了一下,基本上他推的东西也都很不错。我甚至有点失望,想找到他一个错处都很难。

好了,今天他在twitter上面说,

用过两件苹果的产品,很失望,只信自己的感受,今后不会再买它的产品了。

有人跟他讨论,我一句话都没说,虽然人人都以为我是果粉。但是我从来没觉得有人会不喜欢苹果的产品有什么稀奇,连岳不喜欢就不喜欢吧,关我何事?

然而,他又有一推,

我猜想,乔布斯最伟大的地方在于,就算吃尽苦头,你也不好意思说苹果不好用,这件衣服是世界上最漂亮的衣服。

这就让我觉得很没有意思了,你不喜欢苹果产品没什么的,你凭什么以为喜欢苹果的人都是不好意思说不好用的人,就你是《皇帝新装》里面的诚实小孩儿?我们要不虚伪,要不傻才用苹果的产品么?

我发了一推,不知道连岳看到与否,无所谓,看到与否都好。谢谢连岳给的不要迷信任何权威的新证据,有人以为我很生气,其实我很窃喜,一来发现人无完人,又一次得到了验证,价值观没有崩塌。二来,一直嫉妒连岳从来不出错,从来不主观,现在也有他瞎扯淡的证据了,人生真是美好啊。

我才不象霍炬那么无聊,天天逼着北风道歉,北风要是真的道歉不就知错就改,变成善莫大焉的好人了么?我要是霍炬,就天天宣传北风的先进事迹,但是求他不要道歉,这多好玩啊。

所以,我对连岳的期望也是类似的,别的方面你继续完美吧,希望你在苹果问题上越来越不客观,让我对这个世界每个人都不是完人这个伟大真理继续保持信心吧。

前些日子我写了《为什么我认为每个程序员都应该用Mac OS X?》马上被标上了果粉的标签,于是在Twitter上,在论坛里面,经常会有人对我说,真的很喜欢苹果,但是苹果的东西都太贵了,我们买不起。

我很诧异,发了些怎么会有人买不起的言论,以及做IT买不起就别混了这类的言论。结果被@wangpei同学标上了“何不吃肉糜”的标签,再加上推上很多学生跟我说,他们真的买不起,读书已经很贵了,买个3000块的台式机就觉得很吃力了。于是我幡然悔悟,发现自己已经脱离群众至此,羞愧难当。

当然我还经常听到一些学生跟我讲,太穷了,只好去看电子书。

然而刚才在听锵锵三人行,徐子东讲到一个他的故事。

他问他班里的学生,有多少人读过陀斯妥耶夫斯基的书。举手的人寥寥无几,他很勃然大怒说,出去不要说是我的学生,中文系的学生怎么能连《罪与罚》都没读过呢!

事后,一个学生跟他说,其实生活很困难,连上街去卖盗版盘的心思都有了。

他当时也被震撼了,跟学生说那不读也可。

可是,第二天,他想明白了,他说我绝不同情你,我想起来当年一个月5块钱生活费,也读了陀斯妥耶夫斯基,你生活困难不是你不好好读书的理由,任何一代人都有自己的苦难,这样的理由不成立。

我这才发现我的脑子真慢,徐子东一个晚上想明白的道理,我居然听了他的故事以后才想明白。

我也不是什么富有家庭的出身,我爸爸是普通石油工人(非农户口),妈妈是农民(农业户口,且从事农业…),我大学后才转的非农户口。

上高中的时候,我酷爱电脑,但是家里买不起。那时候,能接触电脑的唯一办法就是上电脑课,不过我们只有高一有一门电脑课。所以,我喜欢电脑,喜欢编程,但是也只能去看看书。那时候,我住校,一个星期的生活费是20元,我从小不乱花钱,父母也从不给额外的零用钱。吃顿饭去食堂1-2块钱可以搞定,20元一周五天,绝对也是不宽裕的。但是我每个学期都买了很多的书,其中有一本书标价35,你可以想象我是省了多少个星期才买下的。

那时候,我经常一天只吃一顿饭,有一次上体育课的做操时候,低血糖昏倒了。到了我高三的时候,生活费才涨到了50元一个星期,当然可以想见,物价也略有上涨。

那时候,我非常喜欢电脑,但是不太敢奢望父母给我买,最后父母也不知道是哪里来的魄力,高考前三天给我买了一台,花了8000多块,我爸那时候的工资可能也就是1xxx左右。那三天天天回家,不过没心思看书,就是玩电脑,当然高考没考好不是这个闹的。

我有很多写程序的朋友,大学的时候学的都不是计算机,所有知识都来自于自学。@virushuo同学是学建筑的,@hanlei同学是学越南语的,我自己是学机械的。

拿我来说,高中学的是GW-Basic,那时候整个学校估计都没有几个人知道什么是C语言。我有个同学买了本C语言的入门书,和Borland C++ 3.0的手册。那就是我们两个最爱的课外读物(其实课上也读…),但是两个人都没有见过Turbo C、Borland C++以及任何的C/C++编译器或者IDE。就这样,我们两个人津津有味的把那本手册读了3年。高三毕业前三天,买了自己的电脑,我在周围都没有找到Borland C++ 3.0可用的盗版盘。大学在机房,才第一次真的看到了Borland C++ 3.0是个什么样的东西。

说起来即使从毕业算起,我写程序也有快10年了,虽然不怎么长进,但是总还是在这个行业里面用写程序来安身立命。所以你的人生会怎样,基本上是你自己的选择。

最近,我们在和武汉博文出版社翻译一本书《Cocoa® Programming Developer’s Handbook》,不过大家都有点担心这么大部头的书,而且关注于Cocoa这个相对狭窄的领域,会不会滞销,甚至亏损。

不过我们会努力的做下去,因为不管外界环境是怎么样的,一切都看你自己的选择,即使这本书销量不好,出版社和我们也希望能把这本很好的书带给每个想学些Mac/iPhone/iPad开发的人们。

注:
在twitter关注这本书的消息,可以用#CPDH标签来搜索,我们几个译者都会不定期的在twitter上面聊些书里面的有意思的段落。