2018 软件工程 第1次作业

第一部分  结缘计算机

1、计算机是你喜欢的领域吗?是你擅长的领域吗?

自己最早接触计算机应该是在小学的微机课上,而那时个人计算机作为一种新兴的事物,大家对它的存在保持着高度的兴趣,但仅仅是对一种新鲜事物的好奇,而那时对计算机的使用也就停留在学习打字,或者是对计算机本身所含有的一些小游戏的痴迷,比如扫雷、纸牌等,还有那时对计算机记忆最深的就是上课所穿的绿色鞋套了。而到了初中所学习的则是一些基本的办公软件word之类,因为有与之对应的考试,所以大家学的都比较认真,虽然那些东西是如此的基础简单,但个人计算机的广泛普及也没有几年,至少在那时我的家乡,它还是比较少见的。那时对计算机也没有太多的感觉,即使学习了它的一些办公功能,但因为没有进行实际有价值的应用,所以只是感觉它可以做为家庭经济实力的一种象征以及游戏新的载体。高中大家都在忙着学习,计算机只是躺在那成了另一个老师。真正接触计算机应该是在大学期间,我觉得学习《大学计算机基础》以及《C语言》这两门课是我开始走入计算机领域节点,但这个开始是痛苦的,师生关系和路人甲\路人乙差不多(http://www.cnblogs.com/xinz/archive/2011/05/16/2048044.html),《C语言》作为一门必须课,我却拿到了中等的,这对我心理的影响挺大的,再加之本身也不是计算机专业的,所以本身对这个领域就有些排斥,也不是所擅长的领域。

2、你对计算机的热爱是怎样的?仅仅是口头的吗?

就算上面所说的,我对计算机谈不上热爱,甚至还有一些排斥。但是现在几乎所有的行业都与计算机脱不了关系,而且在这个信息化的时代,计算机是这个时代一个很重要的一部分,所以我又得去认真接触它,去学习它,让它作为自己的一个有力的工具去更加有效地解决问题。

第二部分  学习生活

1、你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?

对的大学生活吐槽主要还是对自己的吐槽吧,其实大学生活有很多的空闲时间,但是我没有把它充实起来,自己浪费了很多时间,那些对本科教育体制的吐槽,比如在第一篇文章(http://blog.sciencenet.cn/blog-765339-847817.html)所讲的作者在美的学习经历为对比列举了我国本科教育的很多问题,值得我们深思。但这种问题是整个教育体制的问题,而不是简单的一个本科教育的问题。

其实我很不适应这门选修课的教学方式,在我编辑这篇博客时,其实我内心还在担心英语和数学的复习,就像把它们进行归类时,都是紧迫且重要的事(https://book.douban.com/subject/4006425/discussion/22803733/)。而就像经济基础决定上层建筑,在整个体制无法做出有效的改变时,有些问题被思考得过于乐观。当然我也觉得美国的那种教育模式也十分有意义,但我觉得我们不能脱离中国的基础教育来谈大学教育,也不能那个要求从高中那种应试教育模式一下到大学的教育模式就能比肩美国的大学教育,这种比较是很不负责任。当然这不是来推脱每个学生身处其中的责任,第一个螃蟹也需要相应的家伙事儿其品尝,不然也是虚无的。所以基于这些我对学校所给的没有想法。

2、迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。

很遗憾,我基本没有写过代码,最复杂的是今天在学习python时所做得一个小游戏,即一个简单的print以及if、else语句的应用。

第三部分  未来规划

1、你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?

因为自身工作性质问题,回答这部分问题的语言会很少。我希望我将来的工作还是从事技术方面的吧,虽然如今的政策下我们的可选择的变得越来越少,有些东西身不由己。当我以一种很诚实的态度来谈时,我没有太多去思考技术道路、职业道路和社会道路,即使现在思考也没有头绪,只是觉得现在这个道路中规中矩走下去就可以。

这有点像文章中提到的随波逐流的样子(https://blog.csdn.net/haoel/article/details/1688104)。

2、你对于实现自己的梦想已经做了或者计划做什么样的准备?

首先希望通过对老师工作的参与提高自己的能力,并且也在认真地学习自己的基础课程,接触自己专业的软件以及前沿知识,希望能有个好的开始,打下一个好的基础,并且培养自己所需的思维以及解决问题的方法,以此来应对将来所遇到的难题,并且学习一些可能工作环境中用到的软件与知识来应对将来的变革;其次更多地去参与团队协作,培养自己的团队协作能力与意识;最后保持一个良好的心态和强健的身体,作一个自律和开朗的人,并积极进行身体锻炼,保护自己的健康。我感觉我现在所做得就是为了使我将来有能力得到自己想得到的东西,并且绝大部分东西都是水到渠成。

第四部分  课程期望

1、你对这门课的期望是什么?你打算平均每周拿出多少个小时用在这门课上?你愿意为了一个你感兴趣的项目、或得到实战锻炼而付出更多时间和精力(包括熬夜)吗?

我对这门课的期望是能通过这门课学会使用python编程并用其解决实际的问题,每周除了上课时间平均拿出八个小时用在这门课程上,虽然自己的编程基础很差以及兴趣不是很高,但在自己完成一个很短的程序并顺利实现它的功能,内心还是很高兴的,而且对于已发生事物,我总会抱着一种良好的心态去做,所以我肯定会付出更多的精力以及时间去学习这个技能。

2、分析软件

(1)这些软件的开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户的现金么?还是别的?

Internal Software (企业或学校或某组织内部的软件)一般都是企业或学校管理的工具或者企业或学校部分功能的载体,所以它的用户一般是因为相较于真实生活方便快捷的体验而成为用户,一般不存在竞争,而且目标不是盈利。Games(游戏)、Mobile Apps(手机应用)则与同类型软件存在竞争,通过其功能体验来吸引用户,有时还有与该公司其他软件的捆绑来强化其用户群体,其目标基本都是在本公司体系内的盈利。但不一定时用户的现金,可能是使用所带来的流量。

(2)你个人第一次用此类软件是什么时候,你当时多大,具体在什么学校读几年级,老师是谁,同桌叫啥?软件是如何到你手里的?例如:邮购,下载,互相拷贝,从应用商店购买,…….

第一次使用Internal Software是在大学,是学校的评教软件,大一,老师若干,同桌二狗,软件是下载的。

第一次使用Games是在小学,我能说它是扫雷嘛,三年级,老师若干,同桌小黑,软件是自带的。

第一次使用Mobile Apps是在初中,是QQ,初一,老师若干,同桌小白,软件是下载的。

(3)我们知道有些软件是收费的,有些是“免费” 的, 那么,软件公司为何会给你免费使用这个软件呢? 写这个软件的工程师们,他们的工资如果不从你(用户)这里来, 从哪里来呢? 目前你们当地的软件工程师的工资大约是多少,请给出尽量详细的分析,精确到年收入多少万元人民币。

免费的软件比如360,360卫士是一种免费的电脑安全软件,但是奇虎公司仍可以正常运作,是因为该公司在别的领域存在收入,比如360网址导航、它所代理的广告以及游戏的开发。而且360的免费用户使他其他盈利部分的潜在用户。这样整个公司就是盈利的,工程师的工资就有了。软件工程师的年薪大概15万吧。。。

(4)你是如何学会用这软件的?它给你什么好处,坏处? 这些软件是如何处理 bug 的?  如何更新新版本的?  你估计软件团队更新一个主要版本花了多少 人月? 请写上人月的定义. 如果你们宿舍(或者你和另外三四个同学)要做同样水平的软件,请估计你们需要多少时间?

除大多数专业软件之外,大部分软件的使用门槛都很低,专业软件的话我会跟着老师学或者看书自学,普通的软件按照他的功能操作一遍就掌握了。软件给我们生活和学习带来了极大的方便,坏处的话,可以举一例子,比如大家上课都对完全依赖PPT课程提不上兴趣。

我估计软件团队更新一个主要版本要花3人月左右的时间。下面是从百度百科找到的人月定义,一种表示劳动时间的计量单位。指一个劳动者工作一个月。它是计算月劳动生产率的时间单位。计算时,在该月内出勤的工人,不论其出勤天数,均作一个人月。由于不考虑工人的缺勤天数,因此,所得结果的精确程度,要比用人日或人时为低。如果使我们作出同样水平的软件应该得是他的4-10倍吧,也纯属猜测,没有什么数据支撑。

(5)同一类型的软件之间是如何竞争的?你现在还用它么,你为何选择这个产品,而不是它的竞争对手?

因为对于软件来说,使用群体的功能需求以及使用习惯来说很重要。所以我认为软件之间的竞争在某种程度就是这两个方面的竞争,当然在这两个方面上相差不大时,使用软件所付出的代价也会影响。现在举我在用软件的一个例子,比如英语翻译软件有道词典和百度翻译,这两点我都安装过,它俩在翻译的精准度上各有千秋,相差不大,但是有道词典更符合我的使用习惯,它的界面以及模块划分更加令我喜欢,所以我选择了有道词典,而不是百度翻译。

(6)5年后, 这种软件运行的硬件会有什么变化, 软件再过 5 年还会存在么,为什么?

五年后这种软件运行的硬件可能已经老化无法正常使用,但软件依旧可以使用,应为硬件作为一种消耗品,它是有使用寿命的,但软件作为一种逻辑产品,本身的程序不会改变,依旧可以运行,虽然它的部分功能可能无法满足人的需要。

(7)列举你在使用上述软件的时候观察到的 “特殊”现象,它们和硬件有什么不同?  这些能说明软件的某些本质特性么?

比如在编程完后运行出现错误,只可能是所编程序的问题,而不是软件的问题。研制成功之后可以进行无限复制和传播,并且会有很多的更新、补丁之类。所以软件是一种逻辑产品,与物质产品硬件有很大区别。

而基于不同的硬件,软件的效率是有区别的,并且在某种程度上由硬件所决定,所以软件使用是有硬件基础和环境要求的,软件反过来可以控制软件。

猜你喜欢

转载自www.cnblogs.com/juzipishui/p/10175226.html