第一次作业

1次个人作业

问题回答:

第一部分 结缘计算机

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

我本身很喜欢计算机,本科期间参加许多软件类的比赛,我本科是导航工程专业的学生,属于弱电控制领域,本科期间对于编程有着疯狂的热爱,参加过物联网竞赛,移动互联比赛,也参加过做前端的计算机仿真比赛,自己做过Android App的开发,今年年初也参加了阿里的天池大数据的比赛。

对于计算机方面我不能说是擅长,我只是单纯喜欢那种敲打键盘编程的快感,自己在本科期间的编程语言大部分都是通过自学完成的,较熟练的掌握了C,python和matlab编程,但是太长时间没有写过C,python了,作为电气工程专业的研究生接触到最多的编程软件也是matlab,所以之前本科的底子也需要慢慢捡起来。

 

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

对于计算机,我是觉得他是人类神奇的产物,现在生活中我们可以很清楚的看到计算机已经深入到人们生活的各个方面,我对于计算机的最初喜欢来源于玩游戏,后来接触编程语言是在高中,当时学校里有组织智能机器人的研究,我当时主要负责嵌入式开发工作,第一次接触了51单片机,我发现就是一块小小的板子也能做出如此多的功能,之后上了大学之后,没有选择计算机专业,但是我高中一起拼搏过得同学在上海交通大学的IEEE试点班学习,基本上我对计算机领域成果的最新点都来自于他,而且很幸运的是今年暑假也和他一起在阿里参与了一些项目。

 

第二部分:学习生活

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

我的大学生活和别人不一样的地方很多,我的大学生活被管制的十分惨,几乎属于自己的时间很少,最坑的是我大一的时候严重限制我使用电脑,所以我大概扔了一年左右的计算机,再次接触的时候有一些生疏了,但是从反方面来说,正由于这种环境下,我自己本身也得到了很大的提升,自己在客服困难或者面对磨难方面的能力更强了,处理问题的方式也更成熟了。

理想的大学教育,我觉得就是自学为主,学校提供好的试验环境和试验场地,作为一名大学生,如果还是需要奶妈式的服务模式,我觉得就失去了学习的意义。

然而我大学恰恰就是奶妈教育为主,每个人有不同的学习方式和学习习惯,所以这也不是什么需要吐槽的地方,我觉得最重要的是,我本科毕业了没有像大部分人一样,觉得自己什么都不会,觉得自己能力恐慌。虽然现在阿里,华为取消了校招,但是我再里面工作的时候,我觉得这些公司还是能力至上的,你要是有能力有水平,未来就属于你。

 

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

代码行数至少10万级吧。

做过最复杂的项目是阿里的项目,但是由于保密协定的问题这里就不详细说了,就说一下我本科毕业设计吧,我本科毕业设计是完全在自我指导下(指导老师对编程一窍不通),做了一款摩拜单车的开发软件,大概实现的功能类似于滴滴打车,当时用AS开发的,最主要的是做了地图API,当然AS开发主要是调用为主,我自己写了一个路径最优的算法,A#算法,在matlab中简单的仿真过,实际做试验的过程中,也发现有不错的效果。最主要的是相当于自己独立开发了一款软件,自己做了数据库,自己设置了服务器,而且有评价指标,算是对我本科生活的一个总结吧。

 

3.速成的培训班和打基础的大学教育还有mooc之间有区别吗?

我觉得这些速成班就是现在快餐文化的产物,最主要的是人们过于急功近利了,大部分人只看到了成果,而不注重过程,现在网上随处可见的python速成班啊,手把手教你学人工智能啊,大家大部分只关注了这些很热的名词,对于内部的算法什么的完全没有进行深入研究。我觉得大学基础教育是十分必要的,高等数学,大学物理,大学计算机基础,计算机语言的学习是十分必要的。但是我觉得这些只是抛砖引玉的作用,不可能指望课堂45分钟把你想要达到的效果都达到。课下自己有多少时间的投入才很重要。

对于mooc我觉得是一个十分好的学习方式,举个简单的例子我的java方面的学习就是通过mooc学习的,当时是看的MIT的计算机本科生的课,不仅自己计算机语言有了很大的提升,最重要的是英语水平也有很大提升,还有自己也见识了国外计算机专业的上课模式。

 

4.学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的专业有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?

我不存在这些疑问,我觉得作为一个理工科学生,如果连数学都学不好,真的不配进行什么深入学习的。我初中时候是数学竞赛保送到东北育才学校的,所以数学对于我来说一直是我很喜欢的内容。本科期间大大小小的数学建模比赛也都参加过。对于matlab的学习也是从那时开始的。所以你说线性代数和概率论有没有必要,那么可太必要了吧。说句实话,我觉得世界的本质是矩阵,对于工程类学生的要求就是以数学模型为主的,那么建立数学模型最主要的就是用到了线性代数和概率论的问题。所以我觉得大学本科期间的线性代数和概率论的学习是真的十分必要的。

 

第三部分 未来规划

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

我未来想作为研究所的研究员,其实从上述问题的回答中,我已经表现出了我性格方面的傲娇,甚至很自负,我喜欢在那种人才济济的环境下竞争生存,所以我觉得在研究所中作为一名研究员的生活应该还蛮符合我的职业认定的。

技术道路,因为2019年1月份,相当于我的硕士课程研究就要正式启动了。作为一名转专业的学生,我肯定不会很好高骛远的,我觉得最重要的就是真真正正学到一些实实在在的东西,当然了我的要做直线电机的设计与控制,自己在电机学以及电力电子方面的欠缺,我估计在明年上半年之前搞定,我很期待自己两年半以后不会头秃。(手动狗头)

社会道路,其实我本人并没有想的多远,不可能像党一样,为国家谋幸福,为人民谋福祉。作为一名普普通通的研究生,我觉得最重要的是不浪费自己的青春,在一个相对好的平台下,利用好这些资源,不断充实自己,在社会需要的方面做一些微薄的贡献吧。

 

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

我觉得人最重要的是保持自己的初心,但是不要定太高的目标,我现在来看最重要的就是写好自己硕士论文,争取拿到优秀,对于后续是否会继续读博我持开放态度,说句实话这些并不是我能决定的,我觉得最重要的就是做好自己该做的,机会自然就来了,那么说到自己该做的,首先就是补齐学科差距,第二就是不能像本科一样对所有东西雨露均沾,最重要的是在simulink的使用和ansoft的使用上要多下一些功夫,硬件基础也需要在捡起来一些,当然了我也想继续在机器学习领域有所深入研究,毕竟现在这个太火了,阿尔法狗和阿尔法元极大程度上引起了人们对此的重视,所以我也想在这方面看看,能不能应用于电机的控制领域,做到误差很小。

 

第四部分:课程期望

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

说一个小插曲吧,本来我的跨学科选的是计算机网络和人工智能,但是我觉得这两个我自学就行了,选了软件工程这门课,我主要是认为作为一个半吊子程序要我想规范一下自己的软件开发过程,我有的时候代码写的很恶心,导致自己完全看不懂的情况也常常存在,我之前也完全不会想过用什么单元测试去做程序的测试,只是语法语意上没有错误就可以了。

因为我每天都会接触计算机,所以说具体多少个小时我也不太清楚,一周至少会花2到3天?甚至有可能是一个周,因为如果要是自己感兴趣的项目我是可以做到完全不睡觉去搞这些的,当时做天池大数据的题目的时候,就完全是我们三个人加梁教员搞了一个通宵搞出来的当时排名88,但是后来由于我的支付宝账户没有实名认证最后就。。。。,所以我觉得我真正的感兴趣的话,我是可以付出很多时间的。

 

分析软件:

软件有很多种: ShrinkWrap(在包装盒子里面的软件)、Web APP ( 基于网页的软件)、Internal Software (企业或学校或某组织内部的软件)、Games(游戏)、Mobile Apps(手机应用)、Operating Systems(操作系统)、Tools(工具软件),选取三种软件,请分析它们各自的特点。

微信、matlab、python、炉石传说、英雄联盟。

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

微信大家都用所以自己也用了但是不得不说微信功能真的是越做越好,小程序的引入,朋友圈的设置,甚至是微信支付的引入,真的让我们有些离不开他。

Matlab、python主要是学习用的,当然了其实我觉得matlab和python有异曲同工之妙,原因就是极大的简化编程语言,我喜欢matlab的主要原因就是matlab完全没有字符型号的定义,python最开始给大家提供的就是开源的开发环境,所以两款软件,或者应该准确的说是编程语言吧,真的很好用。

炉石传说、英雄联盟,我感觉很看操作,当然炉石传说我是人民币玩家,所以。。。这就不多说了,英雄联盟主要是太火了,不玩英雄联盟我是觉得青春不完整。

 

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

微信是我高一时候,微信可以发语音,QQ不可以然后感觉很好玩下载的。

Matlab是大一下载的,当时为了参加数学建模比赛。

Python是大四才开始接触的,算是很晚了,因为当时的天池大数据比赛用了刷榜神器XGBOOST架构的神经网络,这个不得不说真的很牛逼!!!!

炉石传说、英雄联盟也是大一开始玩的。

 

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

微信免费使用的主要目的是扩大其受众面,奠定其庞大的用户数基础。据我所知,微信是通过收取商家的广告费来赚钱的。

Matlab是盗版的,正版的我也买不起啊。。。

Python就是开源的也不需要钱。

至于炉石传说和英雄联盟,之前提到了我是人民币玩家所以投入了特别多的钱。。。,我玩游戏的理念是,现在花300块钱买到的快乐,以后肯能拿30000都买不到,算是歪理邪说吧。

当地软件工程师,我不是很清楚,但是主要分你干的工作,如果你是本科毕业的低端码农,在华为,阿里,996的生存模式的话大概20K每月吧。。。具体也没了解过了。

 

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

微信使用很简单,他的人机交互做的很不错,上到顶尖CEO,下到买茶叶蛋老奶奶,都会用吧。。。,好处的话就是极大的缩短了人与人之间的距离,bug处理肯定是版本更新了。

Matlab、python完全起因于我做竞赛,一个是数学建模,一个是天池大数据。

当然了炉石传说和英雄联盟这种东西,肯定是看直播,学套路,最主要的是人要有灵性!!!!(我手残基本上是大坑货)

上述软件除了微信的聊天功能我觉得我可以做之外,其余的让我做一辈子我可能都做不出来,做底层太难了,我这个半吊子只停留在应用层。。。微信聊天这个功能我一个人做一天差不多就可以完成。之前似乎做过,网上也有类似的源码。

 

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

微信的竞争对手应该是QQ,他们互相占据了不同的用户市场。微信由于隐私性好,主要是成年人使用。QQ由于功能多,因此年轻人使用较多。由于沟通需要,我微信和QQ都在使用。

Matlab、python的竞争对手主要是传统的C,C#,C++,但是讲道理现在都可以兼容诶。。。所以我也不是很清楚,编程语言这种东西喜欢啥,用啥呗,用matlab最主要的原因就是画图功能真的很强大,其实编程语言会一个别的语法规则大部分也都知道了。没必要非得争个你死我活。

游戏竞争太多了,像英雄联盟这种网游,竞争最大就是手游了吧,我其实觉得王者荣耀真的很没意思,完全就是抄袭吗。。。(我这里说的话不负任何法律责任) 。当然了可能都卖了版权的,这。。。就很流氓了,有钱真的可以为所欲为!!!!

 

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

对于微信,5年后手机的内存会更大,微信5年后应该还会存在,因为它的用户基数太大,而且现在也没有做得比它更好地相关软件。

对于matlab,python这种东西肯定会存在的,毕竟matlab的图像显示功能真的太强大了,还有就是MATLAB的simulink我是没发现比他更好的仿真软件,python这种致力于开源的肯定也会存在,尤其是我觉得人工智能,机器学习这个热度一直不减的话。

炉石传说现在算是快凉凉了,因为、、、现在玩的都是情怀了。。。。

英雄联盟的话,感觉IG夺冠了,S9赛季还能维持一下,但是这个游戏寿命是否还能坚持五年真的不好说。

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

本质就是我上课说的一样,软件没有寿命而硬件有寿命!这就很本质了,我写的一段程序,实现了特定的功能,我下次RUN它,它还是可以实现,而硬件就不一定了,磨损啊,老化啊这些,太多东西了,所以我觉得真的作为一名码农是成本最低,汇报最高的职业,当然了你要基于你对编程有浓厚的兴趣,毕竟兴趣是最好的老师!!

posted @ 2018-12-27 10:51  崔峰瑞  阅读(289)  评论(8编辑  收藏  举报