zoukankan      html  css  js  c++  java
  • 《构建之法》心得体会

          大家好!我现在是一个在读的软件工程专业的大学生,本应该对自己的软件工程专业很是了解的,但大多数人都是对自己的专业也是一知半解,其中也包括我在内,只知道软件工程是软件的后台代码开发等,接下去就说不大清楚啦;其实软件工程细分下去,还涉及很多学科以及专业知识等。
          不过在阅读《构建之法》这本书之后,我对软件工程这个概念或专业有了一定程度的了解,也有了很多的心得体会,书中的很多鲜明的例子以模拟现实交流的形式去探讨,给人一种通俗易懂的文字展现在读者面前,这使得读者能够更加深入的去认识和理解,让人们更容易的体会到软件工程里面的技术要点,使人有一种想更深入去了解的冲动。
          整本书主要介绍了软件测试、软件工程师的成长、编写代码的规范、团队合作开发软件的重要性、还有开发软件项目的总体流程、IT的发展创新等等,使得整本书的内容丰富多彩,不会像一般的软件工程书那样,千篇一律,太生硬呆板,而这本书的内容给读者一种欢快的阅读体会,能让人更加的快速去接受里面的内容,并吸收为自己所用;并且里面的内容都举例生活中的例子,使人看上去更加的了解其实软件工程就在我们的身边。
          那你会问什么是软件工程?软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。它包括的领域有:软件需求分析、软件设计、软件构造、软件测试和软件维护等。
          其实软件工程就是包括了“开发、运营、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营、维护的效率,以及提升用户满意度、软件的可靠性和维护性。”这就是书本中对什么是软件工程的概述。
          还有比如书中讲用例子来更加清楚的说明团队和非团队之间的区别,给出了新的定义。“王屋村的居民大智要把一堆砖头从村头搬到村尾。他来到顶球酒吧前,看到三三两两地蹲着一些人,有些人面前放着一块包装箱纸板,上面写着“Java,五毛钱一行”;“网页前端,不酷不要钱”;“转做PS,擅长人体”;“通吃SQL、NoSQL”,等等。
          大智冲着这些人喊了一嗓子:板砖头的有没有?一百块砖一毛钱!地上蹲着的一些人抬头看了看,有一两个人慢慢站起来了。大智看了看人数,又喊了一声:中午有盒饭!这时七八个人都站起来了,拍拍屁股就凑到大智面前。大智就带着他们走了。这七八个是团队(Team)么?不是,他们只是一群乌合之众,临时聚集在一起,各自完成任务就领钱走人。和田径团体比赛的例子进行对比。”从中可以看出团队的特点有:
    1、 团队有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时工作,例如接力赛跑。(王屋村搬砖的“非团队”成员则不然,每个人想搬多少就搬多少,不想干了就结算工钱走人。)
    2、 团队成员有各自的分工,互相依赖合作,共同完成任务。(王屋村搬砖的“非团队”成员则是各自行动,独立把任务完成,有人不辞而别,对其他的搬砖人无实质影响。)
    运用这些例子来更加生动的讲解软件工程项目中团队合作的重要性。
          还有软件团队的模式各种各样,不同的团队有不同的合作模式,都是基于团队成员的实际情况去规划部署,没有哪个万能的团队方案可以保证结果。有了团队之后,才可以涉及团队流程。也正是因为我们学生往往只有大量的经验,在老师谈瀑布模型,敏捷流程等的时候才会有所理解。 当我们真正身处一个团队项目中时,自己当初不在意的问题往往就成了阻碍项目进度的关键。所以这本书的五、六、七三章提到了多种团队项目的协作方案和理论,也让我也逐渐理解团队的不可缺少的,每一个都是其中一份子,不可缺少。
          正是因为《构建之法》中恰恰是按照最容易理解的步骤,从开发测试、开发人员成长、团队管理一直讲到需求分析、设计以及用户体验等。先让我们知道开发为何物,每个人都有了编码实践的经验后再一步步到需求分析、设计就会理解的更透彻。一本好书除了本身的内容外,还需要能引发读者思考,能够学习到更多的扩展知识。记得之前网上有人回答怎样找到一本好的技术书时说过:“在一本经典的书籍上找找所参考的书籍或引用的书籍,大致都还不错。”我认为还是挺有道理的。《构建之法》的正文以及练习与讨论中有大量有价值的引用,这些内容可以让我们了解更多更广的知识,练习中大量的习题如果都能够独立思考并想办法解决的话,对我们的实际动手能力会有很大提升。

    但看完我还是有一些问题想问下:
    1、 要做软件工程师要具备哪些要素?需要哪些知识去补充?
    2、 怎么能更好的做到学以致用呢?就是把书本的内容用到实践中去
    3、 如何能快速的提升项目实践少、没有实际经验,基础不好的,又想从事该行业是人?
    4、 想做产品经理要有那些技能?
    5、 如何能更好地做到IT的创新思想?

  • 相关阅读:
    css实现水平/垂直居中效果
    Mac 下用homebrew安装配置MongoDB
    阿里云ECS搭建node/mongodb开发环境及部署
    阿里云首次安装和部署nginx
    前端学习借鉴目录
    040.[转] 对于程序框架的理解
    039.[转] 基于 Kubernetes 和 Spring Cloud 的微服务化实践
    038.[转] JVM启动过程与类加载
    037.[转] springboot 配置多个数据源
    036.[转] JNDI 学习
  • 原文地址:https://www.cnblogs.com/zhangwei123/p/5510705.html
Copyright © 2011-2022 走看看