读《大道至简》的体会
这本书算是很经典的软工方读物了吧,它没有讲任何编程的技巧,反而是讲的编程应具有的一些思想,这本书旨在对读者在编程上的思想进行启发。
来讲一下我受到了哪些启发吧,首先就是这本书中强调很多次的“程序=算法+结构”,其中根本就没有提到代码,就说编程反面,代码并不是那么重要,因为编程的目的就是解决问题,不管是怎样的代码,解决了问题就ok;但解决问题的是代码么?当然不是,解决他的是程序员,是他的算法和他实际的结构解决的问题,因此软工不应过多强调代码;因此,编程语言也就不是那么重要,没有必要去判断几个语言中哪个是最棒的,因为它们只是语言而已,编程中最重要的还是算法,争论语言的优劣是无用的。而也就因此决出了程序员能力的大小,书中举出愚公移山与李冰凿山的例子,这就是两种方式,一种用着比较低效的方法不断勤奋地工作,而另一种则是寻找解决问题的更快途径,这就是程序员编程的一种对比,勤奋的低效能解决问题,但人的精力是有限的,这种方法会消耗比预计更长的时间,而更优秀的算法便是用更少的资源解决问题的方法,所谓“懒人造就了方法”。曾经我也想过语言的优劣,认为某种语言哪里哪里好,甚至妄想学会了这种“优秀”语言后,就不用学那些比他“差”的语言了,其实这一直都是一种错误荒唐的想法,算法才是程序的灵魂所在,编程语言存在一些优劣的比较,但那只是某各方面,他们也都在一些特定方向有着相比于其他语言的优势,我们只需要把语言掌握,然后在恰当的地方使用,把学会更多的语言不代表自己的编程能力提升了,只有提升自己的算法才是王道,语言不过是实现算法的工具,我们去学习一门新语言,只是为了能够将自己的算法运用到更广阔的平台。
另外,书中提及了团队,我目前接触的编程还没有需要过团队,都是自己独立完成,团队的重要性我也是知道的,解决一个问题,团队分工一般都会比自己一个人单干效率高很多,以后我应该考虑到这些,改一改自己一般不加注释的坏习惯,号让别人都能看懂我的代码。另外,书中讲了很多如果当了团队的领导应具有的思想,如责任心、工程的安排、成员的分工,今后如果自己也许要领导一个团队,这些思想都显得很重要。之后就书中还提到与客户的沟通,软工方面与客户沟通的困难 ,我也早已有所耳闻,而书中给出的思想就是,根据客户给出的描述,尽可能的分析出我们要实现的功能到底是什么,从中分析出系统应有的结构,这样就是实现的模板了,尽可能的与客户的要求一致。
最后总结一下,这本书给我最大的启发就是抛弃代码的思想,代码只是工具,就好像斧头和木匠的关系那样,我们要提升的是我们的思想,提升算法,这样才是真正的提升自己编程的能力。