大鸟蛋的故事
前 言
人生就是一场一去不复返的旅行。在旅途过程中,能够留下一些什么东西值得“后继者”们回忆?
就程序员而言,最好的情况就是能够留下一件自己的作品:一本书?一个系统?或者两者兼而有之。
无论是什么,创作自己的东西都需要平静的思考以下四个问题:
① 为什么创作它?
② 它与别的东西有什么不同?
③ 如何让它变得更好?
④ 最终它能带来什么?
阅读以下故事,你会知道大鸟的答案。
(一)创作起源
每个人都有梦想,就像建筑师梦想着人们住在由自己设计的房子里,服装师梦想着人们穿着由自己设计的衣服,而大鸟作为一名IT研发工程师也梦想着自己设计一套软件,能让人喜欢!于是,“要做一款自己的软件”跳进了他的脑海。
当然,每个梦想都有个实现过程,就如那句名言:“罗马不是一日建成的!”。于是,自正式工作的那一天起,业余时间大鸟就开始了“鸟域花香”的建设之旅。
有人曾问他,这会不会影响工作?
他的答案是:“不会”。
因为,从一开始,创作的立意就是为了制作一套自定义风格的JAVA组件库与工具包。就像机械制造中的标准件那样,需要时拿来用即可,这是必然有助于任何一款软件的开发过程的!
正是在这样的想法的推动下,大鸟用了几乎十年的业余时间来创作各种功能的组件,以至于在软件还未成型之前,就拥有了一个规模不小的组件仓库,它包括103个通用
工具和505个客户端组件,可谓小有所成!
不过,这个仓库没有界面,可复用的实用组件只有自己知道,这显然是不能令人满意的。
如何把这些组件串起来,展示出去呢?
大鸟开始设想组件展示的解决方案,但绝不能仅仅只为了展示!
于是,他像一个软件架构师那样不断去规划着产品的设计方案,它不仅需要尽可能的展示出各种组件,同时还需要尽可能的拥有实用功能,一方面能被普通用户所接受,另一方面能为将来的拓展做准备。
这是一个不那么容易的设想,但幸运的是,还是被他找到了一种解决方案。
——这就是极富客户端!
因为极富客户端是为了改善用户体验而努力,关键在于图形和动画效果,而这是任何一款软件所需要的。
有了这样的认识,大鸟一边开始学习极富客户端的开发知识,一边开始设计产品的功能模块。他想大众用户对于软件产品的功能需求包括以下5个方面:
① 图像浏览与简易编辑。
② 影音播放。
③ 文本编辑与打印。
④ 浏览网页。
⑤ 聊天。
这5个方面只需要实现各自最基本的功能,就能有效展示组件仓库的一切,还能够创作出这样一种独特的产品,即同时具备上网聊天,影音播放,文本编辑与图像处理的软件。
这个想法有点让人暗喜,于是,大鸟将这件产品命名为:大鸟蛋,寓意大鸟软件的第一次诞生。同时,给产品中每个功能模块起了各自独特的名字:图像精灵、潘多拉魔盒、文档大师、环游天下、海豚之歌、打印助手与飞语。
然而,这些想起来云里雾里的事情,做起来就像在田里,弯一个腰,插一个秧,漫长的劳动只为期待秋天的收获!接着,又是经历无数个充满星光的夜晚,几个小作品终于诞生了:

图 1 图像精灵

图 2 潘多拉魔盒

图 3 文档大师

图 4 环游天下

图 5 打印助手

图 6 飞语
这些外观效果看起来是不是很棒呢!
大鸟将它们展示到了开源技术群,很快获得了不少伙伴的意见,其中,最为引人注目的一点就是:“软件尚可,但没有主题,犹如一个人四肢健全,却缺少灵魂。”
(二)寻找灵魂
开源朋友的提议让大鸟十分纠结,按中国道家理法,自盘古创世,世间万物皆有灵性,软件也需要灵魂。那么,他的作品应该被赋予什么主题呢?
当大鸟为软件的灵魂范愁时,一张图片启发了他。

图 7 2010年4月23日遇见的图
这是大鸟在2010年4月23日,指尖一个不小心的触动引发浏览器呈现的一张图(在此之前,他对“世界读书日”毫无概念。),吸引到他的是画面中看书的一家人。
大鸟觉得这是一个十分温馨的情景,一家人一起读书在世界读书日的承托下也显得更有启发意义。
“一本好书,一生财富”——这不正是当今世界正在推崇的生活态度吗?
一个以大众功能为主的生活软件也应该以推崇学习进取为宗旨。
这幅图为大鸟带来了一切,使他联想到了“阅读者”这个美丽而且舒服的名字并且立刻将它制作成了软件产品的启动画面,他认为“大鸟蛋”和世间万物一样必须经历不断学习才能成长。

图 8 大鸟蛋的启动画面
是不是很棒!
“4月23日,是世界读书日。”——在这一天,大鸟软件的灵魂诞生了。
(三)成长
软件有了灵魂,犹如一个生命被注入了思想,“大鸟蛋”便开始像一个出生的婴孩般迫不及待奔向少年,注定要在这浑天暗地的IT江湖中开拓出自己的一片天空。
但究竟如何才能学会十八般武艺呢?
来自西方的IT教士Dru Riley给大鸟蛋送来了三句箴言,并把对这三句箴言的解读通过天外飞书记录在了信件《3 Ways to Become a Better Developer》中:
1. 做出个东西
对于编程学习来说,当你了解了一门语言的基础语法后,找一个项目或者一个小功能软件去做,针对性的学习那些需要完成这个任务必须具备的知识技能。
这样会让你有一个学习的环境和目标,逼迫你去激发创造力。从而,会产生某些最有价值的知识,它来自于解决那些之前没有人解决过的独特问题。
当然,这个过程是辛苦的,但是,你必须坚持。
2. 传教
将你所做的东西尽情推广出去,这会让你发现自己在某些地方上做的很烂,某些方面的知识掌握的也很烂,于是,这能激发你去深入研究某项知识技能。
同时,传教能够让你帮助他人,同时满足你自己的求知欲,并提升你的价值。
3. 结伴
结伴编程是最快的学习别人分享的知识的方法。你吸取他们的知识,工作方式以及问题的解决策略,无需费力的用自己的亲身体验去获取它们。并且,结伴编程能够大大缩短学习时间,使枯燥的事情变得有趣,也能给团队带来新鲜的思想。
细读这句箴言所表达的三个诀窍:1、做出个东西;2、传教;3、结伴。
在机缘巧合之下,大鸟在创作“大鸟蛋”的过程中正好实践了前面两个诀窍,对于第三个诀窍,在广联达的数据中台部门有两个好的制度是“结队编程”与研发团队的“每周分享”活动,正是这些结伴活动所涉及的知识点丰富了大鸟的技术体系。
(四)幸福归途
幸福是什么?
有一段话解释的非常好:“小时候幸福是一样东西,得到了便是幸福。长大后幸福是一个目标,达到了就是幸福。成熟后幸福是一种心态,领悟了就幸福了。”
大鸟认为这句话可以总结为三个纯粹之道,分别对应幸福的三个阶段。
第一阶段,属于纯粹的物质,是获取幸福必经的初级阶段,然而它是短暂的。
第二阶段,属于纯粹的精神,是获取幸福更高层次的阶段,它需要付出努力多一些,但是它会持续的更长久。
第三阶段,属于纯粹的人,是保持幸福的持久阶段了。
在IT界的修行者如何实践这一过程找到自己的幸福归途?
大鸟推荐方法:结伴,找到志同道合的人一起做一件开心的事。
理由很简单:“独乐乐不如众乐乐”。
如果说IT修行者的自我学习成长是享受“独乐乐”的过程,那么结伴进步则是享受“众乐乐”的过程。
对于IT修行者来说,结伴是体现自身价值,获取职业幸福的一个最好方式。
此外,大鸟在企业文化培训时发现广联达43条经营哲学中有两句话:“最佳接力赛”和“形成合力”。它们的意思是作为一个团队在一起工作的人,要努力做心心相印,互相信赖的伙伴,团结一致,协调配合,抱着共同的使命,朝着共同的目标前进。不难发现,这里面也有着结伴的意味。
结伴也是大鸟在创作大鸟蛋时期望达成的一个目的:通过大鸟蛋的传播结识更多的朋友,形成更大范围的互动。
后记
以大鸟蛋的创作为背景,大鸟精心构思并编排了一本书《鸟域花香之JAVA九式小计》。全书内容与编写风格力求做到将枯燥的技术转换为有趣的文字。
此外,为了让这本技术类书籍尽可能做到极致,在准备各章正文的时候大鸟首先将其描述给了身边的同事以便获取宝贵的改进意见。
虽然,在这里没有必要一一罗列这些意见,但正是它们促成了本书的组织风格:全书共分九章,每章再分九个议题,内容均按照江湖习武修道的风格进行描述。
第1式 古墓宝典,玉女心经。
第2式 不传秘法,暗送秋波。
第3式 武穆遗书,行军布阵。
第4式 江湖绝技,易容换面。
第5式 逍遥轻功,凌波微步。
第6式 少林绝学,护体神功。
......

图 9 书籍封面
大鸟期望鸟域的修真者 —— 程序员们研读完这八十一节内容后能达到“九九归一”的境界。那时,欢迎加入“鸟域”一起建设另一片天空。你会发现“鸟域”会是一个属于代码的修真世界。在这个世界的每一个人,每一个东西,包括:高山大海,刀剑风云,其本质都是一串数字流,都可以被你所具备的能力转换为另外一件事物。比如:如果你知道一块石头的内部结构并且参透其中玄妙就能用程序和接口改变它的一切,同样,如果你能参透自身这一个复杂的操作系统,就能重新编译自己获得更大的能力。
故事说到这里,对于本篇开章时所提出的问题,大鸟相信各位都有了自己的答案。