课程计划:
多写代码,每次写代码前先思考大致流程
在两次结对编程的过程中,我和另一个同学都会先商量好整个算法流程,以及各个部分的函数接口。
在平时写代码的过程中注意提高代码效率
在两次结对编程以及最后的大作业中,我都会考虑自己那一部分代码的运行速度,并采用一些方法来进行加速
多用github
参与使用github来进行我们项目的维护
回顾之前阅读《构建之法》提出的问题
P170 ”软件时间的估计,实际是多个估计值的乘除法“。
问题:如果把一个软件项目拆分为几个子任务去完成,考虑可以并行开展的以及需要串行处理的,不应该是各个部分的加减法吗?
回答:书中的多个估计值,指的应该不是每个子任务用时的估计值。
P345 创新和目前大众习惯,已有系统是否兼容。
问题:前面虽然举了Dvorak比QWERTY键盘更有效但最终失败的例子,但我认为,有时候即使新的想法与人们的习惯不同,也值得去尝试,比如电商的出现与兴起,电脑的普及,有的时候新事物也是可以去学的。
回答: “创新和目前大众习惯,已有系统是否兼容”确实是软件工程领域应该考虑的问题。在这次看图写对联的项目中,我们也正是出于目前微信用户众多,微信小程序便于使用的特点,来决定基于微信小程序的平台做这个项目,收获了很多的用户。
P348 另一个例子是索尼公司的”单放机“。
问题:这个例子用来说明要成为领域的专家才能创新是不是不太恰当,因为盛田昭夫更像是一个产品经理的角色,并且随身听本身的技术创新与盛田昭夫无关。
回答:在这学期上课的过程中,我了解到很多产品经理也是懂得其中的技术的,并不是完全不懂技术实现的,而且如果对某个领域的技术更了解,越有利于成为一个优秀的产品经理。
P352已有的销售团队往往不愿意推广颠覆性的新产品,因为市场没打开,利润率低。
问题:在追逐利润的同时是不是也要考虑长远,就像Amazon之前花大经历在云服务上,后来证明是一件有益的事情。
回答:销售团队销售什么还是和公司高层决策相关的,而且可以考虑提高前瞻性产品在绩效考核中的价值
P340 创新的迷思。
问题:关于创新,我还有个问题,是不是IT行业所有的成功的例子都算某种程度上的创新,如果我能够发现市场存在某种需求,开发出一个软件,就算没有技术的创新,但也可以称为模式上的创新?如果这样的话,是不是所有行业,创新的最大动力来自于社会需求。
回答:都算创新,毕竟发论文把别的领域的套过来用都算是有novelty的
对比技能评价表,有什么提高
学会使用了更多的python语法
更加注重代码规范,提供良好的接口,进行参数检查。
通过和小组同学共同做一个项目,提高了合作能力。这次的软件工程课确实让我认识到了,如何规划好时间,将任务分工,发现并解决问题,保证最后的项目能够顺利完成。
设想一年之后, 你到了你职业发展的下一个阶段(高年级, 读研,工作),回头看这门课, 你对于这门课的教学方法, 老师和助教的工作,和其他课程的衔接,有什么意见和建议?
感觉邹老师讲课很好,并且对于这门课的大作业安排也很好,有理论,有实践,有参观,比很多高校中的老师要更有经验。
建议:可以增加更多的”事后诸葛亮“会议,包括之前几个小项目结束之后,可以让得分较高的几个小组展示一下他们是如何做的比较好的。