佩服的技术大牛 “赵劼”
http://www.ituring.com.cn/article/14720
图灵访谈之三十六:专访赵劼(@老赵)
“码农人物志”新派码农代表:赵劼,网名@老赵,洋名Jeffrey Zhao,享乐派码农。最爱美女,其次是编程和弹钢琴。 目前就职于IBM,高级咨询师。InfoQ中文站编辑,多次受邀于微软TechED,MSDN WebCast及各微软官方或社区会议中担任技术议题讲师。最近致力于Wind.js项目的开发与推广,并关注F#,Scala语言及mono平台在社区中的发展。
编程人生的开始
一开始大家都是每天在一起做类似的事情,但是到后来你就会发现,你们在以后的发展路径中就再也没有交点了。
图灵社区:你是什么时候开始学编程的?
我小学毕业的时候搞来一台486电脑,上面装了一个DOS系统,于是我开始搞最简单的编程,当时就是为了好玩。我用DOS写了一个bat,功能大概 是在系统启动之后自动执行,生成一个菜单,可以上一页下一页或者按个数字进入某个应用,退出后重新回到这个菜单,目的就是为了避免输入命令,方便操作。当 时还没有互联网,全靠一本叫“DOS6.2”的书,这是唯一的渠道,现在回想起来,这些东西好像也挺有难度的,不是那么简单(笑)。后来(写代码)就是为 了玩游戏,什么大富翁3,大航海时代什么的,都是那个时候的经典。我一直对计算机比较感兴趣,小时候还学了十年钢琴,但是我敢说基本没有琴童是对钢琴感兴 趣的,可能长大后会有些兴趣,但是当时肯定都是被逼被打的。后来我发现自己太笨,玩不好游戏。上大学的时候大家流行玩CS,(玩游戏时)我人都没看到一个,就死了,下一局,还是没看到人,我又死了,我就搞不清楚这个东西的趣味在什么地方,所以不如把时间花在写程序上比较有趣。
我的升学经历就是全考,我的有些同学都是一路直升,没有经过大考,而我每次都是差一点点。小学考初中时,老师总说你们要是不好好学习,到时候就差 0.5分考不上,结果那个人就是我。高考的时候,我努力搞计算机竞赛,想去交大。我其他成绩比较差,一直以来的打算就是不高考,精力都是用在信息奥赛方 面。结果我高考那年交大拿了一个ACM的世界冠军,显得很牛,当时有五大联赛:数学、物理、生物、化学、计算机,而交大只要数学或者物理的直升,而复旦都 要。最后没办法,还得高考,我用仅剩的半年时间拼命读书,同时因为痛恨交大所以报了复旦,还好最后考进了。
图灵社区:你所接受的大学教育有什么可圈可点之处吗?
进入复旦的软件学院对于我来说是很幸运的,当时的院长很有水平,在理念上很先进。从大一开始我们的所有教材都是国外的,全英文。其中大部分都是MIT等国际名校的教材,比如《深入理解计算机系统》那本书就是我们主要的教材,学编程基础课时也建议我们看Core Java,学操作系统的时候用的也都是响当当的恐龙书,现在看来真的是很有价值。我们从大一开始啃大部头的英文原作,我只能硬啃,不能怕,这样学下来收获是很大的。当时人人都这样学习,所以整体环境也是很向上,我同寝室隔壁寝室的人大都比我强。可惜现在看来,我大学的时光还是浪费了很多,算是比上不足,比下有余。
有时候我会很奇怪,为什么有些人没有看过《操作系统概论》,为什么有人觉得写一个语言或者编译器是一件很了不起的事情,为什么很多人也都没有自己写过操作系统。这 些其实都是学校里的大作业,虽然我们写的操作系统也是比较弱的,但是那也是一个操作系统,线程调度,虚拟内存,文件系统等等,该有的都会有,也可以在虚拟 机里启动。这些在我看来应该是人人都做过的东西,而很多人都没有做过。虽然我大学里专业课成绩也不算差,但是因为当时在学校的学习有时间压力,也贪玩,虽 然不玩游戏但也会跟同学或女朋友玩,同时也很懒,所以教科书中的很多内容其实还是没有吃透。
还有一点就是课程的设计,我们还有函数式编程课程,我那时学LISP,后两年的学生学的是Haskell。学到后来有不同方向,无论哪个方向都可以 毕业。有些人甚至学的是逻辑式编程,prolog什么的。虽然很多东西对我的帮助可能不会直接感受到,例如我没有做过任何实际的操作系统或函数式开发,但 是这些课程设计是很了不起的。
一直都有人问我不知道怎么进步,有什么书可以推荐。我通常的回答就是,你要提高什么我不知道,但我建议你回到大学的课程,也可以参考国外教科书中的内容,跟着教科书你肯定不会错。
在大学里,有些东西我要看三五遍才能懂,而我寝室的兄弟只看一遍就懂了。他大一就看《具体数学》,甚至高德纳那套《计算机程序设计艺术》那样的书,我希望有一天我也能看懂这套书。很多人在大学之初看起来都差不多,一开始大家都是每天在一起做类似的事情,但是到后来你就会发现,你们在以后的发展路径中就再也没有交点了。我认识的一起在暑假里做过项目的人中就有人去了普林斯顿,走上了科研道路,我觉得我似乎永远都无法企及他那种高度了。
理想?现实?
这段创业经历给我的启示就是,我不想当老板,我就想当码农,快乐地编码。
图灵社区:你有没有什么梦想?
我从小就想当科学家。科学家是推动人类进步的源动力,我相信世界是由科学家推动的。他们不一定要有很强的工业背景,我所崇拜的科学家就是搞研究的, 并不急着把自己研究的东西转化成实际产品,世界上不缺急着赚钱的人。他们(科学家)可能会做10年,20年以后才能得到有实际用途的东西,等到这些东西真 正发展成熟了工业界才会拿去用。科学家会把世界向前推动一点点,而不是在已知的领域把已知的东西反复利用,炒作价值。比 如华尔街那些用钱生钱,玩数字游戏的一群人,他们可以赚很多的钱,但是他们对人类发展的贡献很小。我尊重个人的选择,有人喜欢赚大钱让自己过得舒服一点, 但对我个人而言对于科学家更有认同感。我希望以后可以赚够足够的钱,不用工作就可以生活,那时我愿意重新去读书,重新进入学术界。
我承认科技有它的副作用,但是那是由于人类的滥用。例如,现在由于科技只是发展到一定程度,它能产生让人吃上去舒服但是并不健康的东西,但是如果再 往前发展,我相信添加剂可以做到提高口感而且很健康,而这些负面的效果可能只是因为科技发展还不够,人类还没有准备好。现在的社会环境就是做好事可能没有 什么直接好处,但是做坏事有可能会拿到很多钱,人们权衡利弊,还是决定做坏事。假如做好事和坏事的成本和收益相差不大,我相信人们还是会选择做好事的。
我认为宗教和科学并不抵触,宗教让人对未知的世界保留一丝敬畏,科学解决不了的东西也是存在的。科学是在探索世界,而不是在发明世界。
图灵社区:谈一下你职业发展的历程吧。
我第一份工作是在一家国内二线的大型网站,开发他们的媒体平台。我忍不了程序员们无所事事、甚至还不想好好做事情的氛围,所以只呆了六个月左右就离 开了。举个例子,他们有的人可能会复制粘贴50次,也不会想到要提取出一个公用的方法。这地方的氛围跟我理想里的科研机构根本没法比,就像是你说草履虫不 是哺乳动物一样,中间还隔着十万八千里呢。
后来我和陈黎夫一起创业两年多,做一个女性奢侈品网站。这段创业经历给我的启示就是,我不想当老板,我就想当码农,快乐地编码。创业对我来说没什么吸引人的地方。有了这段经历,人家再跟我说创业的时候,我就可以说:创业,我早创过了。当时刚出校门没多久,思路也不清楚,说实话这次创业也只是一个普通的工作,只不过自由一些,工资少些。
后来我去了盛大,差点试用期没有过。因为老板坐在我身后,一抬头就能看见我的屏幕,他就会问:你怎么又在刷微博啊?别 人都是试用期过了直接入职,我当时和老板谈老半天。其实我干的活也不比别人少,麦库的架构都是我一点一点搭出来的,第一行代码就是我提交的,现在的API 也是我当时绞尽脑汁设计和实现出来的,自诩十分漂亮,十分Restful。虽然我不喜欢做产品,也不认同只有产品才能体现技术的价值或是技术脱离产品就失 去意义等观点,但就算从产品角度来衡量工作成果,好像我还是比很多人干得有价值呢。盛大创新院诞生过很多项目,死掉的不少,突出的不多,但麦库算是其中比 较突出的一个吧。
现在我在IBM,去IBM并没有经过猎头,我似乎不是猎头们喜欢的类型(笑),基本没人来找过我。来IBM的主要原因是在深圳工作,面向香港客户, 我想这样在香港产子会方便一些,这方面对我来说还是很有吸引力的。我现在是香港公民,但不是永久居民。只要有工作签证就能拿到香港身份证,便是所谓的香港 公民了,但必须连续六年还是七年是香港公民才能成为“永久居民”。可惜我刚去香港没多久,香港就规定“双非”子女即使在香港出生也不算永久居民,直接摧毁 了我南下最主要的原因。我一直说我运气很不好,读书时每次直升都差一点点。我的小学初中关门了,高中大学都堕落了,之前提到我很敬佩的院长也因为某些原因 去交大了,至于呆过的公司则要么倒闭要么走下坡路。
我的自我调节能力还是很强的,总能在工作中找到自己喜欢做的事情。在IBM的时间对我来说过得很快。我对工作的要求就是不要让我不停的加班,没有自己的时间,晚上七点最晚八点对我来说就应该结束工作了。我是享乐派码农,最爱美女,其次是弹钢琴,接着才是编程,所以我不会去创业,也自觉不加入创业公司。我自诩加入哪家创业公司哪家就必倒,至少工作态度上会被我带坏。创业跟享乐还是很难共存的。
图灵社区:你现在在IBM的工作内容是什么?
很多人其实不知道我做些什么,他们能看到的最多只是我写的文章等东西。我平时的工作既不流行也不火,只是一般的平常工作。我现在在IBM里做投资银 行的相关项目,完全不涉及IBM内部事务。比如说给投行做一些交易系统前端之类,比如说处理交易,聚合一些数据给人看等等。用户则根据这些数据制定下一步 的行动决策,设法赚更多的钱。在银行这种非技术为核心的不差钱的机构,很倾向于直接买现成的东西来一用。他们不差钱,可以拿钱换时间、换机会。我不少技术 方面的工作实际都是围绕这些现成的产品,而银行的核心业务很少有人能接触到。核心业务,比如说根据大量的历史交易辅助交易员和研究员作出下一步决策。这里 面需要大量的数学和算法知识,也需要对业务熟悉,而大部分人都是在做外围,买一个设备、买一个软件,然后使用。
我在GDC,算是IBM的二等部门,这个部门可以简单认为是IBM开的外包公司,例如前段时间非常著名的苏宁项目,便是南京GDC参与的。GDC前 几年还不算是正式的IBM部门,后来才进入IBM的正式编制,但对于IBM一等部门,例如IBM China及CDL的一些人来说,GDC的人都不算是真正的IBM员工。这个部门也很难让人产生归属感,虽然我的合同是长期的,但是有些项目的人签的都是 短期合同,雇用期随着项目中止而结束。
图灵社区:你看起来精力充沛,你怎么分配你的时间?生活的时间?维护博客的时间?学习新技术的时间?
我7点左右下班,女朋友一般会早下班买菜回家,我到家后做饭,吃完饭可能会弹会儿钢琴,但是10点之后就不能再弹了,邻居会疯掉的,我承诺图灵社区 会录一段钢琴曲给大家(笑)。我之前还会花时间健身、减肥,但是减到80(公斤)就再也减不下去了。他们都说我的体型是“正太”分布的曲线。其实我觉得我 的生活还是挺丰富多彩的,例如除了弹琴外我唱歌也不错。之前我还参加了深圳IBM唱歌比赛,最后拿了第三名,而且在打分阶段我还是第一,只不过PK的时候 败了。有人说码农苦逼,我倒觉得还好,我现在的同事有那么一堆人,每个周末都在一起玩,比如看电影啊吃饭啊K歌啊桌游啊或是去海边玩什么的,还有什么“吃 遍深圳”计划,high的不得了,反倒是我周末要忙着写代码或是陪女朋友活动,只是偶尔才加入他们。所以关键还是看自己啊,一是要热爱写代码,这样就不会觉得工作太累,二是要热爱生活,没说码农就只能宅在家的。
我博客的内容大部分都是平时在想,真正需要码字的时候其实不费多少时间。博客维护对于我来说是随时随地的事,你经常会看到我拿着一个平板电脑,有可 能我就是在做这件事。其实我觉得写作就是在说话,把你想说的东西写清楚就可以了,怎么想就怎么说,怎么说就怎么写。Wind.js可以说是提升我个人价值 的东西。很难统计每周我花在这上面的时间,因为我可能每时每刻都在思考一些东西、构思一些代码,甚至在脑中进行实现,至少每时每刻都因为它在和别人进行交流。我现在在推广它,希望在未来某个时刻,忽然有一个大项目或者大公司决定使用它,或者收编它,这样它就能火了。
对于新的技术,我一般很少看这方面的书,但是我会把源代码花一点时间(比如说一个周末)看一下,里面有一些沟沟坎坎就全都清楚了,该怎么用,靠想也 能想明白。对于我比较熟悉的技术,我可能从头到尾执行一遍就知道(怎么回事)了,然后在网上看一些介绍用法的文章,我就能想到它是怎么做出来的。看一个项 目我也知道从哪里看起,因为我知道它的执行过程是怎么样的。书当然也会看,但一般都是看些实现原理,设计思路的书,因为这些内容有时很难从代码里看出来。 当然对于大部分我不会深入的技术,我可能就不会读源代码,直接看一些内部实现或是思路分析的书就满足了。
以“玩”之名
我为了玩技术而搞技术,这层次显然比为了做产品才搞技术要高得多嘛。
图灵社区:有人说你不会转换自我价值?
我觉得还好吧,我写博客,和大家交流也影响了很多人啊。我赚的钱也够花,按照winter同学的说法,虽然买不起房,很多人也买不起啊,但我去必胜客点最贵的套餐也丝毫没有压力啊。难道是说我不是分析师管理层,或不是什么O吗?其实我现在就是Wind.js的CEO加上CTO加上天使投资人,我还是Founder,连co都没有。
或者是因为我不写书?我还是情愿多写点程序,多写点零碎的文章来讲讲自己的想法。我喜欢自由,而写书会被太多的东西束缚住。我不喜欢在边角上投入精 力,有这个时间,我情愿去做一个项目,例如把Wind.js的边边角角都做好,然后顺便写一些总结和体会。写书我认为需要面面俱到,把沟沟坎坎都填掉,而 我现在还没有那种精力和状态。
我是个纯码农,还是享乐派的,所以我是为了兴趣才写代码,写代码完全是因为好玩。有人说搞技术是为了做产品,没有产品技术就失去意义,我倒不觉得。在我看来技术不仅仅是工具,还是玩具,甚至是艺术品。我为了玩技术而搞技术,这层次显然比为了做产品才搞技术要高得多嘛。你 看动物只把交配作为繁衍后代的手段,而人类已经把交配当作娱乐和社会活动了。现在很多技术人员喜欢说产品,我觉得这其实挺有问题的。你知道自己在什么场合 或者在说什么东西倒也罢,但我看来很多时候就是一些不怎么样的技术人员在瞎找借口乱讲大道理。举个不怎么好听的例子,在讨论语言设计的时候总有人会嚷嚷 “语言之争没有意义”什么的,在我看来这好比人类在讨论某些“技术性问题”的时候,动物们冲出来插嘴说“体位之争没有意义”。但其实呢?它们首先不知道并 非所有物种都是为了繁衍才交配的,其次它们也不懂体位对于繁殖的效率也是很重要的。比如人类在帮狗配种之后,都会把母狗倒悬20分钟,目的就是为了增加受 精成功率。
你看我微博的认证信息,不是那个自己随便填的个人说明,就是“资深码农”,我是真以码农身份为豪的。所以我也不会对什么业界大事或是传言做什么分析什么,在我看来那是互联网分析师做的事情,我挺不喜欢现在网上遍地都是的那种产品经理或者分析师。我甚至不会对技术做什么预测,因为预测什么的我觉得太不靠谱,太廉价,很多时候正过来反过去说都行,都太没意思了。我最多就根据“事实”发表看法,当然也就是在技术方面。
图灵社区:最近有很多关于裁员和失业的新闻,你觉得作为程序员需要掌握什么样的能力,学什么样的技术?
把自己和任何产业或者某种技术绑定在一起在我看来都是不太可靠的,对于我来说,我干任何工作我都是以提高个人能力为目标,这样安全一点。当然话说回来,现在想要绑定某种技术也不容易吧,搞.NET的失业了就不能去搞Java了吗?如果某人真把自己和某种技术绑死了,那基本就是自找的。我 觉得现在很多同学遇到的困难都可以归结为自找的。例如,说程序员找不到女朋友?那是因为你不敢厚着脸皮去找,我就基本一追一个准,我觉得IT男其实挺有优 势的。例如,说程序员看不懂英语书?那是因为你没有像我一样硬啃原版的大部头书,我的英语也就四级水品,之前在微博上被一大堆人鄙视的,但我现在英语做点 技术方面的双语演讲也够用。例如,说程序员不会写文章作演讲?那是因为没有坚持写坚持说,我刚开始写的博客现在看起来也十分稚嫩,初中时竞选大队长时我演讲双腿发抖同学都看得到,而现在面向几百人做演讲毫无压力,这都是自己逼出来的。好吧不说了,再说下去变炫耀贴了……
回到技术,我认为技术要根植于现在。有些人觉得专注于稳定的技术不怕找不到工作、吃不饱饭,但是吃的香不香、好不好就是另外一回事儿了。热 门的东西可以捞一票就走,然后吃香的喝辣的去。例如,虽然C的历史十分悠久,重要性毋庸置疑,但是搞C的人一定能找到很好的工作吗?有可能这个市场已经饱 和了,只有学得很好的那群人才能到很好的报酬。而如果你做很火的技术比如说php,那里有大量的工作机会,没准可以得到很快的提升,你的生活水平和自身价 值也会得到迅速地提高。
我在技术上很倾向于微软,但是就算(微软)真倒了我也不担心找不到好工作,因为我又没有把自己绑死在微软技术上,而且技术多少是相通的,去搞别家技术一样顺利。打个比方,当年Google最火的一件事情就是从微软大肆挖人,假如搞微软技术都必须靠微软才能混饭吃,那么那些人去了Google之后是做什么的?难 道是写.NET或做Windows开发么?还有,StackOverflow总得分第一的Jon Skeet,也就是我唯二或唯三推荐的.NET必读书籍《深入理解C#》的作者,他搞了好久的.NET,比我还深入也说不定,结果不也直接被挖去 Google嘛。说起来我推荐的另一本.NET必读书籍Framework Design Guideline的作者之一Brad Abrams也跳槽Google了,所以实在不行我也可以去Google嘛(笑)。
我学技术唯一的标准就是要有意思,好玩,或者说有美感、符合我的口味。就像我很不喜欢指针和或纠缠于内存地址等大量细节,所以我就对C和C++都敬 而远之,尤其是后者,前者至少比较容易理解吧,大学里也用过不少。其实我十年前在IE6上玩JavaScript的时候不也是破破烂烂的嘛,谁知道后来 Google和Chrome把它带火了呢?
我相信的事
我不会为了推广自己的概念而忽悠人或者贬低别人。我只会说我认为正确的东西。
图灵社区:你是出了名的微软系,为什么对微软这么推崇?
我做.NET的原因是因为对Anders Heisenberg的崇拜,而后来技术这条路线是对微软的欣赏。经常听某些老一代程序员说微软对程序员怎么怎么不好,抛弃了多少技术,但我没这种体会。 我应该算是随着.NET诞生开始搞微软技术的,之前做的更多的是Java,中学时则更多用Delphi做过一些小游戏以及一些教学用的课件,而从 搞.NET开始我就没觉得它有放弃的迹象。
我欣赏微软,是因为微软在软件研发,乃至研究方面的投入是最大的,而且它在研究方面的投入可谓不计回报,所以你会发现微软研究院有很多案例都很有 趣,而在开发技术方面,它的DevLabs里面也有许多有趣的项目和技术,例如Reactive Framework,实在是让我眼前一亮,真心佩服那些人的聪明才智。Reactive Framework的思路是对“拉”模型的接口取逆,成为一种推模型,然后一下子就可以推广至各式推模型和异步操作了。Reactive Framework的提出者是Erik Meijer,他是微软的级别比较高的研究员,之前在大学里当教授,这种人我想当喜欢。微软的研究成果可能很长时间以后才会变成产品,比如说 Kinect。话说回来,我的Wind.js也是受到了他们的F#中计算表达式特性的启发,说实话F#也没有多火或是多流行,但有多少公司会用心发展一门受众不那么广的语言,并放入自己的主流产品中?像Google开发Dart或Go语言,目的都相当明确,就是要替换现有的JavaScript或C++等语言。有人总说苹果公司研发投入比微软少得多,却赚得确盆满钵盈,表明转化效率多么惊人,所以多么厉害。我的结论恰好相反,因为商业上的成功不能吸引我,相比起来我更佩服微软那种不计产出——当然肯定不会丝毫不计——的研发投入,这跟我佩服搞科研的人是一种思路,我就欣赏某些二杆子精神。
有人常会问我为什么不去微软工作,我之所以没有去微软是因为,理论上说,在微软你不可以读开源的代码。微软害怕你在看了开源的项目之后,会不知不觉 地在工作中应用到开源东西,产生法律纠纷。这点真的很可惜,必须对微软做出严厉批评,还好微软开源的东西也越来越多了,F#和ASP.NET一直开源,现 在整个ASP.NET 技术基本都开源了,还有Entity Framework等等。现在微软也在Node.js和HTML5等开放技术上投入很多。例如,在iOS上使用HTML5技术开发应用还有因为太简单被苹 果拒绝的风险,而Win8直接把HTML5作为原生开发技术了,最近微软还和某公司共同向HTML5移植了大量经典小游戏,所以我一直自诩杂牌技术玩家, 但搞了半天最后还是没有逃出微软的五指山(笑)。
图灵社区:你和开源社区和开源项目其实有着很多联系,你对国内开源现状怎么看?
我认为国内的开源属于开源初级阶段,就是说打着开源的旗号来做其他一些事情。举个例子来说,现在的开源项目貌似很多,每个公司都有开源项目,但是很 多公司他们只是开源自己的东西,而不用别人的东西。开源自己的东西很容易,因为代码都是自己写的,我可以说我要弄一个开源项目,然后我把我的代码放出去, 然后这个事情就结束了。但是你有没有在持续更新呢?有没有对这个项目的周边进行持续性投入呢?
开源项目附带有一种正面的宣传效果,好像取得了道德制高点一样。用来体现公司对社会的价值,提高公司的层次。但是问题是,你自己用的是不是你开源出 去的东西?有的公司本身在用一套,但是并不及时更新外面的程序,开放源代码很容易,但是配套的东西都没有做到位。这里还会涉及另到一些问题,比如说,我从 外界可不可以提交代码?外部想用这个东西有没有足够的说明文档?使用这个东西出了问题应该找谁?有没有什么地方可以讨论出一套解决方案?别的公司可以用你 的东西吗?而你会用别人的东西吗?比如说Hadoop,源于Yahoo,很多公司都在用,Facebook也在用也在不断贡献,它同时也在开源自己的一些 技术,Facebook开源的技术Yahoo也能用,Yahoo也会作出贡献。
开源之所以有意义就是因为,每个人都可以提交补丁,为它作贡献,最终达到大家都获益的效果。而国内的现状就是你不用我的,我也不用你的,我不在意别人用不用我的东西,我也不在意这个东西接下来的发展,我只是作出一个姿态:这个东西开源了。比 如说最近两年,大家都号称开源了自己的底层数据库,而为什么大家最终都只是各做各的?说白了这也不过是一种广告而已。而不是我为你的项目贡献,让我自己变 的更好。我觉得一个好的状态应该是,一个项目出来,没有人在意这个项目是谁的,没有人算计和计较究竟谁获益较多。其实开源就应该是大公司搞了,用自己的资 源和钱来支撑这个项目,最后做出有益的东西,而不是随便玩玩。
图灵社区:你经常被卷入网上的一些争论中,你怎么看待这件事?
我一直都认为自己是个不太聪明的人,但是虽然这样我仍然在茁壮成长。之所以有些人觉得我很自信,是因为我会花时间学习,我认为我已经掌握了令自己信 服的东西之后,才会据理力争。可能有人花一个小时查几个名词解释就可以很有底气,但是我可能要花5个小时才能把一些东西搞明白。你可以“拍”我,只要你的 道理是通的,我也会经常纠正自己的观点。我希望可以用作研究的态度来争论一些观点,但是实际过程中可能未必控制得好。
我觉得程序员在讨论技术话题时,不要扯太远,能给数据就给数据,没有数据也可以讲道理,不要绕。我很烦讨论的时候偏离主线,绕得很远。比如说,你说你的做法速度快,我测了一下觉得速度不快,你就说“这个做法还有其他好处”,结果就越扯越开。本来谈技术,谈到后来又扯到用户体验。前 段时间在讨论内存大小的问题,有人说某某情况下有内存泄漏,然后我和别人做过实验没有内存泄漏,后来对方又说内存大有什么不好,结果实验下来实际上只是系 统认为没有必要及时释放而已,接着对方又说这会让用户体验不好会让界面卡,但是为什么会影响用户体验?你必须拿出一些证据。这种情况下话题越扯越多,本来 一开始讨论的是什么就不管了。转移话题也是可以的,但是个中关系应该讲清楚,从内存大到用户体验,中间涉及到一系列的为什么,这些就是应该说清楚的。
还有程序员大都比较“机灵”,无论什么结论都能找出理由来。例如,有人在苹果东西卖的不好的时候会说它的产品多么好,而新产品无甚亮点的时候,又会说这种保守策略很正常,你看卖的不照样很好么?这种“争论”就很没意思,正过来反过去都是你说了算,所以我也很讨厌许多产品经理和分析师。话 说这方面还是Amazon好,其实我最喜欢的公司是Amazon,它真正推动了云服务产业,而且电子书和平板设备都在不断超越自己,还卖的那么便宜,还没 那么多不理智的粉丝。有些争吵的影响力很大,大家转来转去的,而很多这样的争论在我看来都没啥价值,但有时候我也会控制不住。
我不反感别人喷,但是我反感别人乱喷,我微博上也关注了一些喜欢喷的朋友,因为喷得有道理,不乱喷,我觉得挺不错的。我喜欢看别人吵架,但是这要建立在双方都能说出道理的前提下。网 络上大部分的吵架都无法让人吸取到营养。很多人吵架都是意气之争,一语不和,就开始争论,都是想赢,而不是关注问题。当然我也不赞同有些人说在争论技术的 时候一定要心平气和,口不吐脏字,用最平和的方式来讨论。最重要的是逻辑一定要清晰。我在推Wind.js的时候一定会把适用场合说清楚,而不是一概而论 说它哪都好。我不会为了推广自己的概念而忽悠人或者贬低别人。我只会说我认为正确的东西。
所以我还真不适合当销售,完全就是个码农。