程序其实也是一种艺术
                                                                                               ——袁红岗的程序人生

闫辉 贾菡  / 文
 
许多人以为程序员就是每天面对浩如烟海的枯燥数据,进行着机械繁重的工作,毫无想象力可言。可是对于袁红岗这样一位从事了十几年程序开发工作的高级软件工程师来说,写程序其实也是一种艺术创作,需要作家般华丽的想象力、音乐家的激情、哲学家般缜密的思考。在这份他人看来似乎属于纯理性领域的工作里,他总能感受到创作的喜悦和艰辛,如同艺术作品带来的激情和成就感。在这十多年期间,袁红岗一向都很低调,只是在论坛上留下和网友的技术讨论以及自己的经验分享。
“软件是为使用者服务的。”
在大学期间的袁红岗,曾经满足于自己动手制作小软件带来的成就感。一个机会,让在校的他就参与到国家“八五”攻关项目“集成化软件工程开发环境——青鸟系统”的开发研制工作,使用C在UNIX系统之上编写工具软件。在这个项目中,袁红岗主要负责其中“C软件测试工具”的设计与开发。这个项目获得国家科委颁发的“0500系列软件评审”一等奖,北京市优秀软件评比一等奖。这个奖项曾给他带来很大的成就感,但后来他发现,制作出来的软件却被从此搁置了,没有人用它,该软件唯一发挥作用的机会,就仅仅是用来测试了一下其自身而已,这让一度颇感自豪的袁红岗顿时怅然若失。从此他立志让自己写的每一款软件都发挥其应有的作用,而不是让心血凝成的作品被束之高阁。
抱着这一志愿,在1993年毕业之后的袁红岗进入科健公司,参与研制了“动态心电监护——Holler”的软件研制工作,并获得广东省青年高科技博览会金奖,产品投入生产,取得了一定的社会效益和经济效益,此刻他才真正尝到了制作的软件有实际价值的成就感。
在后来的工作实践与探索中,袁红岗对自己提出了更高的要求,在进入金蝶公司以后,他通过学习财务知识,尽量把自己扮演成为用户的角色去了解他们的需求和使用习惯,同时也带领程序员们用换位思考的方式,将自己放到虚拟的使用场景中,体会软件制作中所应注意到的使用合理性。他总是强调,不好用的软件做出来也没有意义,只有让专业财务人员使用起来得心应手、无可挑剔,才称得上实现了软件设计的真正目标。
经过这几次的项目经验,袁红岗逐渐摸索出了自己制作的软件应以“既实用、又好用”的标准来衡量的理念。“软件首先是为使用者服务的。”他认为,技术只是手段,目的是为了实用。袁红岗希望自己做出来的软件有广泛的应用,能真正满足用户业务的需要,符合用户使用习惯,并且有较好的使用体验。
“已经有稳定版本了,我就不要再做,我只做新的东西。”
1994年12月袁红岗加盟金蝶公司时,中国软件在DOS平台上的大型应用软件还非常少,在Windows平台上的软件数量更微乎其微。作为当今中国可以引以为自豪的财务软件在那时还都清一色是DOS版,金蝶的也不例外。但是金蝶的产品已经小有名气,销售前景非常可观,已经给公司带来了很大的利润,完全可以在此基础上稳打稳扎地巩固已有的成绩,继续赢利。但袁红岗不愿就此满足、在前人已经做好的DOS版软件基础上再重复工作,他更喜欢向新的领域发出挑战,于是在获得公司的支持之后,他开始开发Windows版财务软件的工作。
为了全力支持Windows版财务软件的开发,金蝶将本来盈利可观的DOS开发和销售的工作完全停止,全力投入Windows版财务软件的开发,决心做一次转型的新尝试。在历经一年多的艰苦奋斗后,1997年,金蝶Windows版财务软件终于面世,当年就被《计算机世界》评为中国Windows版财务软件总分第一名,这也使袁红岗一夜成名。
当这个Windows平台的稳定软件版本被开发出来之后,袁红岗再次把工作完全转交出去,开始寻找新的开发领域。原有的金蝶ERP是使用PB进行开发的,功能虽然强大健全,但是没有采用组件化的设计思想,商品化程度很差。他关注到了这一点,开始采用微软最新的DNA体系和C/S三层结构技术来重新开发一套满足分布式计算需要的ERP系统。1999年底,金蝶的招牌产品K3成功面世。袁红岗又在更高一级台阶上获得了新的成就,但是对于他来说,这只意味着旧领域开发告一段落,新的领域又在向他招手,更神秘的世界在吸引着他。不断地向计算机软件技术的更高、更深领域探索已成为他人生的座右铭。
“中间件,我也可以做。”
1999年,J2EE规范发布,成为一种企业级计算的标准,整合了多家传统大型企业级计算厂商围绕JAVA语言开发的各种中间件技术,形成了一套完整的分布式体系架构。在金蝶急于使用中间件的情况下,袁红岗开始了对被BEA收购后的WebLogic进行研究,发现基于Java、基于互联网的应用服务器虽然比BEA的原来的产品好,但同样有不少问题。
当时,虽然有了不少的Java工具,但J2EE平台还没有形成,由于很少在企业中应用,成功案例很少见,很多人都将Java视为一种程序员的业余玩具。但是凭着在国外学习时的阅历和经验,袁红岗果断带领数十位程序员转到了Java,并且认为开发出一个J2EE应用服务器,金蝶不仅能拥有自己的核心技术,还能对这种复杂的分布式计算了如指掌。
在国内,金蝶是最早涉足应用服务器的厂商之一。1998年,BEA在完成收购后迅速向国内推出其应用服务器产品Weblogic;1999年,电子商务的倡导者IBM也推出自己的应用服务器WebSphere。到2000年时,国内市场的应用服务器产品有Sun、Oracle、Sybase和Borland的产品。在同年11月,袁红岗带领的金蝶中间件开发团队推出了拥有自主知识产权,符合J2EE规范的Apusic应用服务器1.0版,产品发布没多久,即获得了第一个用户——天运网的应用。这使金蝶成功地抢滩,占得技术和市场的双重先机。
袁红岗认为大家都在同一个规范下开发、都通过了J2EE 1.4认证,从纯技术角度看,金蝶与IBM和BEA没有质的差别。在软件行业,操作系统、数据库和中间件被称为系统软件的三架马车,国外软件业在操作系统和数据库方面某种程度上已经占据了不可动摇的地位,而中间件在国外发展也没有多长时间,国内完全有可能在这个领域和国外进行抗争。在2005年5月,美国SUN公司正式授予金蝶ApusicV4.0成功通过J2EE最高规范1.4的认证奖牌,并与金蝶中间件签署了战略合作协议。袁红岗命名的Apusic应用服务器是国内第一个通过J2EE认证的中间件产品,迄今为止,全球只有11家同类产品通过该级别认证,在国内的系统软件发展史上写下重要的一笔。
“编写代码只是我十分之一的工作,其余时间都是在思考。”
在常人看来,象袁红岗这样的程序员一定是每天黑白颠倒、象个机器一样日夜埋头编写代码的工作状态。然而事实上在他的开发工作中,先期的绝大部分时间都是在进行思考,如同艺术家的创作一样。他习惯于先在脑子里构思作品的结构与形式,深入挖掘用户的需求,根据业务逻辑考虑软件中可能出现的各种问题,将各个细节和框架都考虑周全之后,再用很少的时间做真正的编码工作。真正动手时一气呵成,整个作品流畅通顺、浑然一体。
袁红岗的住处一度离公司只有5分钟路程,然而他却很少在公司出现,总是习惯在家里工作。要知道,在金蝶公司拥有这样特权的人只有一两个而已,而这也是靠他的成绩获得的信任使然。在开发前期,处于对软件的“构思”阶段时,他表现得和平常人没有什么区别:吃饭、睡觉、休息、娱乐,思考就与这些正常生活的同步进行。一旦构思完成,就进入了最后冲刺阶段,连续作战,日夜颠倒,在很短的时间内完成产品的编码工作。
“除了编程,我什么都不会。”
袁红岗这样评价自己。的确,一天工作14个小时以上,根本没有时间去顾及别的事情,生活完全由妻子安排和照顾。“她为我放弃的太多了。”提到这一点,他的眼中总是闪过一丝愧欠。
原本兴趣爱好十分广泛的袁红岗,为了软件事业,几乎把原来的爱好都荒废了,唯一剩下的就是对天文学的喜爱。他认为天文学其实
和编程有共通之处,都需要非常好的想象力,是对大脑很好的锻炼。面对着浩繁闪烁的星空,他总是能领略到更多更深层次的东西,感受到生命的渺小,也感悟到思想的伟大。
袁红岗觉得,编写软件不仅是他的工作,更是他的兴趣。一个人一生中能遇到一份使他感兴趣的工作并不容易,而兴趣能够成为人一生中全部的工作则是最大的幸运,在兴趣中工作着的人是幸福的。

程序员的成长故事之 袁红岗的程序人生相关推荐

  1. 袁红岗的程序员修炼之道

    袁红岗的程序员修炼之道 转载引言: 袁红岗1994年加盟金蝶,1996年在整个行业还处在DOS时代时最早成功开发出基于Windows平台的金蝶财务软件,开创了依靠技术创新推动企业快速发展的典范:199 ...

  2. 菜鸟程序员的成长之路(一)——菜鸟程序员起步

    看到标题之后,突然想起一句文的话:白驹过隙,时光荏苒.每当看到这么有文采的话,总觉得有点酸,再酸我也用*^◎^*. 9月开学季,大家陆续返校,让我想起了三年前自己带着新奇与憧憬步入大学,大学对我来说一 ...

  3. 程序员如何成长?如何进阶?——一个老程序员的经验分享2

    准备好了,我们需要开始起步了,所有的理想都是美好的,对于新人来说,这种美好都是原始动力,它不该被抹杀其作用,我很不同意一些人在开始就打击新人的这种出于理想主义的冲动,所以,我在这里要告诉那些新人如何利 ...

  4. 程序员如何成长?如何进阶?——一个老程序员的经验分享3

    前面讲的东西显然还是太过理论化了,下面来讲讲具体怎么做才能让一个没有基础的人能够踏进软件开发这个行业来. 有了前面的对这个世界的初步了解,我估计你接下来会考虑难度问题. 从门外看,软件是有一定难度的, ...

  5. 程序员如何成长?如何进阶?——一个老程序员的经验分享1

    做程序员十六年了,带过很多新人,闲着没事就把之前给新人们做培训的资料整理出来,分享一下,希望能给想做程序员的新人们给以建议和帮助. 1.心理准备. 程序员的世界是一个外面看着光鲜亮丽,但是实际里面十分 ...

  6. 一位资深程序员的成长故事

    大学生活对很多人来说都是美好的,可一旦走出校园,就充满了惶恐和不安.记得栀子花开的季节,一位计算机系的学长讲述了自己的求职经历. 结缘与苦学 大学与女友异地四年,原本想着毕业后去女友生活的城市. 慎重 ...

  7. 程序员的成长故事之 五年技术之路

    五年技术之路                                                                                           章立民 ...

  8. 程序员的成长故事之 从微软走向开源的5年

               从微软走向开源的5年                                                                                ...

  9. 程序员的成长故事之 我的Borland五年

      我的Borland五年                                                                                        ...

最新文章

  1. python2的input,关于python2.x input函数的安全隐患
  2. ArcGIS的许可文件问题
  3. T-SQL 聚合函数Count与NULL
  4. c++仪表盘。。。附源码
  5. mysql ERROR 1045 (28000): Access denied for user解决方法
  6. Spring的两种属性注入方式
  7. 如何写 go 代码 (How to Write Go Code 翻译)
  8. tp中怎么执行mysql事务_tp中使用事务
  9. stlink 升级固件以后失败_STM32固件升级的一点经验
  10. python中文件打开的合法模式组合_详解python中各种文件打开模式
  11. 用 npm script 实现构建流水线
  12. 电导增量法matlab,基于变步长电导增量法MPPT研究.doc
  13. 程序猿 C语言入门 颈椎,【计时器小工具】70行代码让你远离颈椎病,致所有的程序猿们...
  14. Python分析并绘制可视化动态地图,实时查询全球疫情数据(11月最新...)
  15. 深入浅出TensorFlow2函数——tf.data.Dataset.shuffle
  16. gvim 换行符替换
  17. 数字后端基本概念介绍Blockage Link
  18. 2023 Ai绘画 stable diffusion 笔记本配置硬件要求
  19. ps2键盘测试软件,PS2键盘51测试程序2
  20. 第三代电力电子半导体:SiC MOSFET学习笔记(四)SiC MOSFET传统驱动电路保护

热门文章

  1. 基于java软式装修设计网站mp4计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  2. CRISPR基因编辑技术新进展整理
  3. 内存管理单元——MMU
  4. java jframe教程_Java Swing JFrame窗口的实现
  5. Unity 支持UGUI Mask遮罩的PhotoShop混合模式特效Shader
  6. 限时抢购团购倒计时活动完整js代码
  7. dede 掉调用优酷视
  8. 一些好用的maven插件介绍
  9. 大仙教学 Spring Security
  10. 3D角色 毛发制作 使用 hair-strand-designer 贴图整理 Part2