PSP总结报告
一.回顾1
学期初博客链接:http://www.cnblogs.com/yuanyue-nenu/p/7496154.html
(1)回想一下你曾经对计算机专业的畅想
当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么?
答:当初选择计算机专业的原因见问题上方博客链接。经过一个学期我的看法没变,因为我是调剂过来的,本来来这个专业就没啥别的看法。但是经过这个学期的学习,我发现可以通过自己的努力解决一些小问题,获得了一点点技术上的成就感;而且我发现一个软件工程中不只是与代码相关的工作才是有意义的,其他方面也有有意义的工作,比如:撰写文档、宣传视频制作、版本控制等。为我今后的择业扩展了选项。
你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学期,你的看法改变了么,为什么?
答:以往回答见问题上方博客链接。我原来认为过去接触到的课程不太符合我对计算机专业的期待,经过一学期我的看法没变,但是我发现自己可以在课外做一些工作提升自己,可以确定一个小项目来锻炼自己的能力,比如:计算器、网站等,在任务的驱使下学习一些东西,这学期我在b站上看了李宏毅教授的机器学习课程,在慕课网上看了数据库以及php的相关教程。认识到除了课堂之外,可以获取知识的渠道有很多,而“做中学”的学习思路是有效的。
你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?经过一个学期,你的看法改变了么,为什么?
(注:不可以回答 "不是","是"。请把这当成以后工作时面试题,需要回答足够长度,提供足够信息,让对方了解你。比如,给出为什么。)
答:计算机不是我擅长的领域,经过一个学期我的看法并没有变,反而更加深刻地认识到这一点,在完成作业的过程中我发现自己并没有很快学习一门编程语言的能力,也缺乏动力,在与同学的交流中我发现教师也是一个不错的职业选择。
(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?
离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
经过一个学期,你的看法改变了么,为什么?
答:以往回答见问题上方博客链接。经过这个学期,我的大体看法没有变,但是我发现确定职业目标是很重要的,因为计算机相关工作有很多,没有人能够在计算机相关领域都做得好,确定一个职业发展方向然后有目标地学习相关知识,确定一个方向相关的练手小项目,在任务驱动下进行学习是一个提升自己的有效方法。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
对照以上你阅读的前人们的经历,你的选择是什么?经过一个学期,你的看法改变了么,为什么?
答:我之前的想法是毕业之后从事计算机相关工作,经过一个学期我的看法改变了,我的决定在研一的时候要细化求职意向,然后有针对性的学习知识,争取在研二下学期找到实习,进行为期半年的实习之后再决定是不是要在这个领域发展。因为我发现自己其实并不是非常喜欢这个专业,而且也不一定能够适应这个专业的加班强度,但是毕竟学习计算机专业很多年还是应该去体验一下计算机相关职位的工作感受。
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?经过一个学期,你的看法改变了么,为什么?
答:以往回答见问题上方博客链接。经过这个学期的学习我的看法没变,因为只通过一个学期的学习好像也不能从根本上扭转之前的优势与劣势。
针对你的选择,你给自己的本学期的规划是什么?经过一个学期,你的看法改变了么,为什么?
答:以往回答见问题上方博客链接。经过一个学期,我的看法没有变,但是有一个困惑是:之前的计划中阅读研究方向的论文占了很大的比例,但是我是专硕而不是学硕,在今后的计划中是不是要将学习重心向提升动手能力方面倾斜,但是既然读了研究生,如果没有一篇论文可以发表是不是在找工作的时候也不太好?
(4)你对这门课的期待是什么?
你打算平均每周拿出多少个小时用在这门课上?经过一个学期,你的看法改变了么,为什么?
实测结果,每周平均用在本课程上多少小时?
答:之前的回答本来是计划每周投入5小时,但是看了大家的博客发现同学们都很有志向地填了20-30小时,我就把目标定为15小时每周,在学期初我可以肯定是满足了每周15小时的学习时间的,但是之后有几周好像是没有达到的,具体的数据等我统计之后再说。统计结果为每周8小时。
二.回顾2
-
5个问题
作业要求 [https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/876] 中提到:
通读《构建之法》,发布随笔1篇,要求列出5个问题,可以是读后不理解的,或者读后反对的。要求有观点、有证据或分析。字数不是直接的考核标准,但是要求长到能把观点表述清楚。
请回顾这5个问题,自己回答一下。当初的困惑是否还在,你现在如何认为,是更深的困惑么? -
请根据本学期的学习、收获、困惑,再提出5个问题,可以是读后不理解的,或者读后反对的。有求有观点、有证据或分析。体验一下,这5个问题,是不是更有深度了 。
-
回忆整个学期,你有什么话想对后来的学弟学妹们说。
-
如果重新来过一次,你打算做哪些(技术上,而不是态度上的)改变--基于希望得到什么样的更好结果,你才希望这样改变的;更重要的是,你根据什么估计这些改变会有预期的结果。
-
终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布及成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。
答1:以往博客链接如下:http://www.cnblogs.com/yuanyue-nenu/p/7502844.html,原来提出问题如下:我会在问题后给出自己如今的回答。
1.第6章敏捷编程中,感觉是需要定义好任务然后按计划衡量是否完成计划,但是后来又说敏捷团队需要自我管理自我组织还要多功能,感觉这样对研发团队的要求是很高的,不仅编码能力要强而且还要对工作有热情。那么可想而知如果团队中都是这样的成员不管什么项目的完成质量应该都会比较高,那么敏捷编程的意义何在呢?
—>敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。我认为也许一个项目目前的成员也许达不到最优程序员的要求,但是提出敏捷编程的思想可以给大家一个合理的工作方式的指导,项目成员按照敏捷开发的要求去做,也可以做到跟项目一起成长,成为一个更加优秀的程序员、项目把控者、管理者。
2.看到了瀑布模型感觉还是不太能理解?
—>瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。如下图所示:
3.在第8章说对于项目要提高估计能力的招数,其中说到人员的因素->分析程序员的能力,我的问题是如何做到这个呢?对于程序员能力的评估是很难量化的。
—>成熟的程序员可以通过笔试、面试、机试等多种方法考察一个程序员的数据结构、编码水平的高低,谈一谈这个程序员经手的项目也可以从侧面了解这个程序员的水平。
4.第11章中说的“小强地狱”有个阙值,书中说是按照项目的实际情况来确定,但对于一个不成熟的软件工程调控者,这个阙值该如何确定,有没有什么计算标准?
—>一般来说,能够担任一个软件工程的调控者都有着丰富的项目经验,可以根据以往的经验先确定一个阙值,在实际的工程中根据现实不断调整。
5.读到第13章软件测试的时候我有个疑问,功能化测试对测试工程师的要求并不高,但是自动化测试好像又对测试人员的素质有一定的要求,在实际工作中测试工程师的编码水平是不是逊于开发工程师呢?
—>测试与开发所需要具备的能力各有侧重,但是如果想成为一个卓越的测试工程师也需要具有很强的编码水平,这样才能更好地适应黑盒测试等多种测试方法。
答2: 提出5个新的问题:
a.我们组在Beta发布时出现了bug,但是在准备修改bug的时候,发现那个bug无法复现怎么办?
b.书中提到在测试工作中最好有详细的文档介绍,但在敏捷开发中要坚决避免写文档而写文档,要写真正有用的精简的文档。那什么文档才是有用的,什么文档是必须要写的呢?
c.我们组今天开会的时候提到要写一个二次开发的文档,但是我怀疑不会有小组对我们的项目进行二次开发,那么写二次开发的文档是否有必要呢?
d.在书中项目经理这一章提到了交流成本,那么在团队中采取怎样的方法才能够让项目成员有效交流呢?在课程中,我们采用的方法是每天开会,但是我觉得有时不必每天开会,因为不是每人每天都有新进度要汇报,那如何解决这个问题呢?
e.再提一个测试的问题,一个小型的项目,比如我们的psp daily,除了功能测试还能采用哪种有效的测试方法呢?
答3:经过这一学期的学习,我想对学弟学妹们说,软件工程这门课非常有用,要听老师的话,按照老师的要求保质保量的完成作业,只有自己真正做过才能够实实在在的获得提升。但除此之外,我希望学弟学妹们早早地确定自己的目标,是搞学术还是求职,总要有一个侧重,因为时间真的过得太快了,不知不觉3年很快就过去了,要有规划。
答4:在团队编程中,我承担的代码量不够,因为自己本身的编程能力薄弱,如果再来一次应该会更加着重提升自己的代码能力吧。还有在学期初,老师提到的版本控制,我一头雾水,开始只是按照老师的要求,学习了git bash的用法,也不太能了解版本控制是什么作用是什么?但是在团队开发中,随着代码量的增加,以及每一版代码的修改,我深刻理解了版本控制的重要性,如果再来一次,我会把版本控制方面做得更好吧。
答5:感谢老师这一学期的辛苦教学,课堂内容也十分精彩,听老师的课程不太像是传统的课程有时甚至有趣到像一场脱口秀表演。
三.总结
1.代码总量,平均每周代码量。
2.博客字数总量,平均每周字数。
3.根据PSP,平均每周在本课程中所用时间(是的,请再回答一次)多少小时。
4.进度条总结: 遍历每周知识点,以周为单位做如下表格。
答1:代码总量872,平均每周代码量72.67行。
答2:博客字数17048,平均每周代码量1420.67行。
答3:每周花费8小时。
答4:表格如下
知识点回顾表