大道至简读后感
由于各种原因,导致这本书读来着实仓促,以致于这本经典之书读来理解尚浅。
我其实认为这本书的厉害之处是在于它不纠结于细致到每个代码语句,而是全程在讲述软件工程的思想,从每个小故事出发,向读者讲述每个作者想要讲述的道理。读来确实也饶有翻趣味。但是,可能我目前学到的知识尚浅薄,也可能是因为并未经历过团队合作做过工程,所以并不是很理解本书用大量篇幅讲述团队合作中经理与沟通等等的深意。
但是我对“程序=算法+结构”这个公式还是很赞同的,在我的理解里,结构即数据结构,也就是我们在编写程序解决问题时所用到的数据;而算法即是一种数据的逻辑关系运算,就像数学中函数对应法则f一样。编写程序,我们一定是为了实现某个功能的,而有了数据载体以及数据的逻辑关系,那么自然而然的便变成了具有解决问题能力的程序了。这个公式在今后的学习中给我指明了一条路,一个程序即为两部分组成,算法与数据结构。而数据结构是由具体问题而决定的,这样说把,打个比方,数据结构就像一个程序的肉体,而算法则是灵魂,所以我认为算法好,程序才能够更简洁,更完善。即算法驾驭数据。这便让我在今后的学习中我更应该注重算法的记忆与理解,虽然不能让自己的算法炉火纯青,但至少要见多识广。
其中还有让我记忆深刻的话便是“语言只是工具”了,这句不知道是作者对语言崇敬还是蔑视的话让我十分感兴趣。作者提到为那些争论语言优劣性的程序员感到可悲。然而,能够得出这样一个结论之前的人,恰恰之前正在经历这样一个阶段。作为一个程序员来说,使用何种语言的确已经显得不那么重要了,因为任何语言都是可以学习的,他们只是工具,或者说是知识,真正转化为实际的、看得见、摸得着的, 还是需要用语言来实现系统、完成系统需求。不善思考的学习者或许需要很长时间绕出这个圈子,然而这不得不让每个程序员思考这样一个问题:“需要学习那一种语言才不被淘汰?”这就迫使我们每个人都去思考语言的真正意义。现如今,每种语言都有自己的强项以及局限性,新的语言可能在语法结构、动态性方面有无可比拟的优势,但是它们真正适用使用目前现行的系统吗?它的学习成本值得吗?它能解决所有问题吗?显然答案是否定的,我们需要思考每种语言的试用范围,让每种语言适得其所、展其所长。而不是一味地纠结于用一种语言解决所有问题。
由于本人理解尚浅,本书用大量篇幅讲述的团队开发、经理只是个“经营者”等等诸多问题都不是很理解。所以这次的读后感到这里就结束了。若是以后有机会参加工程项目的制作。定会再次翻阅此书,而得新的感悟。