一、回答五个问题

第一次阅读《构建之法》之后的五个问题:

1.关于敏捷,书中说了我理解的就是介绍了敏捷就是“没有既定的计划与文档,马上写代码,随时发牢骚”,但是开发也是需要有一定的流程的,是否敏捷就是分阶段的瀑布?

2.书中的每章末尾的引用出处,我看了一些很有意思,但是一点点敲网址实在是麻烦,或许单独列出来每章的链接是个好主意?

3.我大学同学,还从事计算机专业的女生大多去做了软件测试岗位,不知道老师是如何看待女程序员的?是不是还是女生比较适合做测试?

4.全书所说的所有过程都十分的完备,但是对于一些小型公司,或者说就是只有几个人的小项目组,要进行这么完备的开发过程是不是有点太过于复杂,怎么平衡?

5.关于萝卜和白菜的问题,我自己是比较倾向白菜的,不知道老师怎么看?

经过一学期的练习,我的回答是:

1.关于敏捷,书中说了我理解的就是介绍了敏捷就是“没有既定的计划与文档,马上写代码,随时发牢骚”,但是开发也是需要有一定的流程的,是否敏捷就是分阶段的瀑布?
    本学期的产品约跑APP经过了三个阶段 alpha、beta、final,我觉得这三个阶段每一个都是一个完整的瀑布模型流程,每一次都是从需求分析,软件设计,代码编写,软件测试这几个流程逐步完成的。这也就是老师当时问的“阶段是怎么划分的”的一种回答吧。关于每个阶段的关系:每个阶段都是递进的,就是每一个新的阶段,都是在上一个阶段完整产品的基础上进行更新,完善,增加新功能。

2.书中的每章末尾的引用出处,我看了一些很有意思,但是一点点敲网址实在是麻烦,或许单独列出来每章的链接是个好主意?

当时没有仔细看书皮,忽略了有二维码,老师提醒发现了,现在附上二维码,以及链接。

http://www.cnblogs.com/xinz/p/4470424.html

3.我大学同学,还从事计算机专业的女生大多去做了软件测试岗位,不知道老师是如何看待女程序员的?是不是还是女生比较适合做测试?

    问这个问题感觉自己当时有点蠢啊,女生虽然会有体力上的缺憾,但是计算机行业一直都是看技术的,只要自己技术好,什么都不是问题。

4.全书所说的所有过程都十分的完备,但是对于一些小型公司,或者说就是只有几个人的小项目组,要进行这么完备的开发过程是不是有点太过于复杂,怎么平衡?

  小公司想要尽快获得效益或许会省略一些分析过程,但是要是想要自己的产品更持久,必然要经过仔细的分析,平衡的杠杆就是看公司是想要大量的产品,还是有长期稳定用户的产品。但是其实,去一个大公司一个人负责的可能短期内就是一个很小的部分,完备的过程可能更没办法全面学习了。我们这学期的产品,总共才4—5人的开发团队,虽然最终的产品不是那么美观,但是我们也有一个完整的流程,这也让我们长进不少。(听杨老师说,邹欣老师20年前的代码还在使用的时候,才真正意识到什么是大师。)

5.关于萝卜和白菜的问题,我自己是比较倾向白菜的,不知道老师怎么看?
   “萝卜快了不洗泥”,“白菜慢工出细活”,白菜能把自己的工作的做的很稳定,并且完整完成自己的工作之余还能帮助别人一点。萝卜急匆匆的完成自己的工作,虽然完成的功能较多,后期出现都出现了各种bug,大家看到的是萝卜什么都可以干,但是这些小强都是萝卜造成的,当初干的快,不如像白菜一样,稳扎稳打,尽力完成自己的那部分,才不至于到最后影响整个项目。当一个公司像白菜一样的人较多的时候,每个人各司其职,项目人手不足就可以招进更多的白菜,每个人都完成的很好。如果公司内像萝卜的人比较多,看似项目进展很快,但是隐患也是呼之欲出,这样的团队,叫用户怎么放心。但是当萝卜慢下来,白菜快起来,二者多结合,才是一个厉害的程序员。

二、提问五个问题:

请根据本学期的学习、收获、困惑,再提出5个问题,可以是读后不理解的,或者读后反对的。有求有观点、有证据或分析。

1.老师跟组长强调过,按期限完成任务比较重要,最后的结果可以是失败的。不知道老师的观点来源是什么,我们在课堂上用来练手的软件可以不成功,但是要是以后工作中要完成一个产品,那么我们钱也投进去了,时间也搭进去了,最后却失败了,如何跟用户解释?如何跟上司解释?这就像是一群萝卜一样的人在做事情,我们尽快赶工,最后却失败了,所以还是不是太理解老师的观点。

2.开始课程的时候,老师一下说出了三个项目,会吓坏同学们的,四人项目在最开始并没有具体的推进,可以在开始课程几周后再说团队项目也不迟。为什么不这样做呢?(这更像一个建议而不是问题。)

3.关于贡献分,老师给我们参考的计算团队贡献分的博客,计算方式很是复杂,导致最后大家的计算方式都在追求复杂,这样的意义在哪呢?老师叫我们自己给出贡献分规则是什么原理呢?何不老师就给出一个标准,类似团队内代码行数+博客字数这样的积分规则呢。

4.留过的作业,可能会有我们到最后都没有完整写完的,或者我们写的很糟烂。老师可不可以在最后给我们一个参考?这样才能更进步啊。

5.老师上课的时间基本没有怎么讲软件工程方面的知识,讲过一次也最后升华成哲学问题,那么这种上课方式有助于构建之法的要求么?不知道其他学校的老师上课的时候都在讲什么?

三、To学弟学妹

首先想说,自己要对自己负责,最初面对老师的这些作业一定会产生叛逆的情绪,但是如何化解就要看自己了。一味地反抗,或者联合全体同学一起反抗,最后产生的影响只能自己承受,那就是还是没有一点长进。老师的作业是多,但是难度却是循序渐进的,最初的作业,要做的事情并不难,自己多学学,最重要的一定要敲代码,《构建之法》课程的宗旨就是Learning by Doing,事实证明没有实际自己去敲代码, 只是听老师的课堂,根本不会有收获,这么多年的上课经验,相信大家也一定懂这个道理。当时虽然有小情绪,但是看了邹欣老师的类比,一下子豁然开朗了,现在分享在这里:

我们可以看看,类似的场景,把一些要求推向极致会出现
《梦幻的考研数学考场》
考生:嘘嘘,老师,嘘嘘,老师!
监考老师: 干嘛?你要提前交卷么? 还是尿急?
考生:不是,我们都是从各个学校来的,基础不一样,你出这么难的题目干嘛? 要我们这么短时间做完,有必要么?
监考老师:...

考生:我的人生道路又不是要做数学家, 这里的每一道题目在我以后生命中都不会用到,事实上我初中开始学的数学就已经超越了生活的必需了, 我忍了你们很久了! 为何还要搞这些难题?
监考老师: 那你为何要考研?
考生: 我有梦想啊! 我要感受硕士,博士生活的魅力,但是我不想感受那些乏味的部分。 我上了硕士,想继续要考事业编或者公务员,你为何要为难我?
监考老师:那你为何不认真复习?

考生:我复习了,我是跨专业的!
监考老师:说明你喜欢这个专业,那么数学是基础,你要学好。
考生:你知道考研要考多少门么?我已经给数学分配了 1/4 的时间,书也买了,虽然没看完但是也翻过了,足够了! 我还有生活, 我还要花时间去high, 要吸吮生活的骨髓, 老师你年轻过, 你为何不能给我及格,你好我好,大家心照不宣一起混算了?
监考老师:嗯... 你可以再回去准备一下,明年再来考。你可以上网做习题,可以和同学一起学习,可以报一些有针对性的补习班,这样就可以提高分数...
考生:
我基础差,明年也差不多的, 补习班要花钱你不知道么? 现在有这样一个机会摆在我们面前: 我现在就马上可以考完,得了高分,就可以上研了。
我听说研究生的生活特别人性化, 跟导师搞搞世界级的科研,其他的课程意思意思就过了。 你为何不帮助我达到我的梦想呢?
监考老师:那你要把题目做了!

考生: 老师, 要不然你在黑板上给我们完整地讲讲这些题目,这样,我们也就懂了, 也就可以拿高分了,对吧?
监考老师: 要自己做,得分数少,也是你的收获,你可以通过别的科目把总分提高。

考生: 你这个老同志... 我觉得到目前阶段不应该总以分数来考核我!
监考老师:这个试卷的要求,就是对硕士水平的要求。 你想要别的要求, 出门右拐可以到别的考场。

考生: 我就是要上研,我不能失败,我也不想多花时间,也不想和同学讨论问题从而得到提高,也不想... 我就是要想过!

监考老师:___同学,你该醒醒了__都尿床了_____

个人觉得老师留的这一项作业是给自己留了一手,“你看看以前上过我的课程的同学们期末的时候都在忏悔自己的最开始的时候的叛逆,就像现在的你们”,但是事实确实是这样,老师留的作业,你可以不写,最后的结果就是老师不给你分数,及格不及格就需要学生自己承受了。想想利弊,还是做一些对自己有利的事情吧。

四、如果重新来过

老师最开始说,可以抄代码,但是一定要自己多敲几遍,变成自己的,这一点我没有做到。如果重新来一次,我觉得不管多少“其他事”,都应该做到这一点。这样,对自己的代码能力才能有质的飞跃。程序员的进步,大多在于代码量,所以我觉得这个改变会让我有进步。

五、最终我们不再是师生

“终于我们将不再是师生”,看见老师这样说,还挺感动的,觉得当我们是师生的时候,老师是个很刻板的人,记得一次发布了一篇博客,老师给我的一个评价是叫我改正一个错别字“得”,当时我脑海的画面就是杨老师,在深夜两点半,老师的脸几乎贴到了显示器,一个字一个字的改着我们的博客,心里就在想,老师怎么那么多精力啊,也太认真了吧。这么久的相处,发现杨老师确实超级认真,而且发现杨老师跟邹老师简直是一种人,太像了,或许追求工程上的严谨的人都是那么相似吧。老师还知道锻炼身体还是很不错了,要不这么熬夜看起来还那么年轻(绝对不是拍马屁啊,老师说自己41的时候我都惊呆了)。杨老师这样的老师我是第一次见到,估计以后也不能见到这样的老师了,对我的影响还是挺大的,具体多大我就不推理分析了。。想给老师的建议:

1.三个项目一起发布有点吓人,反正你的四人项目在最开始也没怎么推进,都是在开始课程时候四五周才有进展,所以,第一节课先不要说这么多项目啊,吓得大家都揭竿起义了。

2.团队项目最好搞一个团队的博客,用组长的账号发布也不是很科学!

祝老师身体健康!

【week11】回顾的更多相关文章

  1. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  2. SQL Server-表表达式基础回顾(二十四)

    前言 从这一节开始我们开始进入表表达式章节的学习,Microsoft SQL Server支持4种类型的表表达式:派生表.公用表表达式(CTE).视图.内嵌表值函数(TVF).简短的内容,深入的理解, ...

  3. [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?

    你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...

  4. [C#] C# 知识回顾 - 学会处理异常

    学会处理异常 你可以使用 try 块来对你觉得可能会出现异常的代码进行分区. 其中,与之关联的 catch 块可用于处理任何异常情况. 一个包含代码的 finally 块,无论 try 块中是否在运行 ...

  5. [C#] C# 知识回顾 - 学会使用异常

    学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...

  6. [C#] C# 知识回顾 - 异常介绍

    异常介绍 我们平时在写程序时,无意中(或技术不够),而导致程序运行时出现意外(或异常),对于这个问题, C# 有专门的异常处理程序. 异常处理所涉及到的关键字有 try.catch 和 finally ...

  7. [.NET] C# 知识回顾 - Event 事件

    C# 知识回顾 - Event 事件 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6060297.html 序 昨天,通过<C# 知识回顾 - ...

  8. [.NET] C# 知识回顾 - 事件入门

    C# 知识回顾 - 事件入门 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6057301.html 序 之前通过<C# 知识回顾 - 委托 de ...

  9. [.NET] C# 知识回顾 - 委托 delegate (续)

    C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...

随机推荐

  1. Java ArrayList 源代码分析

    Java ArrayList 之前曾经参考 数据结构与算法这本书写过ArrayList的demo,本来以为实现起来都差不多,今天抽空看了下jdk中的ArrayList的实现,差距还是很大啊 首先看一下 ...

  2. PAT-A 1009. Product of Polynomials

    参考:https://www.jianshu.com/p/e7a3ee0f82d9 #include<bits/stdc++.h> using namespace std; ; doubl ...

  3. 《Java核心技术36讲》阅读笔记:Exception和Error有什么区别?

    1.Exception 和 Error有什么区别?运行时异常与一般异常有什么区别? Exception和Error都继承自java.lang.Throwable.在Java中只有Throwable的实 ...

  4. D3.js和three.js

    D3.js是一个数据可视化的库,看看他们的DEMO就可以知道,技术基础是SVG.兼容性是IE9+. three.js是以webgl为基础的库,封装了一些3D渲染需求中重要的工具方法与渲染循环.

  5. 20155218 2006-2007-2 《Java程序设计》第一周学习总结

    20155218 2006-2007-2 <Java程序设计>第1周学习总结 教材学习内容总结 浏览教材每章提出一个问题 组建如何与容器互动 PATH与classpath的对比 java的 ...

  6. 20155236 《Java程序设计》实验三(敏捷开发与XP实践)实验报告

    20155236 <Java程序设计>实验三(敏捷开发与XP实践)实验报告 一.实验内容及步骤 XP基础 XP核心实践 相关工具 实验内容 1.在IDEA中使用工具(Code->Re ...

  7. 【BZOJ2395】[Balkan 2011]Timeismoney

    [BZOJ2395][Balkan 2011]Timeismoney 题面 \(darkbzoj\) 题解 如果我们只有一个条件要满足的话直接最小生成树就可以了,但是现在我们有两维啊... 我们将每个 ...

  8. 【LG4631】[APIO2018]Circle selection 选圆圈

    [LG4631][APIO2018]Circle selection 选圆圈 题面 洛谷 题解 用\(kdt\)乱搞剪枝. 维护每个圆在\(x.y\)轴的坐标范围 相当于维护一个矩形的坐标范围为\([ ...

  9. Redis实现之客户端

    客户端 Redis服务器是典型的一对多服务器程序:一个服务器可以与多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复.通过使用 ...

  10. AngularJS中Directive指令系列 - 基本用法

    参考: https://docs.angularjs.org/api/ng/service/$compile http://www.zouyesheng.com/angular.html Direct ...