20201207-总结
此作业要求参见 [https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11604]
回顾0 分值 40
所属团队(alpha后换组的,两个团队都 写)及链接
所属团队:null
团队项目及链接
团队项目:心灵捕手心理评测
git链接:
- 微信小程序代码仓库: https://github.com/null-nenu/soul-catcher-taro.git
- 程序后台服务代码仓库: https://github.com/null-nenu/soul-catcher-server.git
- 相关资源文件仓库: https://github.com/null-nenu/resource.git
在本课程(不包括本学期其他课程)中学习和使用的新软件新工具(全称、版本)及链接
微信开发者工具,版本1.03.2011120,
https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html
在本课程(不包括本学期其他课程)中学习、提高的语言、开发平台(全称、版本)及平台链接
python,版本3.8.0,
PyCharm 版本:PyCharm 2020.2.3
链接:https://www.jetbrains.com/pycharm/download/#section=windows
回顾1 分值40
(1)回想一下你曾经对计算机专业的畅想
Q:当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么?
A:我从小就对电子产品感兴趣,属于那种喜欢折腾的小孩,喜欢折腾研究电子产品,软件硬件方面都挺喜欢的。报志愿的时候一开始是打算报偏硬件的专业,后来在贴吧/知乎了解到学软件比学硬件更好找工作,薪资也更高,所以就报了软件工程。
经过一个学期,想法没有改变。
Q:你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学期,你的看法改变了么,为什么?
A: 不符合。大一大二的时候觉得学计算机的话,语言和框架比较重要,没有意识到数据结构、操作系统、计算机网络、计算机组成原理等计算机基础课程的重要性。到了大三大四,对软件工程专业有了更深入的了解之后发现其实相比于编程语言和各种开发框架,更应该学好数据结构等基础课程。语言和框架只是工具,数据结构等专业课才是计算机专业的精髓所在。所以之前接触的课程不太符合我大一时候对计算机专业的期待,但是现在觉得之前学院排的课程是很合理的。
经过一个学期,我的想法改变了。东师的课程安排还是比较合理的,涉及很多领域的课程。
Q:你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?经过一个学期,你的看法改变了么,为什么?
A: 计算机是我喜欢的领域,因为计算机更多的讲究技术,相比其他行业更不需要和人打交道。大三的时候在上海的一家IT公司实习过一段时间,很喜欢公司的氛围,技术至上,没有太多的人情世故。
经过一个学期,想法没有改变。
(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?
离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
经过一个学期,你的看法改变了么,为什么?
我觉得自己具备了一定的编程能力,可以独立地设计、编写一个规模不大的B/S系统。 我觉得自己的数据结构等专业课程基础一般,同时算法能力也还需要加强。
我的想法没有改变。我依然觉得基础最重要。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
Q:对照以上你阅读的前人们的经历,你的选择是什么?经过一个学期,你的看法改变了么,为什么?
A:我选择做工程项目。
我的想法没有改变,因为我对就业形势还是比较了解。
Q:在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?经过一个学期,你的看法改变了么,为什么?
A:我的优势在于我本科期间有多个项目经历,同时有半年的实习经历,对项目开发有一定的经验。
我的想法没有改变,因为很多人没有项目经历。
Q:针对你的选择,你给自己的本学期的规划是什么?经过一个学期,你的看法改变了么,为什么?
A: 本学期的规划:把之前学过的一些专业课踏踏实实地再学一遍,打好基础,加强自己的算法能力,做一到两个JAVA项目。
我的想法没有改变。
(4)Q:你对这门课的期待是什么?
A:我希望通过学习高级软件工程这门课程可以更好地了解软件开发,对项目开发有更深刻的理解,也希望在杨老师的指导下做一个高质量的项目。
Q:你打算平均每周拿出多少个小时用在这门课上?经过一个学期,你的看法改变了么,为什么?
实测结果,每周平均用在本课程上多少小时?
A:我打算每周花15个小时用于学习高级软件工程。实测每周花了10.2小时。
回顾2 分值50
-
5个问题
作业要求 [https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11183] 题目3 中提到:
通读《构建之法》,发布随笔1篇,要求列出5个问题,可以是读后不理解的,或者读后反对的。要求有观点、有证据或分析。字数不是直接的考核标准,但是要求长到能把观点表述清楚。
请回顾这5个问题,自己回答一下。当初的困惑是否还在,你现在如何认为,是更深的困惑么?
-
《构建之法》第198页提到
在一个项目中,PM的具体任务是什么呢?他们的任务是:
- 带领团队...
- 管理软件...
- 创建并维护...
- 代表客户...
- 分析和带领...
- 带领其他成员...
- 收集...
这里没有提到code review,意思是PM是不用负责code review吗?如果不是,那么在企业的大型项目开发中,由谁负责code review呢?
A:PM负责codeview,我觉得是书上漏了。
-
《构建之法》第198页提到
3.一定的专业能力
如果一定要说专业能力的话,PM的专业能力就是理解和表达....
PM通常也能写代码,能玩转Excel,PPT,Visio,甘特图...
我的疑问是一个合格的PM的代码能力应该达到什么程度?是能看懂项目代码就行还是能参与到项目开发中?我之前接触的三个项目经理在项目中根本不写代码,看不出他们的代码能力,所以会有这样的疑惑。
A:pm的代码能力应该要比开发好,能参与到项目中。
-
《构建之法》第75页中提到
函数最好有单一的出口,为了达到这一目的,可以使用goto。只要有利于程序逻辑的清晰体现,什么方法都可以使用,包括goto。
我反对这种观点。目前绝大部分教程/帖子都建议尽量避免使用甚至不用goto语法,因为goto很容易把程序逻辑弄乱且难以理解。
荷兰计算机科学家E.W.Dijkstra 1968年写给ACM编辑的信《go to statement considered harmful》中提到,
More recently I discovered why the use of the go to statement has such disastrous effects, and I became convinced that the go to statement should be abolished from all "higher level" programming languages (i.e. everything except, perhaps, plain machine code).
(最近,我发现了为什么使用go to语句会造成如此灾难性的后果,并且我确信应该从所有“高级”编程语言(即除普通机器码之外的所有内容)中废除go to语句。)
当时已经证明,任何程序可以通过顺序、选择分支和循环三种方式组成,只需要if...else和while就是足够的。提倡使用这三种方式进行结构化编程,这是提高程序质量的一种方法。
A:我保持之前的观点。
-
《构建之法》第8章讲的是需求分析,实习的时候做的项目里有好几个产品经理,和他们接触多了之后有一个疑问:程序员是否应该都懂一些需求分析?产品经理是都应该懂一些代码?我的感觉就是如果对对方的工作有一定的了解后,交流起来会更有效率。
A:程序员要懂需要,产品不用懂代码。因为程序员懂需求会加快开发速度,需求不用看代码,所以不用懂代码。
-
《构建之法》第337页讲到
15.1.6 招数:砍掉功能
有一个功能看来不能实现预期的设计需求,时间快到了,怎么办?
砍!
砍功能这个方法我不太赞成,因为在实际项目开发中,要求上线的功能都是客户明确要求的,客户没有要求的功能一般是不会开发的,砍功能的话可能不能满足客户的需求。我认为遇到难题应该尽最大努力攻破,实在不能如期上线,应和客户沟通推迟上线,等以后的版本在上线,多争取一些时间。无脑砍功能不可取。
A:我保持之前的观点。
-
-
请根据本学期的学习、收获、困惑,再提出5个问题,可以是读后不理解的,或者读后反对的。有求有观点、有证据或分析。体验一下,这5个问题,是不是更有深度了 。
- 需求重要还是代码重要?
- 程序员是否要懂设计模式,要深入到什么程度?
- 程序员觉得产品给的需求不合理,怎么应对?
- 统计代码行数和编码时间是否有意义?
- 是否需要全栈程序员?
-
回忆整个学期,你有什么话想对后来的学弟学妹们说。
A:基础不牢,地动山摇。多学习课外的知识。
-
如果重新来过一次,你打算做哪些(技术上,而不是态度上的)改变--基于希望得到什么样的更好结果,你才希望这样改变的;更重要的是,你根据什么估计这些改变会有预期的结果。
A:我会参与到前端的开发中,希望不仅仅局限于后端,多学习前端的一些技术,预期效果是可以不依赖别人,自己处理前端的问题。
-
终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布及成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。
A:杨老师布置的作业质量都很高,让我得到了锻炼。希望杨老师不要那么直男。
总结 分值50
-
代码总量,平均每周代码量。
A:代码总行数:1229行,平均每周112行。
-
博客字数总量,平均每周字数。
A:博客总字数:14825,平均每周1345字。
-
根据PSP,平均每周在本课程中所用时间(是的,请再回答一次)多少小时。
A:平均每周10.2
-
进度条总结: 遍历每周知识点,以周为单位做如下表格。
时间 | 提交PSP例行报告时总结的知识点 | 现在回顾该周收获的知识点 |
---|---|---|
第1周 | 数据流图,PSP | 数据流图,PSP,命令行和控制台编程 |
第2周 | git,重定向,profile | git,重定向,profile,PSP |
第3周 | 函数复用,单元测试,版本控制,代码规范,PSP | 函数复用,单元测试,版本控制,代码规范,PSP |
第4周 | 需求分析,PSP | 需求分析,PSP |
第5周 | 数据库设计,可行性分析 | 数据库设计,可行性分析 |
第6周 | PSP | PSP |
第7周 | PSP | PSP,事后诸葛亮 |
第8周 | PSP,code review | PSP,code review |
第9周 | PSP | PSP |
第10周 | PSP | PSP,事后诸葛亮 |
第11周 | PSP | PSP,代码review |
1.时间分配堆积柱状图。如图所示,给出每周的时间分配,数据来源是每周的PSP。