提出问题


快速通读教材《构建之法》,并参照提问模板,提出5个问题。
如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:

  • 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文
  • 列出一些事例或资料,支持你的提问。
  • 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
    一个模板可以是这样:

我看了这一段文字 (引用文字),有这个问题(提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。

或者这样:

我反对作者的观点(提出作者的观点,自己的观点,以及理由)。

大学生应该能写出自己的思考, 而不是摘抄书本内容。

提示:编程经验不多的同学,建议看16章 “创新”, 提出自己的问题。


Q1:关于软件工程师的个人方面

针对第二章中提及的个人技术

单元技术
效能分析工具
个人开发流程
实践

第三章中提及的软件工程师的成长

什么样的数据能说明一个软件工程师的技术和能力呢?衡量能力有哪些参数?没有量化的指标,就谈不上衡量和比较。

那么如何硬性地评定一个IC软件工程师,怎么才能看出他的价值?

仅仅是

a.项目/任务有多大
b.花了多少时间
c.质量如何
d.是否按时交付

这几点就足以说明了吗?那么在两人合作甚至是团队内,又是如何评定的?


Q2:关于软件工程师的职业发展

对于自己选择的计算机领域,对待它的职业态度真的像您在书中所说的

我上课、上班不用心,正因为这不是我想投身的事业,我想投身什么我也不知道,但是肯定不是正在学习的软件工程!

那样绝对吗?我对此抱有怀疑态度。
抛开上班这点不提,说下学生这方面。我认为一个人对于新鲜未知的事物,往往是会踌躇不前的(当然除了少数好奇心极强的),这时就需要一个“引路人”。老师往往是充当这个角色的,那么老师的上课讲解便是我认识新事物的一种手段,这时老师的上课方式往往能影响我对这门课程的兴趣甚至是认识。在这方面您觉得都做到了吗?


Q3:关于软件工程师的思维误区

过早优化:既然软件是“软”的,那么它就有很大的可塑性,可以不断改进。放眼望去,一个复杂的软件似乎很多的模块都可以变得更好。......容易在某一个局部问题上陷进去,花大量的时间对其进行优化,无视这个模块对全局的重要性,甚至还不知道这个“全局”是怎么样的。这个毛病早就被归纳为“过早的优化是一切罪恶的根源”。

这个观点似乎是片面的,写程序当然也要学会分析它,在很多时候分析程序性能可能比写程序更重要,该书中也介绍了很多代码模块的执行效率,着重优化耗时长内存大的部分会提升代码的效率。正是我们在优化一些基础代码的时候产生了数据结构和算法。如果我们可以在项目的前期就发现一些BUG或者可优化的部分却没有进行优化,等到项目越来越大(几万、几十万行),甚至发布出去之后再来优化,在成本和时间上会优于过早优化吗?试问我们在编写自己的项目的时候,我们能在不理解全局的情况下去着手吗?我们会忽视这个模块队全局的作用吗?


Q4:关于结对编程

在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会少得多,程序的初始质量会高很多,这样会省下很多以后修改、测试的时间。具体地说,结对编程有如下的好处:
1.在开发层析,结对编程能提供更好的设计质量和代码质量,两人合作解决问题的能力更强。
2.对开发人员本身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。
3.在企业管理层次上,结对能更有效地交流,相互学习和传递经验,分享知识,能更好地应对人员流动。

但似乎编程更看重的是个人的能力,有的时候结对反而带来不了更高的效率。例如两个搭档的能力相差甚多,那么在结对中,拥有较高能力的程序员的工作量势必会更重,而另外一个程序员只会拉低较高能力程序员的效率,在计划时间不能保证较好地完成项目,项目的开发率既然会下降。因此,结对真的好吗?


Q5:关于BUG于测试

从开始编程我们就懂得了,代码尽管在优化中会越来越好,但是并非毫无缺陷,BUG是一直都会存在的。怎么判断这些BUG的重要程度或者说是解决的优先级?如何确定对某个BUG的修改就不会影响到其它的功能?怎么去理解某个BUG对于整个项目的影响?那么有没有一种比单元测试更简单、更快速的方法来保证所有单元的正确性?即使在优化方面下了足够的努力,但在发布之后还会有其它的问题。那么在维护阶段出现BUG有没有比打补丁更规范适用的方法?


另外再说几句

对于我们计算机专业的学生而言,我们学习了很多的专业课程,但是我相信还是有很多同学和我一样仍然对于我们现在学到的课程在之后有什么用而疑惑。大家对于理论和实践之间的联系还不太理解。在粗略读过邹欣老师的这本书《构建之法 现代软件工程(第三版)》的时候,我解决了一些一直以来纠结的问题。
这本书说来有很多特点:
1.图文并茂。大多教材一整本都是密密麻麻的文字,虽然不乏许多优质的内容,但是读者读来却很容易疲乏。邹欣老师的书加入有趣的图片,在有趣之外还能通过图文很好的阐释一些内容。这也是我一星期能看完这本书的原因。
2.理论+实践。邹欣老师在讲解软件工程相关概念时,会全面地诠释了它们在实际的研发工作中是如何表现的,它们又是如何与每个开发和测试人员息息相关的。读来更容易理解。
3.幽默而严谨。邹欣老师介绍概念时,会使用人物角色的有趣对话来使同学更深入理解。同时作为一本专业指导书,也使用数据说话,严谨认真。

【附加题】:请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出链接
在豆瓣页面的最下方 “读书笔记” 那里发言, 《构建之法》的作者会亲自答复问题

转载于:https://www.cnblogs.com/LianYanbo/p/8594729.html

软件工程第二周阅读作业相关推荐

  1. 软件工程 第一周阅读作业

    Task 0: 网络1512 杨晨露 201521123043 Task 1:博客账号 https://www.cnblogs.com/ycll/ Task 2:码云账号 https://gitee. ...

  2. 软件工程 第二周作业

    ##软件工程第二周作业 提出问题 1. 一般来说,想要自己的程序跑得又快又好,就要减少函数的反复调用,但有所得则必有所失,效能提高就有可能伴随着程序的稳定性的降低,这两者应该如何权衡呢? 2. 关于5 ...

  3. 第二次阅读作业感想——在混沌的英文中爬取软件工程的哲学 刘宇翔

    第二次阅读作业,第一次一口气读完好几篇英文技术论文.在不断的翻译中匍匐前进,在各种生涩的单词中爬取软件工程的哲学.在这里简单谈一下我对这几篇文章的看理解和看法. <No Silver Bulle ...

  4. Emojify - v2 吴恩达老师深度学习第五课第二周编程作业2

    吴恩达老师深度学习第五课第二周编程作业2,包含答案! Emojify! Welcome to the second assignment of Week 2. You are going to use ...

  5. Operations on word vectors-v2 吴恩达老师深度学习课程第五课第二周编程作业1

    吴恩达老师深度学习课程第五课(RNN)第二周编程作业1, 包含答案 Operations on word vectors Welcome to your first assignment of thi ...

  6. 【软件工程】第一次阅读作业

    项目 内容 这个作业属于哪个课程 软件工程(罗杰) 这个作业的要求在哪里 第一次阅读作业 本次作业要完成的目标 阅读<构建之法>,快速了解软件工程的相关知识和过程并提出疑问 读完<构 ...

  7. 第二周python作业——字符串、字典、列表

    第二周作业 字符串 基础 进阶 字典 列表 1. 基础题 2. 进阶题 3. 列表推导式 第二周作业 选择题 填空题 编程题 字符串 基础 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7 ...

  8. 吴恩达Coursera, 机器学习专项课程, Machine Learning:Advanced Learning Algorithms第二周编程作业...

    吴恩达Coursera, 机器学习专项课程, Machine Learning:Advanced Learning Algorithms第二周所有jupyter notebook文件: 吴恩达,机器学 ...

  9. java第二周的作业

    package java第二周学习; import javax.swing.JOptionPane; public class 数学题 {private int a;private int b;pri ...

最新文章

  1. 学习原来可以如此简单
  2. 生物信息学常见数据格式 • fasta • fastq • gff/gtf 练习题
  3. 【错误记录】SeeMusic 一直卡在主界面无法使用 ( 删除 C:\Users\用户名称\AppData\LocalLow\Visual Music Design 应用信息 )
  4. linux ajp集群,Linux下apache tomcat ajp_proxy 负载均衡+集群+session 复制
  5. NTU课程笔记:MAS 714 algorithm and theory of computing(1):introduction
  6. [Qt教程] 第17篇 2D绘图(七)涂鸦板
  7. Java面试2021,java黑马百度云
  8. 【英语学习】【WOTD】wherewithal 释义/词源/示例
  9. dw网页设计作品_UI设计需要学习哪些软件 如何成为高薪UI设计师
  10. 数据分析师是什么,深度解析数据分析师
  11. 放鸡蛋问题:相同元素分配到相同的空间
  12. 巧用电池小工具 电量问题全掌握
  13. GoogleTest 之路3-Mocking Framework
  14. 5-2本题要求对两个整数a和b,输出其中较大的数。
  15. 怎么在Arcgis中提取多个坐标点的dem值(高程)
  16. 台湾南投3.27地震
  17. RedHat设置静态IP
  18. 【反欺诈】浅析新形势下反保险欺诈举措
  19. vtk 常用基础知识
  20. 针对 华为 荣耀5X root(有bootloader锁)---【亲测刷机】

热门文章

  1. 使用jquery 根据下拉列表的name值查找被选中的值
  2. 奇虎360不正当竞争官司不断
  3. 简洁送货单打印软件的使用意义
  4. SQL入门经典(第5版)学习笔记(三)
  5. 【SM2证书】利用BC的X509v3CertificateBuilder组装X509国密证书
  6. 【数论】【Polya定理】【枚举约数】【欧拉函数】【Java】poj2154 Color
  7. 基于Bootstrap、Jquery的自适应导航栏
  8. Backtrack的安装配置
  9. 微软MCITP系列课程(四)磁盘系统管理
  10. C++ 打造自己的Windows终端服务客户端(转)