一晃六年,《技术领导之路》要再版重印了。回想刚刚开始翻译这本书时,我还忙碌在程序开发的一线,对领导技术团队并没有太多经验;如今,也能差强人意地带领技术团队支撑年销售额数亿的业务。一路走来跌跌撞撞,所幸没有中途倒下。思考其中的原因,除去运气,除去身边同事朋友的支持,翻译《技术领导之路》也是不容忽视的因素。
很多人都知道,“职场童年”非常重要,一个人最初工作的几年,在什么样的环境里,得到过什么样的锻炼,很可能决定了他整个职业生涯的走向。同样的道理,“领导力童年”也很重要,一个人对领导力的最初接触和认知,也会深深影响他对于“领导”和“领导力”的观点,甚至领导作风。所以,在我还忙于一线开发的时候,通过翻译《技术领导之路》,“生吞活剥”了一整套关于领导力的学说,基本“塑造”了我关于领导力的认知,深深影响了我作为技术领导的管理风格和价值取向,因此也对很多问题有了自己的判断——前段时间和另一位掌管公司技术的朋友聊天,说起那种“执行力超至上”的领导风格,我们都认为,尽管或许能出结果,但不是好的领导风格。
Continue reading 我所理解的技术领导力
算起来,我从互联网开发投身企业开发已经有四年多时间了。刚刚进入企业开发领域时心里很是忐忑,虽然也读过《企业应用架构模式》之类的书,到底没有做过正经的“企业开发”,好在业务不算太复杂,所以更多是借着之前互联网开发的老底子解决问题。而且,这么做确实能解决问题,只是心里还不太放心,总觉得这不是名正言顺的“企业开发”,以后会有问题。
谈到传统的企业开发,大家通常想到的是“为明确目标(通常由甲方设定)而开发的紧耦合固定系统”,主要元素包括重型框架、长发布周期、严格的限制、海量的文档、对商用软件的倚重等等。谈到互联网开发,大家通常想到的是“为不明确或多变目标而开发的松散多变系统”,主要元素包括轻量类库、迅速迭代、不断试错、简单交流、开源/免费软件的广泛使用。传统上,企业开发和互联网开发俨然两派,你觉得我是杂乱无章的恣意胡闹,我觉得你是傻大笨粗的因循守旧,好在双方“井水不犯河水”,也相安无事。
企业开发和互联网开发的这种区别,让我在以互联网开发的方式应对企业开发任务时,始终有挥之不去的担忧。然而工作得越久,事实却不断证明这种担忧是多余的,或者至少不必高估“企业开发”的正统性。而且,有越来越多的迹象让我相信,企业开发的互联网转向,即在企业开发中越来越多地采用互联网开发的方法,是未来的趋势。按照我的总结,原因大致有以下几点。
Continue reading 企业开发的互联网转型
最近因为工作的缘故,接触了TokuMX,尝试下来感觉不错,值得介绍给大家。
事情的起因是要解决MongoDB的问题。系统中需要保存程序输出的运行信息,这类信息比程序语言的log更高级,但又不如业务操作日志高级,是某些时候发现问题的关键证据,所以必须保存。因为格式不太规范,又需要方便检索,所以文档型NoSQL的MongoDB是比较好的选择。
但是,选择MongoDB就必然会面对磁盘空间的问题。我们的数据大概是这样的:每天的数据量不到200万条,单条数据的平均大小不超过4k,但MongoDB存一个月的数据就消耗了接近40G,最近三个月的数据则需要接近100G。限于具体的硬件环境,只能保存最近三个月的数据,但这无法满足业务需求,所以必须另想办法。
Continue reading TokuMX使用小计
本文翻译自 TokuMX Fractal Tree(R) indexes, what are they?
TokuMX的一大创新在于,它打破了一条长久存在的关于数据库的规则:要保证好的写入性能,索引的工作集应当能够放在内存里。标准答案是这样的:如果索引的工作集比内存要大,写入就需要执行I/O,I/O就会成为限制因素,性能就会下降。所以,要么让索引小到能全部放进内存,要么提供一种索引写入模式,避免工作集过大,比如MongoDB所采用的,内存中只为最近插入的数据保存索引。
但对TokuMX来说,这是绝对不成立的。依靠TokuMX所提供的创新性的分形树索引,索引的工作集可以比内存更大,同时写入性能不受影响。分形树索引为什么在重度写入(无论是MongoDB还是MySQL)的评测中能表现优异,原因就在这里。
Continue reading 翻译文档:TokuMX的分形索引是什么?
读大学的时候去考了托福,成绩很是出乎我的意料,作文竟然有5.5分。当时托福作文的满分是6分,5.5分的Rank似乎是95%,也就是说在所有考生中排名前5%。这完全超出我的想象,因为之前没有上过新东方,也没有参加过任何培训班,如果说做了什么复习,似乎就是与同学结对写作、互相修改,练习了大概20篇作文。这个办法是很多考生都在用的,却只有我拿到了5.5的分数,朋友们也觉得很惊讶,问我有什么诀窍。我仔细想想,如果真的有什么要诀,那就是复习时在网上看过俞敏洪的演讲。
演讲的全文我已经不记得了,只记得其中的一个问答。有人问他:在没有老师指导的情况下如何练习作文?俞敏洪的回答是:如果自己练习,那么拿到题目先不要看范文,想想自己要怎么写,写出来,再对比范文,看看人家为什么写得好,有哪些地方可以学习。
Continue reading 没有比较,难有收获
我经常被人问这样的问题:“你读书似乎很快,有什么经验介绍吗?”。刚开始面对这样的问题,总是觉得莫名其妙,因为我从来也没觉得自己读书有多快。直到慢慢被问得多了,我逐渐意识到,大概有人觉得自己读书速度不如我快,所以希望讨教一些秘诀。可是仔细想想,我确实没有掌握什么妙方。如果真的要分析我为什么读书“比较快”的话,我能列出来的只有自己的若干经验。
Continue reading 怎样读书比较快?
最近几年,“互联网思维”忽然热门起来,似乎成了点石成金的本领,掌握“互联网思维”就变得神通广大,不会“互联网思维”的人则注定要被淘汰。这让我非常惭愧,说起来我上网也有很多年的历史了,大学毕业后一直做与互联网相关的工作,虽然感觉到互联网的一些特点,却从来也不知道什么是“互联网思维”。不过俗话说“光脚的不怕穿鞋的”,所以不懂互联网思维,并不妨碍我使用和观察互联网,也不妨碍我谈谈自己对互联网的理解。在我看来,互联网并没有太多玄妙,它神奇的地方只是加速信息的有效流动,由此改变或产生了许多全新的应用形态。这个观点,从互联网发展的历史来看更加明显。
在正式开始谈“互联网”之前,我们不应忽略一个重要的准备阶段,即“信息化”(或者叫“电子化”、“数字化”。实际上,本文所说的“信息”基本都是“数字化的电子信息”)。也就是信息从物理载体抽离出来,成为“纯粹”的信息。书籍和报刊的电子化就是这个阶段的重要体现。我深深记得,《读者》杂志创刊20年之际,发行了一套3张CD,记录了《读者》20年的所有内容。之前很多人终年购买《读者》杂志,花了很多钱,其中的很大部分花销都用于纸张、印刷、装订、发行等等环节,与他真正关心的内容无关。信息化之后,读者只需要为自己真正关心的信息花钱(光盘的物料成本很低,可以不计),获得信息的成本大大降低。而且信息化的文档还可以方便地存放、检索、复制,所以信息利用的效率也大大提高了。除了文字,图片、视频、声音等内容也纷纷加入这一进程,以数字化的方式存储起来。只是这些信息还处于孤立的状态,而且形式各异,不方便交互。
Continue reading 我理解的互联网
上周在深圳见朋友,聊天时仍然把“正则表达式”和我联系在一起,这真让人惭愧,因为我已经很久不写正则表达式了,甚至有些生疏。估计是Jeffrey Fridel的《精通正则表达式》写得太好,身为译者的我也沾了不少光,收获不少虚名。为避免误解,撇去虚名,有必要专门写写我和正则表达式的故事。
我和正则表达式的缘份,始于我的第一份工作。那时我刚刚离开学校,除了在学校里认真写过些程序实现书上的理论和练习,根本没做过实际的项目。找工作当然也不顺利,尤其不是北京的高校毕业,在北京找工作更加困难。好不容易找到一家公司愿意收留我,周四上午面试、下午复试、周五就签合同,通知“下周一来上班”了。
我清楚地记得,上班的第一天,为了不让其他人看穿自己其实没有项目经验,我特意带了那本厚厚的影印版《the Java Programming Language》,一来充门面,二来也抱抱佛脚,之前在学校写的都是C++程序,Java确实不熟悉。而且,上午确实没太多事情干,这本书救了我的命。
好日子在下午就到了头,项目经理给我们做培训。当我满心欢喜地参加培训,希望通过培训来“软着陆”时,等来的却是高强度的信息轰炸:一小时内讲完了JBuilder、JUnit、Ant三样东西,我完全没有接触过,但公司要求“明天就开始使用”。读书时虽然不排斥学习新的知识,毕竟习惯“循序渐进”,这种“培训”闻所未闻,结束之后只觉得大脑一片混沌。在QQ向同学吐槽说“公司这么不讲道理,纯粹血汗工厂”,答复却出乎我的意料:“赚翻了,赶紧学,我们想用还不让用呢”。在当时,被“堵”的感觉特别糟糕,但转念一想,这么说也有道理,所以我拼命忍住反感,硬着头皮学习。
Continue reading 纯属偶然——我和正则表达式的缘份
工作是在大公司更好,还是小公司更好?这个问题让大家争论不休,也没有最终的答案。凑个热闹,我结合自己的经历,谈谈我的看法。
我最开始工作就是在小公司。当时刚刚毕业,在对工作完全没有概念的情况下,进入了一家小的创业公司。虽然今天想起来,作为创业公司,它有这样那样的不足,但我依然非常珍惜那段经历。主要原因是,虽然在创业公司,我仍然受到了相对良好的职业训练。当时我的两位领导都是毕业于清华,而且在搜狐工作过的,有丰富经验的IT人员。所以我最初工作的两个月,几乎是每天在批评中度过的。虽然我在学校也认真写过一些程序,但还是每天被批得一无是处,因为学生写的程序,距离生产系统要求的工业级别,实在是差得太远了。所幸自己当时脸皮厚,被批了就赶紧改,根本不去想太多,这样过了两个月,终于没那么少被批评了。当然,另一方面是因为我受到的批评都是“对事不对人”的,所以一直没有“人格被否定”的糟糕感觉。
第一份工作我做了一年多,最大的收获是在领导持续的严厉批评下,深刻认识到了“现实生产环境需要的程序是什么样的”,其次就是模糊地领悟到,持续的“对事不对人”的批评,可以营造出追求专业进步的价值观。现在回头去看,很多人即便进到大公司,受到各种条框的限制,也不见得理解这些约束的意义;加之,如果领导没有严格的要求,没有树立“工作至上”的价值观,身为员工很可能不会有太多收获,反而会受到负面的影响。
Continue reading 大公司?小公司?我的经历和建议
读书经验告诉我,读书不但要看书的内容,还需要留意作者、流派等等一系列信息,这样才能获得更丰富的认知。《社会性动物》和《绝非偶然》已经让我受益匪浅,所以看到《错不在我》的作者是阿伦森的时候,我便毫不犹豫地买下来,事实证明,这本书确实值得一读。
“错不在我”,这是工作生活中经常听到的说法,几乎人人都说过这样的话。而且许多时候,明明“错在我”,大家还是要说“错不在我”,比如美国发动伊拉克战争,明明没有找到大规模杀伤性武器,小布什仍然认为“错不在我”;再比如基辛格面对20世纪70年代美国入侵越南的战争罪指控,也会说“一定有别人出错了”。阿伦森的《错不在我》就是从心理学的角度出发,分析这种现象,并给出了很多有益的建议和结论。
Continue reading 别从金字塔顶端跌落