《大道至简》读后感
《大道至简》这本书并没有教我们如何去编程,这本书是从一个项目的完成需要什么样的条件,不同身份的人需要做什么努力。
在读《大道至简》之前我一直以为编程是在有计算机的基础上才诞生的。但《大道至简》却从愚公移山的故事中分析出编程的思想,即编程的根本在于:顺序,分支和循环。庞大若愚公移山这样的工程,都是可以通过这样简单的编程来实现的。这就是编程的精义。
大一时期可以说是懵逼的过去的,对编程感觉一窍不通,感觉总是写不出程序,不知道从哪下手。《大道至简》中举出'你桌上的书是乱的吗‘来点明编程就如同整理书籍一般,应该学会分类,把知识像桌子上的书一样整理,把最常用的放在手边,不常用的放进书柜。编程也不是你一接到项目就开始敲代码,那样反而适得其反,你需要做的第一件事是把事情分析清楚,事件的先后逻辑关系和依赖关系搞清楚,然后再去代码实现程序。
软件工程这个概念被提出是在上个世纪60年代末。它作为成熟的概念的标志是软件工程的瀑布模型被提出。瀑布模型将软件开发的过程分成需求,分析,设计,开发和测试5个主要阶段。工程只是一种实现的途径,最初的开发前辈们,也并没有运用工程或者过程不照样编出啦程序。为工程而工程的人,往往会迷失在项目中,所以实现目的才是关键,不要为啦运用工程而运用。
作为软件工程师,未来肯定少不了与客户的交流,总是要接触客户的,如果不这样我们就不能知道客户需要什么,我们应该做什么,但并不是所有的客户都懂得C或者UML。更没有客户愿意用C等来描述他们的需求,所以我们要懂得如何将客户的需求用程序表现出来。
语言只是工具,那些争论语言孰优孰劣的人是可悲的。任何一门语言,你都可以在两周内掌握并开始熟练编程。因为任何的一门语言,它们的底层函数库都是那么的相似。(在期末前两个周掌握一门语言还是可以办到的。)
思考问题的方法可以是由点及面的,也可以是统概全局的。“牛屎图”中描述的工具,方法和过程也被称为软件工程的三要素。它们并不是分离的层面而是相互作用的。例如“过程”问题,就既有实施过程的工具,也有相关的过程方法理论。
一个编程团队肯定有其管理存在。当身为管理时你不仅需要有承担项目失败的风险的准备,还更需要知道如何去管理好一个团队。你不需要跟在成员的身后指手画脚,而是对他们分工,把任务交由成员完成。先不要打扰他们看他们如何做,发现规律,分析这个规律的价值,最后再尝试改变他们。
通过《大道至简》我们知道死读一本《软件工程》的人不会做真正的软件工程师,我们需要的不仅仅是知识,更需要的是运用知识的方法。