太行、王屋二山,方七百里,高万仞。本在冀州之南,河阳之北。
北山愚公者,年且九十,面山而居。惩山北之塞,出入之迂也。聚室而谋曰:“吾与汝毕力平险,指通豫南,达于汉阴,可乎?”杂然相许。其妻献疑曰:“以君之力,曾不能损魁父之丘,如太行、王屋何?且焉置土石?”杂曰:“投诸渤海之尾,隐土之北。”遂率子孙荷担者三夫,叩石垦壤,箕畚运于渤海之尾。邻人京城氏之孀妻有遗男,始龀,跳往助之。寒暑易节,始一反焉。
河曲智叟笑而止之曰:“甚矣,汝之不惠。以残年余力,曾不能毁山之一毛,其如土石何?”北山愚公长息曰:“汝心之固,固不可彻,曾(不若孀妻弱子。虽我之死,有子存焉;子又生孙,孙又生子;子又有子,子又有孙;子子孙孙无穷匮也,而山不加增,何苦而不平?”河曲智叟亡以应。
操蛇之神闻之,惧其不已也,告之于帝。帝感其诚,命夸娥氏二子负二山,一厝朔东,一厝雍南。自此,冀之南,汉之阴,无陇断焉。
这篇《愚公移山》清晰地展示了软件建设的核心理念,即 明确项目的目的,实现此项目要用的方法或结构模式,来完成此项目要用的技术人员和这些技术人员各自的工作。明确了这些,这个项目也就基本完成了,剩下的就是编写代码了。
愚公以清晰的思路向我们展现了完成移山这一巨大项目的方法,他是一名优秀的项目管理者,他把实行的思路理得很清楚,接下来就是按照他所说的去执行,总有一天能完成这一任务。
程序=算法+数据结构,数据结构指的是数据与数据之间的逻辑关系,算法指的是解决特定问题的步骤和方法。程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,编程的第一要务就是要清楚数据结构,清楚解决此问题要用的方法途径,然后再用相应的语言来编辑完成。用代码实现不是编程的主体,但是是最辛苦的了。
然后就是编程语言了。编程语言大部分用法都有相同之处精通一门就行,所以不要漫无目的的去学很多种语言,精通一门语言,其他的语言你就会用很少的时间就会学会。
编程最重要的就是算法和数据了,编写代码其实主要是体力劳动。所以掌握数据和算法才掌握了程序的精髓。