作业要求 2018091-2 博客作业

此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2101]

1. 建博客(1分)

在 cnblogs.com (博客园)建账号(1分)。

关注 杨贵福(0分)

  我的博客地址:http://www.cnblogs.com/KamiForever/

2.博客作业(10分)

1)回想一下你曾经对计算机专业的畅想

一.当初你是如何做出选择计算机专业的决定的?

  当初选这个专业是因为这个专业是一个理科专业,将来能更加好的就业,主要是家里人决定的,再决定专业的时候只要是理科都无所谓的。

二.认为过去接触到的课程是否符合你对计算机专业的期待,为什么?

  科目这方面有一些类似于数据结构和计算机语言方面的课程对我的编程能力有很大帮助,编译原理和操作系统之类的让我对计算机一些功能的实现和理解上有所了解,原来课程中想web开发之类的都比较简单,教的比较皮毛,其中一下跟物理有关联的一些计算机硬件方面的课程像模拟电路我感觉对我想要当程序员的工作提供的帮助不是很大。大学主要是老师在讲书,但其实大多数的知识都是在考期末考试前的几天所学习到的,其中很多我已经没有印象了,过去的课程在课堂上让学生自我发挥的空间很少,有的时候甚至让我觉得老师讲着书完全不管我们是不是在听,很多东西都是自己自学的。总体来说还是比较符合自己的期待。

三.你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?

  喜欢是肯定喜欢的,我喜欢很多的方面,计算机是出于我对这个领域的工作前景而选择的,要说是最喜欢的就不是了。

  虽然我喜欢很多领域,但是唯一学习过的就是计算机领域,所以我尽可能它成为我擅长的领域而努力着,计算机是我一个擅长的领域,我在这个上面付出过最多。

(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?

  我对c语言比较了解,这是我最常用的语言,本科为了做一些课程作业去学习过java,python等语言并且去编写一些程序,但并不是很常用。

  我在很多硬件方面的知识不是很了解,很多语言知识了解用过,但没有系统的学习过。我感觉本科很多科目的知识我不是很了解,自己目前除了编程能力其他的都不太能拿出手。

(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
一.对照以上你阅读的前人们的经历,你的选择是什么?

  我的选择是工程项目,我想成为一名程序员,通过我自己编写代码去做些我想要做的程序,目前所有的程序都有着自己的缺陷,所以都在更新着,我也对这方面有着自己的想法,想要自己去实现。
二.在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?

  我的优势是:我有一定的代码能力基础,对于我的学习能力我很有自信,我并不怎么会急躁,做事情很有耐心。

  我的劣势是:总是比较喜欢去拖延一些工作,不到不得不交之前我一般是不回去完成我的工作的。比较容易妥协,拿不定自己的主意,总之不管是什么我都会去做,不太想去争论哪一个对错。
三.针对你的选择,你给自己的本学期的规划是什么?

  解决目前导师给一些问题。

  英语6级通过。对于将来工作会有帮助。

  更多的阅读一些论文,提高自己的英语水平,多打代码为之后的研究做准备。

  想要去学其他外语,想去其他国家参与工作。

四.你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上?

  之前一直是写一个人的程序,没有过分工合作,没有想过和别人合作会出现的问题,希望这门课程能成为我在将来工作中的经验,让我能在将来工作的时候更容易进入一个集体。希望能更加提高我的代码能力,而且对于程序完成后的测试也会多加实践,尽可能去提高程序的时间效率,对于程序的优化能有更多的认识。

  打算平均每周拿出10个小时在这门课上。

3.博客作业(10分)

通读《构建之法》,发布随笔1篇,要求列出5个问题,可以是读后不理解的,或者读后反对的。要有观点、有证据或分析。字数不是直接的考核标准,但是要求长到能把观点表述清楚。

问题一:关于2.3里psp数据大学生vs工程师的地方,工程师在需求分析上花时更多是一种对于需求的全面分析从而去设计需要的功能,但是对于测试方面的更多耗时是具体花费在哪里?是对于bug的修复,还是时间上的优化,还是对于需求有了新的想要实现的东西从而产生了改动,还是对于原来的实现方式的重新修改?而且虽然我知道了测试中用很多时间是为了更加完善自己的程序,但是在一开始需求分析把所有需要都分析明白,在一开始的编程上就将很多运行时间等方面的问题考虑到最优化,是程序在第一次编写中就已经达到最完美不是程序员应该追求的目标么?虽然我在做本科一些设计作业的时候每次都会修改很多bug,而且修改一个可能还会有一个新的,但我一直认为这些都是我能力不足,在我其他朋友的人说一些关于bug的问题,所有人都认为没有bug的程序是不存在的,我认为如果最简单的hello world应该不会有bug吧(我认为一个输出语句是不会有问题吧),那为什么那些非常巨大的工程一定就要有bug,我虽然非常简单化的去理解为一个大工程是每一个小的部分组成,但每一个部分都没有bug且互相之间也没有bug的话这个是不是就是一个完美的程序,虽然这么说感觉很简单,一个工程作业本身就很难写了,世界上这么多优秀的程序员都没有说自己做的东西一定不会出错,但我觉得基本上所有人把bug的出现认为是理所应当的应该是不正确的想法。再有一点突然想到的说到bug,第一章16页第一行写了“简单地说,软件的行为和用户的期望值不一样,就叫bug。”,如果一个程序有一个功能在使用的时候用户有不同的期望点,但所有用户都不会用到这个功能,是不是可以说该程序就没有bug呢?如果说知道出现用户发现与期望不同才能说这个程序有bug,那么该如何判定一个程序没有bug呢?

问题二:关于第8章需求分析,我在阅读了其中的内容有了一些对于用户需求的想法。用户真的知道自己具体想要什么功能么?他们可能根据自己的想法去说自己的需求,但实际上他们总是欲求不满的,而且想法是美好的,认为自己都描述到了,实际上出来的结果让他们自己不认为很理想,对自己的需求反而有了新的认识。而且根据需求分析得出的自己所需要实现的目标,然后用户觉得不满意,怎么一个程度才能说我这个产品是一个失败的产品?打一个比方,我拍了一部电影,预告片吸引到了100个人,但100个人看完之后只有10个人是满意的;然后又拍了一个电影,预告片吸引了10个人,但10个人看完之后全都是满意的。这两者之间哪一个是成功的,我觉得哪一个都不是成功的,需求分析的作用就是为了能够吸引到100个人而且尽可能让其中所有人都满意,但真的满意度就是一个产品是否成功的一个指标么?举个例子,王者荣耀这款游戏好评率不到60%,在很多游戏都在85%好评率的游戏市场下,它是失败的么?就像我之前的例子去吸引100个人并且是他们全部都满意,但我只想要做一个小众向但我能让他们全都满意,在将来工作上很容易会被反对么?

问题三:关于第13章的测试内容,所有测试都有着自己的测试目标和各自反馈的结果,这些测试在实际应用上是每一个大方面都会去测试一遍么,还是有针对的根据需求和设计去进行测试?

问题四:关于第16章里迷之思五,要成为领域的专家才能创新,我目前是跟导师作组合问题优化的,很多专家都认为在做这方面问题的时候多阅读论文未必是好事,他们会限制我们对这类问题的思考,我在做ACM的题做久了,却从来没有对问题做法有创新的想法,有的时候阅读了许多的文章,在做题或解决问题的思路上往往会往自己所知道的地方去思考,这让我们不好去摆脱思考的束缚,虽然知识储备是需要的,但游戏时候知识很窄的人却有一些别人不曾想过的思考方式或者思路,我认为创新不一定需要领域的专家才行。

问题五:关于这本书中的团体合作方面内容,我有一个观点,一个团体能团结一致中排名第一的条件并不应该是有能力的领导者而应该是共同的敌人,也就是竞争者。当有敌人的时候,人们才会显得更加的团结,人们在和平时期的紧张感和努力情况与对敌时是不同的,我觉得在一个工程开发过程中应该设立两个小组去完成同一个内容,竞争中成功者才能获得奖励,这样能更加提高团队效率,而这件事我感觉很多讲团队合作内容的书中很少提的一个方面。

4.博客作业(10分) 

很多人有不为大家所知的本事,而这个能力可以超过周围90%的人。比如课堂中教师提到,如果表现得不像高度近视,如何伪装得不像脸盲,能做40个俯卧撑。当然,也可能是篮球、足球、钢琴、ACM、演讲。请给出你超出朋侪的特殊技能,并告诉我们,你如何通过何种努力、花了多久获得这样的成就。

  我觉得我在算法上有一些特长,虽然能力有限但也是在国家的比赛中能拿到铜奖,省级的一等奖。学校每个学期都有夏季训练,多是自己在做自己的,找一个大的方向,把其中的每一个小的问题都了解,并能够独自解决。平时每天我们都在训练室里面,一起做题,完事之后看题解弄清楚每一道题的解法,从而知道自己在哪些方面的不足,然后再去学习。当初有人在一起做题,每当我们做出一道题都会感到高兴,感觉自己又会了一点。虽然有的时候会对其中的一些问题不了解,而且网络上找的答案说明太复杂,我们就会找学长去问一问这个问题的解法,学长总能给出自己所理解到的部分。整个学习过程总体还是很有意思的,当自己在第一次参加比赛而且拿到奖励的时候是非常高兴的。

5.博客作业(10分)

采访本课程往届同学(含外校和毕业生). 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下:

A.当时的项目有多少用户,给用户多少价值? 现在还有人用吗?

  当时的项目有20多个用户,现在已经没有人用了。

B.这个项目能否给我们团队继续开发,源代码/文档还有么?

  这个项目目标已经实现了,没有其他方面需要拓展的,不能继续开发,源代码和文档还有。

C.项目开发有什么经验和教训

  每个成员都有自己的知识储备和对于开发的热情,而且其中有的人代码风格比较差个人能力还不强,修改起来比较麻烦,再有就是在于版本的记录问题。

D.对学好软件工程有什么建议

  这门课对于将来做工程方面的帮助有很大,对于团队合作和工作统合分配都有很大的帮助。多做项目,坚持下去就一定会有很大的进步。

6.博客作业(5分)

以下统计精确到一百行。你目前的代码量是多少?

  在ACM的练习上差不多能有20000行代码,其他的课程程序代码和毕业设计代码一共差不多有5000左右,一共写了能有25000多。

你认为优秀的和一般的计算机专业学生,(根据你的理想选择以下两问中的一个)为了有资格入职软件公司/互联网公司,需要多少代码量?从事高校教学科研工作呢?

  我觉得能进入公司的需要1000000行的代码量。在学校做科研主要是对于代码的熟练编写和修改,而且研究主要是由想法,代码能力只要能够实现你的想法就可以了,20000行就应该差不多

你计划在本课程结束时,完成多少代码量?这些代码量分布在整个学期中,每周应完成多少代码量?

  这个课程的工程所需要的做的工作量目前还不知道,估计一个4000行先,要是算上其他课程和研究所写差不多会有15000左右。每周完成至少要600行,但其实很有可能工程上的工作都会在最后2周甚至1周内完成也就是会出现几天写几千行代码的可能性。

7.阅读材料,写心得(10分)

以下两篇博客必读,并务必写一些心得:

(1)你为何要来上课并且认真参与  [http://www.scalerstalk.com/816-attention]

  我之前上课一直是处于一种不怎么听讲的情况,但在自己学习的过程中总会有光靠自己无法去解决的问题,这个时候就会想找别人讲解这个问题,这就会出现一个矛盾的问题,当初为什么不去听。自己总是以像老师讲课无聊,这门课感觉将来没啥用,自己学习才是正道,每次都自己去学习。事实上任何一门课你都不知道将来你会不会用上,现在觉得没用只是自己的目光短浅,而且任何一门课都是培养自己的学习能力,都是对自己的锻炼,知识总是多一点比较好。当老师讲课无聊或者有时候觉得老师讲得很慢,自己都已经懂了他还是再重复,于是自己就去做别的事了,回过头就错过了很多,当自己认真的把课听进去,这也是一种能力的培养。在聚精会神方面能全不投入到课程当中对我来说还是很难的,感觉自己已经不像是上高中或初中时得自己了,可能那个时候有一个更加明确的目标吧,现在课堂上有着各种各样的想法,老师讲课无聊这种想法在我大学以前还从来没有出现过,这可能是自己的一种能力的退化,我感觉应该强迫自己去学习。毕竟课都是自己花钱花时间,反正都坐在那里了为啥就不去好好上呢?

(2)你在大学中体验到了哪种师生关系 [http://www.cnblogs.com/xinz/archive/2011/05/16/2048044.html]

  很多的时候是餐厅和食客的关系,在选课的时候都是为了凑学分而选择的,并没有太多对于这门课的主观想法,那门课老师松就选哪一门,哪一门好过就选哪一门。很多时候甚至都有不去听课的时候,感觉我就是想要在这里拿学分的,虽然有自己想要学习的科目,但这个数量确实是很少。有的时候师生关系就像狱警和犯人,虽然他点名,作业等措施强迫我们去,但我们去了也未必会听课,而且有的时候这种做法反而会比较容易让人反感,使这中关系加重下去。路人甲和路人乙的关系也是存在的,老师本来就不想讲课,但学校需要讲课才来上课的,读一读ppt也不关心学生是否来上课,期末都给了一个不错的成绩,但其实我们互相之间都没有任何交流,甚至都可能不知道老师叫什么,课程也显得无聊会出现很多的同学不来上课的情况。基本上大学期间体验过这几种关系。

原文地址:https://www.cnblogs.com/KamiForever/p/9664940.html