《大道至简》读后感
学习软件工程前,不要先急于学习如何编程,首先应该学会读懂它的思想,《大道至简》这本书恰好为我们提供了了解思想的内容,正如书中序章所言“这本小书不是一本教你项目管理,软件工程或者编程技巧的书籍,他是一本闪烁思考光芒的技术散文集”。作者并不追求与所谓的“书要厚才能显得有水平”,一如书名所言,这本书是作者从事十年开发工作的总结,满是精华。
开篇以愚公移山为例,介绍了愚公移山的工程概况,用书中语言来说,就是这样:问题需求的产生-->项目沟通-->确定目标-->研讨,择定出井然有序,可以实现的技术方案-->项目中动用人员(技术人员,管理人员,外协等),还包含着编程的根本:顺序、分支和循环,庞大的愚公移山的项目,就是根据以编程的根本为基础的编程实现的。
程序=算法+结构,除此之外,还需要程序员的思考,先分析清楚程序,罗列程序中的各种关系,再写出代码。通常这是需要语言来进行的,语言是一种工具,然而书中所言“通常而言,语言的差别主要表现在适用范围上”,确实如此,面向对象程序设计(C++)和面向过程程序设计(C语言),每种语言会有辅助学习的基础,例如中文就有声母韵母表,英文就有语法和字母表来帮助学习语言。
在我看来,懒人也有懒人的另类成功法则。不同于旧时的一百万行代码写在一个文件里,单元模块的出现是源代码分散开来,使得程序师查找代码方便了许多,而单元模块恰恰是懒人发明出来的,他们没有勤快人的精明干练,可能正是因为他们的“懒”,世界上才会出现许许多多的发明家。程序员要认编程目的是实现一个东西,学好基础的东西,在过程中灵活运用,才是程序员的基本素质。
在团队合作的过程中,要有一个领导,他要具有基本的责任感和领导能力。评估团队完成的项目的成功与否,主要与项目完成的质量和时间有关,而项目完成的工期恰巧需要项目经理的经验而定,有经验的能大约估计出时间,日常中要经常回顾项目中的每一个阶段和与程序员交流的细节,计较项目成本,有目的的进行着项目,同时还有着协调经营者与开发者沟通的使命。“项目经理的工作,就是要去组织这个工程中的各个角色,使得分工明确,步调一致,共同的完成这个项目”,在做项目的过程中,与客户之间的沟通是必不可少的,每次的沟通要有效,保证客户明白,了解深层次的东西,全面具体满足客户需求,懂得客户的需求,需要用到模型语言,UML是模型语言里的世界语,只要是行之有效的、能在各个项目中通用的,就是最好的沟通方式。
经营者BOSS往往会决定一个方向,组织者会朝着这个方向决定策略,组织者同时也应该不按部就班,根据公司应该变的方向进行体制改变,修订原有制度中不合理的,方便管理,确定每个人的角色,发掘员工的潜力,弹性分工。
最重要的不要忘了“细节决定成败”,当你看到出现某个错误时,要立刻改正,蚍蜉撼树,懂得变通,灵活回避错误,恰如书中所言“知律而变”。
读完此书,我觉得对我的未来的学习软件工程这一方面有了大致的思想了解,是我更进一步了解软件工程的基石。