《列子.说符》中有言:“得其精而忘其粗,在其内而忘其外;见其所见,不见其所不见,视其所视,而遗其所不视。”意思是说观察事物得到了它的精微,而放弃了它的粗略,省察其内部而忘却其表象,看见了他所应当看见的地方,而没看见他不必看见的地方,考察了他所应当考察的地方,抛弃了他所不必考察的地方。这段话告诉我们观察事物应该具备的方法和角度,也就是人视事物的本质,应该注重观察反映本质的现象,和本质无关的其他现象可以忽略。那么,编程的本质是什么呢?有人说,就好像无论多么复杂的数学题,最终都可以一步步的那个拆分到最基本的运算和公理上一样;对于编程来说,每一个程序最终都可以被分解成一个个基本指令以及这些指令的契合方式。通过程序员对于问题的分析和理解,将其拆分成简单的结构并用合适的方法来描述就是,这个行为就可以称之为编程。把现实世界的逻辑抽象映射成数学逻辑,然后翻译成程序语言,进而转换成二进制码,最后用高低电平创造出一个新的世界。
编程归结到根本只有一条定义,就是“程序 = 算法 + 结构”,无论多么复杂的程序,最终的落脚点都是这个。而且不仅是编程,任何一项工程,都可以归结于此。长期的编程实践,自然的归演与总结,必须沉淀为某种方法,于是,出现了过程、对象,于是,方法论也就出现了。其实,方法并不是创造的,而是水到渠成,在前人的千万次摸索中,总结出来的,这样的方法才是最本源的方法,进而就形成了各种模型、模式等。因此,想要彻底的理解掌握一种方法,仅仅往前看还是不够的,要经常回顾、总结、归纳,自己要不断的探索,经历失败,这样,才能迎来成功。
其实过程只是工程的一部分。完成一项工程需要很多人员,经理很多步骤才能实现,不是只有编程。 当然了,能完成开发的首要就是你要能完成编程这一步,作为软件公司,就该专注于做项目,按照约定的时间完成项目,如果你为了追求所谓的极致却拖延了项目的工期,那是非常不理智的,作为项目经理最应该注意这点。
工程,就是结果,你做出了什么才是关键。工程时为了解决大型项目而出现的,而往往一个复杂的工程可能需要庞大的人力财力物力,这就需要参加项目的人有很强的团队意识,一个人很难在有限的时间内完成很大的工程,及时你有这个能力,时间也不会允许你这么做,所以,我们应该积极地培养自己的团队协作能力,为以后参与项目研发最好充足的准备。
工程和组织是密不可分的,工程可能只是关心一些技术层面的问题,但是组织却要在多个项目之间协调,例如人力资源、项目资金等等,虽然这些看似和工程毫不相干,但是,实际上这些都是工程的顺利进行的保障。这些都是要求项目经理有很强的能力,有可能项目经理不是很擅长技术性的问题,但是只要能处理协调好各个项目之间的关系,座位项目经理也是可以的。当然了,项目经理不是神人,也会有可能犯错,但是好的项目经理会减少错误发生的几率。作为项目经理,一定要会找到目标,建立每个阶段的计划,适时的为员工做适当的培训,保证员工的所需资源,着眼大局,最终的还有,不能太乐观。想要做好项目经理,这些都是不能少的技能。理解boss的地位,他只是经营者,组织者会确定方向,而你,是能够完成项目的执行者。
软件开发的本质需求是完成一个软件,达到目标,满足需要。正是有了这个目标,各种工具方法才随之产生,所以无论任何时候都不能忘记开发软件的本源精髓。