阅读完《大道至简》我对写程序有了进一步的理解,首先编程只要学就能学有所得,编程的精义在于顺序,循环和分支。
程序=算法+结构,其中“算法是对一个程序的逻辑实现的描述,而结构是逻辑 实现所依附的数据实体”,方法,是对既有行为的
归纳总结。 因而实现方法总是最先出现的,而后才有分析和设计方法。其中还有一句话“语言只是一种工具,不要讨论语言的好坏”。
人的精力是有限的,文中提到愚公会凿,而李冰会烧,讲述了一个道理当任务量太大的时候可以思考解决问题的“新方法”。
提出新的“方法”,解决的将是影响做事成效的根本问题。文中还提出了模块的例子:代码不能都写在一个文件里就出现了模块
的概念,将程序的代码分开,,一个模块对应于一个单元,从此出现了分工作写代码。还介绍了项目经理的工作,就是要去组织这个
工程中的各个角色, 使得分工明确,步调一致,共同地完成这个项目。
面向过程开发是CPU提供的,需要考虑“方法”,面向对象因为有“单元”和“过程”可以不在考虑“方法”的完成巨大的工程。
团队管理方面:做管理起码需要能承担责任,这是最基本的素质,比如:“三人团队中的那个领导,不是要程咬金一样的牛人, 而是要
李离一样的死士。项目完成不了,切脑袋的事倒不 必做,递交辞呈的那点勇气总是要有的。”客户与工作人员的对接,需要项目经理用
客户交流。软件工程的瀑布模型:瀑布模型将软件开发的过程分成需求、分析、 设计、开发和测试等 5 个主要阶段,其中做工程不是
“走过场”,实现才是目的。需求就是项目经理与客户之间的交流,分析就是对需求的分析,将将需求模块化,设计的话就是将需求顺序
化,最终以实现需求为目的。软件工程的思考问题:思考问题的方法可以是由点及面的,也可以是统揽全 局的。换成业界最常用的词汇,
就是“自上而下”还是“自 下而上”的区别。“道”是规律,如果明 “道”,而可以变化无穷,这样做软件工程才是活的。做程序之前要“知道原理”,
明白 “为什么要这样”或者“为什么不是那样”。
枝节与细节:跳出枝节,细节只有做到何种程度的问题,而不并是关不关注的问题。写程序要注重问题的分解,将问题模块化,顺序化。
写程序最终要实现需求,而不是“走过场”。《大道至简》这本是对编程很有帮助的,其中的编程思想,在工程的团队合作思想讲的通俗易懂,
举的例子也很深刻,总之编程需要不断的学习,不停的给自己充电,程序=算法+结构,当下应该积累算法,丰富自己的知识面,只有这样才
能在将来有未来,所以要继续学习,不断的进步,走出属于自己的“道”路。
我过去编程是这样做的:拿到一个编程题,首先是阅读需求,理解之后有一个大概的框架,便开始从头开始编程,写到哪里思考到哪里
这样的话有时候可以完成需求,有时候写到一半突然意识到前面有问题,便又要修改前面的,这样反复很浪费时间。
书中提出需求的分析,将需求模块化,也就是说以后可以将问题分解成模块,分解成一个个小问题,逐个解决,这样就有了头绪,可以有计划
的完成编程了。