平时学习中总会听见有人说语言学习的多么的好,像java,C,C++等。然而我们的目光不应该拘于选择什么语言上,真正能学好一门语言或者能利用一门语言按照自己的设想与去编出满意的软件是我们的追求,并不是懂语言就可以的。作者以他的经验告诉我们,成天讨论语言好坏的人是可悲的,因为语言并没有好坏之分,只有找到合适项目的语言才是王道。我们应该明白“软件工程”这四个字,以及代码、方法、过程、工程与组织的关系的第一步是知道“语言只是一门工具”。“猿之于为人”是学会了制作和使用工具。
在初学C++的时候,老师首先告诉我们的是,编程的精义在于:程序=算法+结构。与代码的相关任何工作都,最终都归根于这句话。从有开发行为开始,它就存在了。愚公在数千年前就用类同的行为进行编程实践,而几万年前的的智人,也在循环和分支所构成的逻辑中打转。
推动逻辑向前发展的是“方法”和“方法论”的出现。长期的编程实践,自然的归演和总结,必须沉淀为某种方法,于是“过程”出现了,“对象”也出现了,于是相关的方法论也出现了。这是实践的结果,方法并不是创造的而是在实践中总结的,方法并不是一成不变的,而是不断地进行改进。经验来源于回顾、理解和分析。而不是你将写下的代码。因此为了更好地懂得编程,我们重要的是花时间去回顾自己的错误代码,进行总结和更好地理解。
编程要经过过程,过程伴随着工程而出现,过程解决的是工程中角色之间的关系问题。过程是团队如何组织在一起进行开发的问题。它首先把工程之间的环节分解出来。有了环节就有了角色:有了角色就有了沟通。而提到过程我们就应该想到工程,过程是伴随着工程而出现的,过程解决的是工程中角色的关系问题。然而,工程理论其实是包含组织学的。所以,组织也是做工程过程中的很重要的,并要考虑好各种问题。
BOSS是公司的经营者,决定着一个方向,组织者保证决策与这个方向同步的,而工程是在这样的一个方向、决策的构架下的一个具体行为,工程中没有BOSS。
实现是软件开发的本质要求。从最初简单的编程开始,到现在工程团队的组织开发,实现都是最初的目的。有了这个目标,才会有人去创造模型,总结方法,开发语言。我们看到,正是出于实现的需求。我们才设计了一些数据结构和逻辑结构来映射物理模型。因此类似于工程、单元、记录、对象等的出现,其实都是出于编程实现的需要,因此实现方法总是最先出现的,而后才有分析和设计程序=算法+结构过程和单元的出现记录与对象的出现方法。