软件行者
胡健
2006年4月15日
当年曾熟读毛主席的光辉著作“实践论”,毛主席教导我们,对事物的认识是“由浅入深,
由片面到更多的方面”的,要经过一番“去粗取精、去伪存真、由此及彼、由表及里”的
功夫的,“实践、认识、再实践、再认识,这种形式,循环往复以至无穷”,是辩证唯物
论的知行统一观。回顾这些年软件技术的发展似乎是循着这条路在走。大概主要原因是因
为软件领域,或更广泛一些说,计算机领域中学术界和工业界的关系和其他领域不同。一般
来说,学术界是更富于创新的。但在软件技术领域,例如,在面向对象技术领域,过去10多
年来几乎所有的创新都是来自工业界。作为软件从业者,必须力行实践。同时,软件技术
日新月异、五花八门,软件从业者还必须要活到老、学到老,否则真是会被时代淘汰(或曰
饭碗不保)。
孔夫子提出的“博学之、审问之、慎思之、明辨之、笃行之”,似乎特别适合软件开发实践。
从本人的经历来看,每参加一个新项目,都是一个“学、问、思、辨、行”的“迭代”过程。
学习新的知识和技术,叩问业务专家和用户,思考业务需求在技术上的可行性,辨析不同
方案的适用范围,当然最后是施行落实。
这里“博学之”,不仅是要广泛学习新的软件技术,同时也是要广泛学习应用领域知识。
最切实际的方法当然是在干中学。曾是毛主席的亲密战友,后来又被裁定是孔老二的孝子
贤孙的林副主席在“毛主席语录”的前言中写到:“学习毛主席著作要带着问题学,活学
活用,学用结合,急用先学,立杆见影”。把“毛主席著作”换成软件技术与应用领域知识,
林副主席的教诲倒也是在软件实践中的一种有效的学习方法。
强调在实践中学习,并非就是说在学校学习基础知识不重要。恰恰相反,不管软件技术如何
发展,有些最基础的东西,如数理逻辑、模块化设计、以及抽象与信息隐藏等原理却是
不变的(至少为本人的经历所证实)。同时,也要看到一个研究者和实践者的工作性质不同。
作为一个学者/研究者,在做学术性较强的题目时,一般来说可以有时间进行充分、严密
的推演。而实践应用中出现的问题则很有可能是零散的、具体的。问题如何解决常常是
需要在很多的限制条件(如时间、资源限制)作出即时而有效的(也许理论上不是最佳的)
决定。这取决于理论知识的拥有和理解,更取决于实践经验的积累。
本人多年一直从事软件开发工作,深感作为一个称职的软件从业者,既要有坚实的理论素养
和广博的知识,更需要在实践中培养正确地应用理论知识、不断地总结提高的能力。不仅
要是一个善学者,更需是个力行者。所以,有此网站域名SoftwarePractitioner.org,
而中文名之“软件行者”。
|