王辉的博客

是什么让我对未知世界始终充满热情?

Martin Fowler说:“我是一个作家,一个演说家,实质上,我是一个在软件开发领域,爱说敢言的专业评论家。80年代中期,我接触到了新兴的面向对象式的软件开发,从那以后,我就一直工作于软件行业。90年代的大部分时间,我扮演的是顾问和讲师的角色,以企业应用为中心,帮助人们构建基于面向对象的软件系统。2000年,我加入了ThoughtWorks。 我的主要兴趣就是研究如何设计软件,使得它能最大限度的提高开发团队的工作效率。 为此,我学习了优秀的软件设计模式以及有利于软件设计的流程。 后来,我成为了一个敏捷开发的忠实粉丝,专注于行业前沿的软件设计方法。”

之所以对这段自我介绍感兴趣,是因为它启发了我对于一个软件从业人员在职业规划方面的思考。简单的一段话中,出现了不少描写职业的关键词:作家,演说家,评论家,顾问,讲师。这其中,我想重点分析的是作家和顾问。

阅读全文 »

小猫钓鱼,还想着蝴蝶,三心二意,结果,两手空空,终无所获。拿这个家喻户晓的故事当作警示,却常常发现,自己又何尝不是一只三心二意的猫。

初秋的时候,在同事的推荐下,决定读一下佐拉的萌芽(germinal),可迫于书中晦涩的法语,当阅读变成一种训练的时候,转向了广受好评的明朝那些事。这次体验是轻松加愉快,但随着新的想法不断冒出,那些事还没读完七分之一,又开篇尝试,被称为企业家必读之书,艾因兰德的名作,源头。除此之外,平日里,还胡乱的看了一些技术方面的著作。

说的矫情点,这叫培养发散性思维。其实呢,这是典型的浅尝辄止,不求甚解,成不了大业。二十一世纪的今天,互联网的出现和成熟,使信息的传播速度不知道比明朝快了多少万倍。但不可否认的是,它是一把双刃剑,同时加速了注意力的转移速度。舆论的误导诱惑也罢,自身的浮躁短视也好,人们变得越来越耐不住寂寞,越来越沉不下来气,纵向思考。

所谓纵向思考,就是集中精力深入的做好一件事情,善始善终。我想,大凡美好的事物,往往隐藏的很深。没有一颗纵向思考,勇于探索,耐得住寂寞的心,是很难发现它们的。这也许正是它们之所以美丽的原因。

失业在家,闲来无事,终于有时间可以读上几本,在公司里不太适合读的书, 特别是鲍勃大叔的代码简洁之道(clean code)。之所以说它在公司里不适合读,因为这类书的目的不在于帮助解决紧急棘手的问题,而是为了提高程序员的个人修养,特别是对那些不满足能用就行,而中意于在代码中追求美与快乐的人。书中,他提了很多建议,比如说,方法(function)要小的,类(class)要小的,单元测试(unit test)也要小的,可究竟多小才算小,三行,五行,还是十多行?

短小精悍的东西,有很多优点。首先是它看了让人一目了然,看着舒坦,看着愉悦。其次,浓缩的都是精华,它们只专注于应该做的,并且做的最干净利落,最完美无瑕。最后,他们有可能让一切变得更加井井有条,你是喜欢把所有的东西塞进同一层抽屉里,乱如麻,还是归类存放,便入查找,维护和管理?反正我是偏爱后一个。

阅读全文 »

“这周有点可惜,没能把这个功能给发布了”,上面旁敲侧击的对我如是说,其实是在提醒我加快进度。如果沿着铺好的路,老老实实的走,我应该已经完成任务了。但我偏偏,现成的路不走,另辟了斜径,误了行程。

至于为何劳神费心,再铺新路,我觉得是没有真正学会如何尊重他人的劳动成果。不错,用批判性的思维看问题,往往可以把问题分析的更全面,更透彻,但只会批判,不懂得赞许,就很可能封锁视野,看不到他人他物中美好的一面。更何况,对任何人来说,赞许总是比批判显得更加友好,更容易融洽气氛。

阅读全文 »

在博客里,我很少会提到IT技术方面的问题。一是觉得这些东西会很晦涩,不易理解。更主要的是,限于自己的境界,很多想说的话都已经被人给说过了,吃别人嚼过的东西,指定是越嚼越无味。

至于第一个限制,我可以试着慢慢更改,毕竟博客不是写给所有人看的,能遇到一些同行,做些真正深入的交流,总归是一件幸事。至于第二个原因,我仍会很大程度上的去坚持,尽最大努力,不写重复性的东西。但偶尔站在巨人的肩膀上,看到的一些趣事,也许值得用几行文字,做个留念。

实习的时候,老鸟们告诉我,写代码前先写注释,把要做的事情,先用文字表达出来,然后再编码。工作了以后(公司的确是换了),读着老鸟们写下的代码,却没有找到半行注释。彷徨在这个矛盾前,我不禁想问个为什么?

阅读全文 »

日起日落,秋夏更替,周而复始,亘古不曾有变。

人一生所经历的安逸与坎坷,又何尝不是如此。得意的时候,身轻如燕,难免有些摇摆。遭遇挫折的时候,开始提心吊胆,做事百密无疏。之后渐渐走出困境,萦绕心头的危机二字,在胜利曙光的照耀下,消失的无影无踪。正因为如此,人生中,安逸与坎坷交互更替。

阅读全文 »

我选择信息系统专业是冲着一个词去的:架构。怀着对技术的激情和对知识的饥渴,起初的时候,我简单的认为做架构就是要掌握很多技术,网络,数据库,操作系统,各种编程语言,设计模式等等。直至遇到某公司面试中的一个问题,我才开始对架构有新的理解。掌握五花八门的技术并不意味,我们能成为一名架构师。

问题基本是这样的:需要知道,在我们公司,你负责的只可能是整体软件(共18,000,000行)一个的模块,你不可能像咨询公司的技术人员那样,每隔一两年就可以换个公司,去体验新的任务。恐怕这里不利于让你成为你想成为的架构师。

阅读全文 »
0%