大一悄悄地过去,在这一年的学习里c加加的学习又显得尤为重要。但我却对他感到非常的恐惧,因为我代码不太会敲。也许是我做程序的方法不正确。因为每次我拿到程序之后就一直死磕,按照自己的习惯来做,每次都是硬做,而这样做的后果就是程序出不来或者是其一直在报错,然后遇到这样的情况自己的心情又会变得非常的急躁,导致对写代码产生厌恶感。现在想来,这种方法是及其的不理智。
大二的暑假里按照老师的要求看了看《大道至简》这本书,这本书不像传统的书那样整本书都在讲如何如何的写代码,而是整本书都围绕着一个中心思想展开,“程序=算法+结构”,其跟代码毫无关系,想想也是,任何一个好的程序最重要的都是思考的过程,而不是像我一样上来就开始写,一直着重的看代码如何的写。这本书用非工程的方法重新说明了软件工程,全面并深刻地分析了工程中各个环节的由来,和它们之间的内在关系。全书都是作者的亲身经历,综合了论述开发,工程两者的现状。作者亲历国内软件工程的英雄时期到低峰时期,从失败中觉醒而独特的思维方式。作者从对软件的开发,以及工程中的现状做出反思从而完成这本书。整本书都是作者自己的亲身体验,语言很有亲和感,非常适合像我这种对语言不是很了解的人阅读。
读下整篇来,脑子印象最深刻的就是作者提出的”语言知识工具“,作者表示了对那些热衷于争论语言之间孰优孰劣的人的悲哀。但是,得到这个结论之前的作者也经历了这些,无止尽的深入语言的细节,深入操作系统的细节,并且深入开发的细节。作为JAVA的开发人员,使用哪种语言好像已经没有那么的重要,因为我们的任务是写出一个好的程序,而语言对我们来说只是一个工具,真正重要的是怎样好的完成程序,其还是需要语言来实现系统,完成系统需求,来满足客户的需要。现在的语言,每个都有自己的优点及缺点,新的语言可能有在语法结构和动态方面的优势,但是我们又需要思考这种语言的学习成本值不值得,能解决多少问题。所以,我们自然不可能只学习一种语言。
现实中,”软件工程=过程+方法+工具“。工程成功的真正关键,不是把团队组织的多好,而是在于思考完成工程的方法,思考如何才能更加的节约成本。因为不计成本的项目计划不会得到经营者的支持,毫无目的的消耗成本是项目的毒药。作者提到,学习任何一种语言,都要回到他的核心环节”程序=算法+结构+方法“。在工程中,过程的选择取决于工程的需要,及在相关应用领域的实用性。
这本书总体来说对我的帮助挺大的,以前我的做题方式是死硬的,更甚来说只是为了做题而写程序,中间毫无思考的过程,从来都是走一步算一步的写程序,导致代码很多都写不出来。而这本书让我看到了代码、方法、过程、工程与组织之间的关系。每一个工程不是做出来的,而是编程人员组织出来的。所以,以后我在编程序的时候一定会先自己组织,每步算法,一步步的分解,其中不过是我们之前学过的选择循环的各种知识,然后再组织起来。这算是我在书中学到的最为宝贵的东西。其也应该是整本书所想体现的大道至简中的至简之道吧。