作为一个软工人,假期怎能少得了学习?在老师的推荐下我看了《大道至简》这本书,该书是由周爱民先生撰写的一本关于软件工程的著作,主要讲述的是他本人的结合实践经验和思考以及对软件工程的理解,整本书虽然篇幅不长,但是言简意赅,短小精悍,对于学习软件工程的人来说很有帮助,对于像我这样的初学者来说,更是受益匪浅。
    说实话,这本书看下来有些方面我也是一头雾水,毕竟自己并未真正开发过产品,所以总归是无法彻底理解书中所述的一部分东西。在这里我只能说说我自己真正学到的和看到的东西。虽说如此,这本书也是给了我对编程方面的充分的启发。
    在学习任何东西之前,我们都要了解它的思想,因为思想对客观事物的发展具有促进作用。大道至简这本书注重的就是思想,它讲解了一些软件工程的思想,此书一共十一个章节,其中每个章节都有好几个小节,每一个小节都有一个生动且丰富的标题直指中心,框架结构比较明显,让人读起来并不那么枯燥乏味。在这本书的第一章,周爱民先生引用了著名的典故“愚公移山”给我们做了关于编程的精义的介绍。编程的根本就是“顺序,分支和循环“,像愚公移山这样庞大的项目都可以用这样简单的编程来实现,这种生动形象的讲述也使我对编程有了更进一步的认识,对算法也有了新的认识。
    通读这本书后,我发现了许多编程中十分有用的技巧和方法。比如说整本书出现最多的——“编程=算法+结构+方法”,说明了程序就是算法和结构的结合体;而顺序结构,选择结构和循环结构,这三种基本语法是任何语言都具备的;只有懒人才会找方法,而优秀的程序员就应该是懒人,要懂得套模板,学会“抄”代码,善于充分利用已经拥有的资源,而不是所有的代码都靠自己敲。
   熟悉一门语言之后,并没有会与不会,只有喜欢与不喜欢,任何一门语言都可以在两周之内学成,因为他们的基本函数库都是相似的。语言的差别主要是表现在适用范围上,有的适合做图形处理,有的适合做网页。没有一种语言会一直是主流语言,所以没有必要去比较那种编程语言更好。在计算机里有很多种语言,如C++,JAVA,Python等,我们并不是要掌握全部的语言,只需要精通两三种,剩下的就是学习能力。
  在这本书中,作者向我们讲述了在实践中总结的经验和道理。对于我们这些初涉甚至说未涉这个行业的人来说相当于一艘渡船,能够给我们一个模版去思考去学习,书中所给出的许多实例也是值得我们去揣摩学习的。但在学习时我们也该思考作者的思考是怎样发出的,他看待这个问题的角度是怎么样的。我认为只有这样去思考,这本书才能在你看不懂它的年月里每读一遍都会给你新的灵感。   
     第一学年的学习,首先是C语言,再是C++,C语言的学习过程当中并没有给我带来太多太大的难题,第二学期学习C++时又遇到了很多与C语言重复的内容,比如大体相同的语法还有数据类型等等,因此我把C++看成了C语言的翻版,并未认真学习,后来遇到的面向对象编程(OOP)的思想给了我很大的冲击——原来代码还可以这么写。正如《大道至简》这本书中所写的那样“正视你的成功”,这仅仅还只是小小的成功却已经是能让当时的感觉飘飘然了。以后我需要做的是:当我又有了一次新的成功的经历以后,我要认真总结分析下此次能够成功的主要原因,以及碰到过什么阻碍,记录下每一次的体会,当遇到下一个问题的时候不生搬硬套,而是以既有的经验为辅找到最优解。
    第二个问题就是改编提升代码的能力不足,在学习的过程当中时常发生的一件事就是,有些人能在一接触到问题之初就可以轻松顺利地解决掉这个问题,而有的人从收到任务开始就在coding,然而一直到截止日之前都没能正常完成该作业。在某些时候我会是前者,而充当后者的舍友就会来让我看看他写的代码为何不能实现他所想的功能,同时问我要怎么写。通常情况下我完整看完他的代码之后,我会重新梳理一遍逻辑,然后就是从头开始编写程序,所以在我短暂的努力下,该舍友就得到了一份和我一模一样的代码。我总是把别人的逻辑全盘推倒,然后改成我的想法就当了事,但是这样是不够的,书中也明确说了,以后遇到的更多的是团队的问题,不同的人有不同的足,也不全适合同一双写,我不能只要求他们全都得穿这双鞋,而削足等等,我将来要修改的也不全是我自己写出来的东西,我不能总是说把别人写好的全部删掉,改成我写的新东西。因此,在修改他人代码这方面我还有很多需要提升的地方,可以通过经常多看别人的代码,多想想有没有能够精简改进的地方,以此来达到修正不足的目的。
总的来说,《大道至简》这本书带给我的体会更多的是团队协作方面的,单打独斗做项目是很困难的,团队合作才是常态,我要时常分析清楚我在团队当中充当的是什么样的角色,时刻明白自己的定位,与团队内的人做到良好沟通,充分发挥自己的作用。

posted on 2021-08-02 19:00  辰逸1  阅读(39)  评论(0编辑  收藏  举报