现代软件工程 第一周作业

1.自我介绍

大家好,我叫杨涛,来自西安交通大学,非常荣幸能和大家在这里一起学习,目前在网络多媒体组实习。我有非常广泛的爱好,比如画画,比如制作小制作,打乒乓球,羽毛球,网球,以上三种球其实我打的不是很好,但我也挺喜欢的。感兴趣的同学可以打的时候叫上我,此外,我还喜欢踢足球,我喜欢那种在球场上抛洒汗水的感觉。其实我还是个弱弱的技术宅,我把宿舍的门,台灯,显示器,空调,闹钟,提醒什么的全部用程序写在了树莓派里用微信操控(其实只是因为我经常忘带钥匙,忘记关空调,偶尔还会忘了关灯,忘了一些比较重要的事情,对,我挺健忘的,所以逼迫自己做了个这个),喜欢的动漫是火影忍者,我特别喜欢里面的主人公鸣人那种不服输的劲。对我来说兴趣比一切都要重要,我之所以会来到这,会选这个专业也是兴趣驱动的,因为我对这方面非常的热爱。我认为一份工作多少钱不重要,干什么才是最重要的。以前总是觉得写博客异常麻烦,所以一直就处于只爱写GitHub readme 不爱写博客的状态中,不过我相信自从来到这里,我会一直坚持把这件事做好做下去。最后,其实我的小制作,和画的画蛮有意思的我就放三张图吧:

现代软件工程 第一周作业_第1张图片现代软件工程 第一周作业_第2张图片

上图这个小黄人实际上是一瓶涂改液和一个羽毛球。。。最后一张图其实是因为没钱买显示器而已(偷笑),这些其实都只是我从小自己喜欢瞎搞,搞出来的,也不算什么优势,但动手能力还是蛮强的,大学里做实验就体现出来了,手残的我大部分时候都是第一个弄完的。

2.现状经验和计划

首先就是几个老师提出来的非常重要的根本问题

 (1)在你一生中身体最健康,精力最旺盛的时候,能在大学全职学习和研究,这是少有的机会。请说明一下,你是怎么选择了这个专业的?

 其实高三的时候,我最感兴趣的是物理,我那个时候也没想着自己要搞研究,在那之前我从没有编写过代码,从没有接触过一些软件层面的知识,突然就要填报志愿了,我觉得我应该跟着兴趣走,但是我不可能大学去学理论物理,主要的原因还是在同学们眼中,理论物理是没有前途的,搞科研是没有出路的。当然这一切想法今天想起来还是很搞笑的。但我没有摒弃我的兴趣,那好!我就保我觉得和物理比较相关的工科,于是我把所有的志愿填上各种工科,大部分与计算机相关,一些是能动和机械之类的,最终我还是鬼使神差的录取到了自动化(EE和CS都有一些,偏向CS一点),刚开始进来其实还是想努力转专业的,因为这不是我交最好的专业(最好的是电气),但自从接触了C语言,了解到了以后可以做机器学习,人工智能方面,我开始动摇了,因为我从高中就有一种幻想:假如我们把大脑中的各种信号数学关系找出来,用计算机去模拟计算这些,那么是不是计算机也能像我一下思考,像我一样具有意识。从有了那种幻想开始,我一直梦想一天我能做出具有意识的机器,搞清楚意识的原理,甚至将人类的意识上传到计算机,从而达到永生的目的。(对,我从小就喜欢胡思乱想)当时想着,探索大脑与意识的究极原理,和探索宇宙都是一样的有价值,一个是真宇宙,一个是内部的小宇宙。再加上当时的我对代码可是如痴如醉,老师要求的,我编,老师不要求的,我也编,老师教我的,我学,老师没教我的,我借书自学(因此那年我借书量全校第四),所以想到这些我不愿意转了,我爱这个专业,我爱我从事的这一切。至于刚开始我很鄙视研究,为什么最后我想做学术研究,是因为在大学期间我加入了学校的IAIR(人工智能与机器人研究所)一步步研究生活中,我发现我喜欢做这件事,而且我也很适合做这件事,我改变了对它的看法。所以最后选择我一定要读博,我一定要读人工智能方面的博。

离成为一个合格的 IT专业毕业生,在专业知识、技能、能力上还差距哪些?请看这个技能调查表, 从表中抽取 5 - 7 项你认为对你特别重要的技能, 记下①你目前的水平 ②你想在课程结束后达到的水平 (数字 0..9 表示); ③你计划通过什么手段提高水平 

虽然学校老让我们用C Matlab 但是自学的我,最喜欢的还是Python,因此大学里的很多作业我都是用Python完成的,我选了以下几项作为我认为的特别重要的技能:

Skills 课前评估 课后评估
Design/架构设计,模块化设计,接口设计 4 8
Implementation/模块实现,逐步细化 4 8
Performance/效能分析和改进 1 6
Conmmunication/线程之间进程之间,不同平台进程之间 2 7
Comprehension/理解已有的程序,阅读分析,Debug 4 8
Bigdata/处理大数据 1 6
cutting edge technology/前沿技术 1 8
Personal Software Process/个人源码管理,两个都包括 2 7

我之所以这么选是因为我觉得:

  1.无论任何时候,设计都是非常重要的,我觉得这方面的知识多多益善,上不封顶,任何一个工程,设计都是首脑。

  2.有了设计不能实现的化,也是白搭,而且我觉得即使是最后不是自己做实现,也要知道怎么实现也是非常的重要的,这方面可以加深对工程的理解。

  3.效能分析和改进完全决定了一个东西的生死存亡,非常的重要。

  4.代码的阅读理解能力,也是一种团队合作必须要有的技能,而且在会写代码之前,首先要学会看代码。

  5.大数据的时代到来了,不管从事什么行业,处理大数据,都是必备的技能。

  6.前沿技术就是科研呐,掌握最新的的科技,是上不封顶的,毕竟创新的重要性摆在那里,而且要做好的产品,最新技术是避免不了的。

  7.为了以上6项良好的发展,最后一项就是软实力啊,必须提高。

Flag我已经立好了,怎么去实现而不被打脸呢,我打算使用以下的方式实现自身的提高:

  1.前五项均是项目上的硬实力,我觉得没有任何捷径,只有不断的做项目,不断的在实践中尝试,在实践中摸索,练习,此外我认为《构建之法》有很好的指导性作用,也需要这本书进行参考,剩下的还需要阅读一些专业书籍,当然最重要的还是实践,因为实践是检验正理的唯一标准。

  2.无师难以自通的,为了更好的提高我自己的能力,请教别人也是非常有作用的,我要请教老师和同学,做项目做的更加优秀的同学,不管是老师还是同学,任何优秀的人都可以是我的老师,我都需要虚心求教。

  3.后两项均是较为前沿的技术,我需要多阅读文献,多阅读文章,多对文章进行复现,掌握技术的同时也要锻炼代码能力。

  4.最后一项只能是在实践前面的要求的同时多注意,多查资料,多看相关的用法,多实践刚刚学到的知识

  5.多看书,多读书总是有益处的,我的数值分析老师高勇新老师曾经说:一个人的思想被“污染”过,就不可能再纯洁了。所学的知识暂时不会非常有用但是,最后肯定有意向不到的用处。

(2)阅读一下博客,并务必写一些心得:

a.大学生上课为什么一定要认真听讲?

 读完这篇博客我产生很多的共鸣,大学四年,无论是什么课,只要是能让我坐在第一排认真听的课,我都坐在第一排认真听,但我的出发点,可以说和博客所说的就大相径庭了,因为当时的我想不了这么多,我思想很单纯,这课我就必须听,而且必须听进去,原因很简单:我交了学费。所以四年以来,不论是高数线代,还是毛概思修,不管什么课,我必须学而且必须学到东西,至于为什么坐在第一排,原因很简单,我第一节课去迟了,上课前半小时才到(当时大家学习热情可想而知),我只能坐在中间位置,我个子矮,视力差,看不清,从那一刻开始,为了对得起学费,我就坐在第一排,但课下花多少时间在这门课上,我也不看学分,(毕竟我不是很在意自己的成绩,但最后结果都不错)我看我对什么感兴趣,对某门课感兴趣我就去借这门课相关书籍,学习其中的老师不讲的内容,在认真听马原课的时候,我逐渐理解了什么是新中国,什么是马克思主义,什么是党,什么是人民,所以我才会依然决然选择去入党。(其实之前我对入不入党的问题,一直都没有个准确的答案)而现在我已经是一名正式党员了。因为每次上课都是坐在第一排,基本上所有的任课老师也都认识我,这也算其中一个意外收获吧。博客里面说走神是认真听课的大敌,我却有一个预防走神的方法,就是不断的像高中那样接老师的话,回答老师的问题,这样的话真的非常难走神,我也觉得上课一定是有用的,就像我的老师说过,一个人的思想被污染过,就不再纯洁了,所学的知识,也许某一天提醒你在另一个领域做出惊世创举。

b.你在大学中体验到了哪种师生关系,你希望这门课是什么师生关系?如果老师布置的作业对你来说有些困难, 你会怎么样:

C: 向老师和同学请教,花更多时间,把作业全部完成。看完这个博客感觉老师真的是在教学上下了不少苦功夫,我记得这也是《构建之法》的绪论里面的,我非常的赞同老师说的健身教练与学员的说法。其实在师生关系方面,我非常的幸运,我有幸碰到的我大学科研的启蒙导师任鹏举老师,他是我们班的班主任,同时也是我们嵌入式,人工智能导论两门课的老师,我觉得我和他的师生关系就像健身教练和学员的关系,还是那种关系非常好的,他作为交大人机所的老师,一方面具有很多的资源,我可以和他的学生一同或者我自己在专业中找志同道合的同学一起做一个项目,就像图中所练的杠铃一般,的确是练肌肉的好东西,在做项目过程中我的编程能力,团队合作能力,设计能力阅读代码能力提升的都特别快,因为是项目,赶着我走的并不是人,而是那万恶的deadline,紧凑的时间,巨大的工作量,就和健身房里所做的锻炼一样。和所有的健身活动一样,任老师经验非常丰富,知道我做之前需要做哪些“准备活动”,对我的不规范的操作都一一指正,从他那我还学到一点项目管理的方法。就像博客中说的那样,健身场馆里能认识很多的志同道合的人,在人机所里,我同样认识了志同道合的涂志俊同学(大学里最要好的朋友,项目队友,建模队友),曾浩伦同学(项目队友),张贺同学,(一起来MSRA的同专业同学)可以说是非常的幸运了,我大学里几乎所有的比赛项目,都离不开他们几个。

c.在工作中,我们要引用文献,参考别人的资料,在别人工作的基础上继续开发, 这些活动和抄袭、剽窃的区别是什么?请仔细阅读相关文章,并询问老师在这门课中的要求,了解学校对于抄袭的处理规定。 

在明显进行区别并注明出处的情况下,应该属于引用,在模糊两者界限,或者都不注明出处的,属于抄袭和剽窃,(老师在博客中也指出:对文档:凡是引用别人的文献的地方,要明确地标注出来,要符合各种规定,对程序:老师给的博客也说要注明出处)出发点也不同,这些活动都是有利于自己的学习的,有利于自己做项目的,我们引用的目的是为了站在巨人的肩膀上,做我们自己的工作,重点还是自己的工作,但是抄袭剽窃的出发点就是为了将别人的工作的功劳划到自己的头上。阅读完博客后我也深有感触,因为学校里这样的同学为了应付老师连实验报告名字都不改就发给老师,还被我们老师抓住,这种行为我觉得是非常可悲也非常可耻的。前段时间看到那个小保方晴子万能细胞那件事,最后导师自杀,她也遭学术界封杀,医学上也造成不好的影响。学术不端的危害可想而知,我们应该从课程上培养好这样的习惯,到最后抄袭剽窃了连自己都不知道才是最可悲的(难道要学校站出来说没有主观造假,参考韩春雨事件)我想危害最大的还是哈佛大学皮耶罗·安韦萨教授的学术造假,这种情况的造假,让那些根据他论文的方法做手术的患者付出多么惨痛的代价,导致医学不是救人良药,而是害人利器!

(3)几年后,你可以做学术研究、做软件项目、做其他专业的工作,做公务员,出国深造,回家继承家族企业...  ,不同的选择有不同的努力方向, 你今天是怎么为将来准备的?

我今天不为别的,只为做学术研究而来,就像我之前说的,原本我比较鄙视做科研的,因为当时不成熟的我觉得做科研意味着要艰苦奉献一辈子,我也不是什么伟大的人,也不要做什么伟大的人,我平平凡凡的做我就好。在这种享乐主义盛行的时代这样的思想是很容易滋生的,没见过什么大世面的我也是。比较幸运的是,我来到了我的母校西安交通大学,这里真的要说一句,谢谢我的母校,来到这里,我感觉很辛运。在学校的这几年,我才知道,原来我的人生不应该那样过,我也找到了自己喜欢的东西,就是做科研,同时也弄清楚很多东西,想明白了很多事情。可以说大学的这几年,我最快乐的时光,就是在人机所自由科研,对一个问题不断往里钻研那个过程,这里面带来的喜悦,是我从不曾体验过的,最后问题解决的那种成就感也是不言而喻的,还有就是当你的想法,一字字落成文章,发表在那些国际期刊与会议上,所带来的喜悦,也是从未有过的,虽然中途很多挫折,甚至被拒过一次稿,但我真心喜欢那样的过程。因此我下定决心,不管以后是有多少薪水(毕竟当今时代大部分人衡量价值,用的还是这个),我都觉得做什么是最重要的,我要做这个我喜欢的事,而且我一定要把它做好!况且我还有我的究极梦想:能做出具有自我意识的机器,搞清楚意识的原理,意识的本质,甚至将人类的意识上传到计算机,从而达到永生的目的。(虽然不现实,但我觉得梦想还是要有的,万一实现了呢)

至于我怎么准备的,目前,第一件事就是尽快融入课题组当中,第二件事是认真对待这门课程,提高编程能力与各项能力,第三件事是提高英语能力,不停止背单词与人交流,以及认真对待MSRA的英语课。长远一些,我打算广泛吸收各种论文理论,思想,多阅读,多请教(MSRA大神云集,我一定要好好取取经),多进行英语写作,阅读,口语练习,再者不放过任何一个练习写代码能力的机会,抓住机遇疯狂提升技能。最后我打算记录一下每天的奇思妙想,说不定哪天就派上用场呢,而且看论文不能只停留在IEEE,还要涉猎一些SCI的东西,我一定要成为一名学术大佬!在研究方面,目前打算从视觉开始入手,博士期间先做视屏理解,以后以这个作为基础做认知,做意识(幻想到时候AI可以研究意识了),我觉得一个人的意识应该是能感受世界后才有的,感受世界最好的方式就是看。

(4)你在这门课的计划是什么?参考一些学校的教学(美国本科,中国软件工程本科1,美国大学软件专业),你对这个课程有什么期待?你打算怎样度过这个课程?你想当助教么?

 美国本科看完这篇博客,我非常的震撼,想想我自己母校的大学教育,的确,差距不是几年之内能够弥补过来的。在我们学校虽然较为重视过程教育,但是所谓的重视过程教育也成了稀释优秀与差劲之间差距的手段,很多时候是比较不公平的,平时分成了一种要比考试更容易得到的分数。很多情况下,学校的考试考的都是一些较为简单的题目,根本不需要动脑子,记住学的那些东西,就可以算出来,这样做的后果就是,两个月以后,学生什么也没记住,就比如说,自动控制原理,这门课我获得了99分,可以说是相当高了,但是当一年后的今天我想用PID来控制一个电机,也是费了巨大的力气,刚开始还是什么都不会的状态当然这也不能怪学校,毕竟学校已经很努力了。我希望这个课程中能看到博客里说的那样,启发式的教育“注重自己推导和发现,甚至是一堂实验课都像在完成一个完整的探索性研究。”而且国内授课都是死板的老师讲授fact,学生记下来,偶尔遇到讲的特别好的老师非常具有启发性(我校高勇新老师),期望这门课有博客中那样多样化的考核方式,趣味性非常高的课堂,充分展现出学生的想象力,我希望这门课也像博客中所写的那样真正做到““临时抱佛脚”绝无可能,而是每周都在用功”。

中国软件工程本科1这位前人大神的总结,想着我以后也要写这样的总结,我不禁暗下决心,我一定要努力,一方面我不能给交大丢人,另一方面,我不能打自己的脸,至少在我自己这里不能!看着大神在课堂上的收获,我也有了自己的一些期许,和一些决心,就像学长说的:尽最大努力去做好应该做的事。另一个就是各种事情追求完美,再者我要记录下每次学到的点点滴滴,成为一种成长的印记。需要在每次工程过后都要总结与分析,在尝试中不断提升自我。至少要到达老师对于一个学生的期许,因为之前我和这位学长一样,每次都把自己当成一个不折不扣的程序员,总是觉得,最重要的东西是技术,是钻研技术,但实际上,要做好一个团队,光有技术是远远不够的,我也要学会需求分析,学会怎么当好一个PM,正真的学到如何进行软件工程。

美国大学软件专业对比起国内计算机课程来说,国外的教育先进性体现在了如博客所说的那样:美国的大学教育和中国的区别很大,就计算机科学专业来说,来了以后能强烈的感受到这边对实践的重视。回忆起我自己的几个经历,和博客中的还是有几分共鸣,产生了一些感想。刚上大一的时候,学校开了c语言课程,这课程虽然安排了很多课下的上机课程,最后还有大作业,我觉得课程本身没有大问题,因为毕竟我最初的编程能力就是这么来的,但是这个让我有很多感触的是,当时大片大片的同学什么也没学会,最后不是我们手把手教,或者直接把实验报告给他们,他们拿去改,最后把实验报告一交这课程也算是结束了,但这课导致的后续雪崩般的影响可想而知。后来数据结构课程,很多同学已经从想掌握掌握不了转向不想去掌握,直接一改别人的实验报告进行提交便可,以及后续的嵌入式实验,自动控制实验,数字图像处理,项目设计,所有的课程,把别人的实验报告修改提交就行。最后自然到大四,什么编程能力也没有了。所以大学的第一门编程课十分的重要。另一方面原因是大家的大作业都是统一的,不像博客里那样,自由选择想做的东西,组成不同的团队,有不同的分工,(大四项目设计这么做了)但是之前这些同学所欠的这些技能已经无法让他们完成了。我想如果从第一堂课就像美国大学那样,特异性的大作业,十分给力的助教老师,最后我们专业的编程能力会不会大幅提升呢?另一件事就是,我有幸也在学校组建团队做过类似的项目,这是我们当时的分工:

杨涛(我):嵌入式开发,以及人机交互系统实现,系统调试,系统设计

涂志俊:服务器后端开发,以及服务器数据库开发

曾浩伦:服务器程序设计开发,数据处理

蒋旸阳:电路板设计,人机交互页面设计

当时给中铁十八局做一个智能降水监控系统,我们各自都学到了很多东西,也像博客中说到的那样:他们会为了一个界面的细节和你争论到脸红耳赤,也会因为自己的一个错误一再向你道歉,会为了赶进度在周末主动熬夜,有太多的细节和难忘的回忆。我们也有很多的奇技淫巧,各种神奇的操作,想尽了一切办法,那段时间可以说是进步最大的,所以我也明白实践对学习的重要性,尤其是这件事,我希望课程中也有许多这样的经历,真的非常棒呢!

你想当助教么?说实话,在此之前,实际上再看这篇博客之前,我都没有认为助教是如此的重要,甚至以前还错误的认为助教只不过是帮老师改作业的教学工具罢了,并且从未想过当助教,可以给自己带来这么多的好处,如果现在问我的话,我想说我想当助教。传统的实践课程中,助教只是帮助老师节省了替大作业评分的时间。但在现代的实践课程中:助教可以说是深度参与了课程的建设,其中的功能便包括:与学生充分的互动,提供课程改进建议,为学生答疑解惑。因此一门好的课程与一个好的助教是分不开的,我很想当这样的好助教,第二个当助教可以与优秀的人才共事,总所周知,与优秀的一起做事,自己也会变得优秀。

综合上面我所说的这些感想,其实很多回答也在上面了,我在这门课计划是大幅提升各项skill,尤其是编程能力和软件工程能力,因此我一定要付出加倍的努力。另外,我对课程的期望是:多样化的考核方式,趣味性非常高的课堂,充分展现出学生的想象力,我希望这门课也像博客中所写的那样真正做到““临时抱佛脚”绝无可能,而是每周都在用功”。同时我希望课程中也有许多这样的实践项目。最后,我很想当助教,一门好的课程与一个好的助教是分不开的,我很想当这样的好助教,第二个当助教可以与优秀的人才共事,总所周知,与优秀的一起做事,自己也会变得优秀。

你目前的代码量是多少(列出语言和代码量,精确到100行)? 为了有资格入职一流的软件公司/互联网/人工智能公司,需要多少代码量?从事高校教学科研工作呢? 

  目前代码的情况应该是这样的:

语言 当前代码量 需要代码量(工程师) 需要代码量(教授)(我想达到的级别)
c 8500 50000+ 100000+
matlab 10000 50000+ 100000+
python 10000 50000+ 100000+

c++

100 50000+ 100000+
HTML 10000 50000+ 0
css 20000 100000+ 0
Javascript 5000 50000+ 50000+

 因为大一的时候刚进来,对什么都感兴趣,写了很多网页代码,大二也在写,做了一些网页项目,后来数模各种比赛和实验,疯狂用matlab,最后项目上很多用的python,然后实验都用python写了,也自学一段时间c++写了几个例程玩了一下,c的话大一c语言课程,和大二数据结构课程都是较大的工程,还有写了很多嵌入式c,本来还有verilog的但是,看来以后用不上了,就没有写上去。

你打算平均每周拿出多少个小时用在这门课上(时间包括上课时间)? 如果你在前面说过,你在前两年浪费了很多时间,现在要发奋赶上,请问你打算:

我打算第一要务是课题组,第二要务是这门课,平均每周至少也得花个30-40个小时在这门课上(估计的),至于啥时间嘛,时间是挤出来的,一有点时间就可以用来放在这个课程上面,毕竟每门课程我都会非常认真的对待。当然是D: 比以前课要多很多,直到达到目标为止。我一向是不达目的誓不罢休的人,前两年如果浪费了,自然要补回来,出来混迟早是要还的!

你计划在本课程结束时,完成多少代码量?每周应完成多少代码量?

我计划在本课程结束时,完成3000+的代码码量,细数一下一个项目至少也得是700/800行的,那看有多少个项目了,这个数是至少,具体要看有多少东西可做,一般我对写代码这种东西都是,上不封顶!能多写一些尽量多写一些。

(5)你现在的道路很多前人曾经走过,他们有什么经验教训?请从博客末尾的文章列表任选一些阅读,针对其中一篇发表感想。

 我选择了一篇很有感情共鸣的学长写的博客:徐宥:掉进读书的兔子洞 和这位大牛一样我也有过迷茫,也有过相似的遭遇,所以我觉得大牛的经历还是十分有借鉴意义的,和这位大牛一样,一本书改变了我的人生轨迹,我小时候不觉得读书是一件有意义的事情,于是上课也没认真听过,作业也是糊弄交差,平时语文数学考个70来分我就十分的满意,当时正值小学图书馆捐赠,靠捐来的书建起来我们的图书馆,于是学校组织学生去图书馆里看书,我们围坐在一个大圆桌之前,老师把书往桌子上一放,让我们自己选来读,当然最受欢迎的故事书,漫画书都被动作快的同学拿走了,当时的我对于书本毫无兴趣,自然动作慢,于是我从剩余的书本中随便的挑了一本不起眼的书,这本书不是别的,是一本奥数书,当时的我不知道这是啥,学校里组织奥数比赛,也不会让我们这种中下游学生去,自然不知道。我看着,也没有其他的事情,就打开来随便看看,没想到里面的各种问题深深吸引了我,这比数学课本可有意思多了,印象最深的是里面的裂项公式,要知道这对一个三年级学生来说,那可就神奇了,于是每周我必须要做的事情,就是去图书馆看这本书,为了做出来,和搞懂里面像裂项公式这种奇怪的公式,我就不断的自学起了数学,那个学期之后我成绩一下就好了起来,数学考了98分,于是后来就形成遇到难题我就特别兴奋,无论如何也要解出来,同样的大二的时候我也有极度自负的情况,当时考试考到了专业第三,并且我已经开始和班主任老师开始做项目,老师的认可,同学的吹捧,4.0的GPA各种各样的光环汇聚在我身上,我飘了,我都忘了自己是谁了,越是骄傲就越是放纵,大三实际学分成绩到15名左右的我,又陷入到极度自卑中,从博客中,但我从自己的经历中也学会了不论怎样,不论发生了什么,让自己成为一个更好的人,总会带来好运的!最后选择我特别喜欢的一句话作为结尾:

自己选择的路,就算是跪着也要走下去!

3.提有质量的问题

Q1:P48 第三章 3.2软件工程师的职业发展

 书中介绍了几种证明个人能力的办法和模型,例如考级,Steve McConnell,大公司版本等,有很多方法是很早以前的,对待迅猛发展的IT行业,这些”过时“的方法还适用吗,如果适用的话,那他们又是怎样适应目前这与日俱增的信息量和知识量,还有不同的时代特点,而且很多是只有定性没有定量的方法,对于这样的问题只需要进行定性分析吗?软件工程随着时代的变化必然会产生新的学科新的方向,新的领域,那这些衡量版本是否会失去了衡量的价值?软件工程师在整个团队中的任务分工都是不相同的,但是却用同样的测试方案会不会不准?还有就是书中只告诉了我们评估的方法方案,那我们评估的结果要如何提高呢?还有就是有没有可能将这些分级方案放到课程打分上来,让软件工程课程打分更加科学多样呢?

Q2:P72 第四章 4.5结对编程

 书中讲了很多例子例如跳舞等例子来说明结对编程并非一朝一夕能够练成的,练成以后就威力无穷,第一次难免会遇到许多的问题和不解之处,书中也给出了一一解答,但是我还是有一些疑问:极限编程是对两人水平差异性有要求吗?我想了一下假如一个啥都不会,就纯粹是在教学了,所以我觉得肯定是有要求的,那么这个要求是怎么样的呢?是两个水平相同的人结对编程效率高,还是稍有差异效率高?还是完全取决于两个人的差异(毕竟是代码复审的极限编程),怎么样的合作才是极限编程效率最高的合作?(我觉得这个问题非常有意思)还是就像找女朋友一样需要找一个合适的黄金搭档呢?我奇思妙想了一下,有没有可能做一个辅助程序员的结对编程AI program?这样的话一个人也能做到结对编程,而且成本还低,还能做一些个性化定制。

Q3:P85 P90 第五章 5.2软件团队的模式 5.3开发流程

 书中讲了各种各样的团队模式和各种各样的开发流程,读完之后我依然有一些疑问:我觉得两者有着非常紧密的联系,我认为软件工程就像做菜一样,团队里面的人就像食材一样,各有各的作用,而各种各样的团队模式就像各种各样的炊具,而各种各样的开发流程就像做菜的工序一样,我觉得食材(人才),炊具(团队模式),以及工序(开发流程)要互相配合好才能做出美味的菜肴(软件),是不是这些开发流程与团队模式毫无关系呢? 如果有关系,那么各种各样的团队模式又与各种各样的开发流程会产生怎样的火花呢?那么什么样的项目人适合怎么样的开发模式,开发流程的组合呢?那么在使用了不适合的开发流程和团队模式会导致怎么样的效果呢?如何及时发现我们的团队模式或者开发流程存在问题呢?

Q4:P231 第十二章 用户体验和质量

 书中这章介绍了各种各样的改进用户体验的例子,其中印象特别深刻的是GE公司总裁杰克韦尔奇的核磁共振机的故事,我一直认为作为产品,质量是第一位的,但在故事里放弃质量追求用户体验的情况却取得了成功,但会不会是因为质量的下降恰好是用户可以接收的范围,假如图像完全的失真,我觉得这样的改进应该是不会成功的,那作为一个决策者要去重视哪一方面的重要性呢?书中韦尔奇是一面之词,1000个人就有1000个哈姆雷特,他所说的用户体验的改进可能是对应其他人用户体验的下降,那如何权横这就是大多数人用户体验好的的改善?工程师要如何不断提升自己软件的用户体验而不受个人偏好的影响?有没有可能做一个权衡一个软件各方面的优势雷达图,用改雷达图表现出这款软件各个方面的评价,然后正真的去统计这些产品的后果,为决策有参考意义。

Q5:P319 第十六章 只先一步

 书中这一章可以说颠覆了我很多原来错误的想法,但是还有有些疑问:依然不懂为什么大众对创新会产生这样的一条鸿沟,它就像一个零界点一般,刚刚大于一点点的话就可能成功,而小于的话就一定会失败,这种鸿沟产生的原因是什么?为生么就会在那完整的断开,那我们是否就要问怎么寻找这个鸿沟?怎么寻找这个创新接收的最佳时机?假如这个时机是可以确定的,是否意味着非创新者可以投机取巧窃取创新者的劳动果实?我理解的是刚开始用户会很少,然后随着时间的迁移,用户会越来越多一直到这个东西过时了,用户一点一点减少,但为什么会出现鸿沟是个有意思的问题,另一个问题就是文中说成功的公司创新只是维持技术,但是不管是google还有facebook,都集中力量做AI,请问这么理解这件事?

你可能感兴趣的:(现代软件工程 第一周作业)