大道至简阅读随笔
在准备好学习一门新的知识之前,我们应首先了解这个知识的基本情况。总体来说,在看完《大道至简》之后,我对于编程有了更多更为深远的认识。
编程作为一种行为,实际上就是把一件事情交给计算机,让他去一步一步按照顺序帮助你完成。第一个完成关于编程本质的的思考的人,提出了一个公式“程序=算法+结构”。算法是对一个程序的逻辑实现的描述,而结构是逻辑实现所依附的数据实体。所以,想要真的熟悉编程,我们应该在遇到一个问题以后在自己的脑子里产生一个大致的步骤过程,然后继续把这个大致过程细致化,完善好每一步,搞清楚各个步骤之间的联系关系,然后按照顺序用代码实现对问题的解决。
编写程序当然不会离开语言,而现在存在着各种各样的计算机语言,都去仔细研究当然不切合实际,所以我们应该根据个人的特点和现在社会的流行选择去学习怎样的语言。总是在网上看到有人讨论某个语言的好坏,其实我认为每个语言的优缺点并没有他们说的那样到了可以致命的程度。当你熟悉了一门语言,你会发现,其实各个语言之间并不是说一点关系没有的。对于语言,每个人有自己的喜好,并不会涉及到会与不会,只要你认真的去学习这门语言并且喜欢上这门语言,你会发现这门语言你用的越来越顺心。
在今后的软件编写过程中,我们不会总是一个人孤独的战斗。一个软件的编写需要一个团队的精诚合作,在合作的过程中,我们不能随波逐流,要找到自己的位置,认清自己在这个过程中需要扮演一个怎样的角色,并思考怎样去做好这个角色的任务,一个团队需要一个优秀的领导者去引领方向,但是更需要这个团队每个成员的共同努力。
在我们进行一次大规模编程之前,肯定需要了解客户的需求,在于客户进行交谈的过程中我们应该有针对性的去了解客户需要我们干什么,怎样做我们才能让客户欣然的接受我们做出来的东西,而不能只进行流于形式的沟通,这样很有可能会使我们的工作在后期出现各种各样的问题。这本书中提到了一种我认为非常有帮助的方法,就是对自己的程序做历史记录,以便于留给那些根本不了解这个项目的人看,这个方法可以更方便的让客户明白这个项目的本质与功能。对于书中提到的UML我没有很深入的理解,但是从书中可以看出它的确是解决沟通问题的最佳手段之一,在客户能够理解并且支持的情况下我们可以使用,但是如果客户不支持我们也不要冒险尝试,否则会让项目变得难以收场。
软件工程作为成熟的概念的标志是软件工程的瀑布模型的提出。但是做过程并不是做工程的精义。过程伴随着工程出现,解决的是工程中“步调一致”的协作问题,而工程是因为软件规模的不管扩大才出现。很多人忘记了最初编程时的目的就是怎样去实现一个东西,无论这个东西是什么,我们的目的就是用计算机去实现它。在实现这个目的的团队中,我们需要一个组织者去组织这个工程,而不是一群人埋头苦干彼此之间却没有一点沟通与交流,我们的团队要做到分工明确,步调一致,共同完成这个工程。
这本书的第七章提到,软件业界如今的局面,不是一些人争争吵吵的结果,而是大公司们相互制衡的结果。他们有着各自的算盘,一方面打压对手的劣势,一方面又借助对手和同盟的力量来削弱自己的劣势或者补充实力。它向我们介绍了现实中的软件工程是怎样的一种形势,让我们明白了自己现在的努力是为了什么,明确了作为一个软件人以后的方向。
软件工程是一门独特的艺术,我们在学习的过程中要把自己投入进去,不要只为了完成某个任务而学习,只有用心了才能够更深一步的去了解软件工程,在这个过程中我们要做到每一个细节的准确,使我们研发出来的产品能够更深入人心,抓住客户的需求,做一个出色的软件人。