2017202110104-高级软件工程第一次作业
第一部分:结缘计算机
1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)
自从读高中开始,武大一直是我很向往的学校。高三时我参加了武大的自主招生选拔考试,在网上填报专业时有文学、哲学、数学、计算机、生物学等几个基础学科可供选择。选择计算机专业的原因一方面是我不太想学习其他几个专业(=-=),另一方面是我妈妈单位同事的孩子也是考取了武汉大学计算机学院(我的直系学长,毕业后到北大读研),他向我介绍说计算机专业很不错,可以做很多有趣而有意义的工作(事实证明确实是这样),自此我就结缘了计算机专业。
在大学之前,我对计算机接触很少,并且认为自己并不是一个在计算机专业上极具天赋的人,看了博客C和博客I后,更深知自己在计算机上的努力程度(花费的时间和精力)也远远比不上这些博主。
2.计算机是你喜欢的领域吗?是你擅长的领域吗?
学习计算机专业已经4年有余,虽然当初并不是因为热爱这个专业而选择的它,但是经过学习和了解,我可以说计算机是我喜欢的领域:D。不得不承认在编程方面,我确实不擅长,做过的项目比较少,编程能力欠缺,这也是我今后要努力的方向。在博客M中看到这样一句话写的很棒,送给自己:
“在程序员的生涯里面,最重要的就是保持对编程的热情,不要被生活的琐事所磨灭。其次是要给自己不断地创造一些足够困难但是又有办法完成的挑战,这样才可以总是让自己保持着一个快速前进的状态”。
3.你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
看到这个问题时,我也默默在心里问了一遍自己,答案是肯定的。个人认为停留在口头上的热爱并不能称之为热爱,对于我来说,我现在的研究方向是软件体系结构,具体的研究工作是软件制品之间的追溯性对软件维护的影响,从今年年初到现在,我把近10年在这个领域的文献大概过了一遍,有了一个全面的了解。
第二部分:在计算机系里学习
1.你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。(必答)
回想大学生活,如果要吐槽的话,可能是住在桂园要跑去信息学部主教上课吧,然后就是心仪的公选课根本抢不到(= =)。我理想的大学教育是老师和学生之间的关系更加平等,在课堂上学生可以随时和老师交流自己的想法而不会害怕自己说错或在同学面前出糗,除了书本上的知识,大学教育应该更注重于实践,而不是像现在一样填鸭式的教育。从博客N,博客O,博客new2中描述的国外的课堂和作业就可以看出,国外的教育就非常注重实践,学生的动手能力得到了很大的锻炼。
我认为国内的老师和学校很难做到和国外一样,首先,在国内从小学初中再到高中的教育基本上都是填鸭式的教育,老师在课上讲,学生在底下记,已经养成了一种思维定式。我来自河北省,在河北有一所中学叫做衡水中学(现在已经是全国闻名了),在衡中学习的话就是干什么事情都会精确到分钟,规章制度非常严格,然后就是不停的做题目。在这样的教育体系中培养的学生在大学里是非常难一下子做到像国外的学生一样,所以即使是老师和学校做出改变,但是学生不配合的话还是无济于事。另外,我认为国内大学的资源(老师、助教、科研等资源)可能也没有国外充足。
2.迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。(必答)
迄今为止,我代码写的并不算多,具体有多少行没有计算过。主要是课程的习题,实验课,网上的编程题练习还有课程的大作业。我做过最复杂的软件项目是一门实验课中做的模拟电梯调度系统,可以实现多人次的电梯调度,软件界面用到了QT工具。
3.科班出身和北大青鸟有什么区别?
博客F和博客G都讲述了北大青鸟出身的程序员的故事,两个博客是不同的观点。在我看来,北大青鸟和科班出身的区别在于虽然北大青鸟会教授编程语言,但是不会开设像是计算机系统结构、编译原理、微机接口等基础课程,也就是说北大青鸟只会告诉你“程序怎么写”,而不告诉你“程序为什么这么写”,并且北大青鸟不会像大学本科一样培养学生开阔的视野和眼界。
4.速成的培训班和打基础的大学教育还有mooc之间有区别吗?
如上一条所说,速成的培训班相比于大学教育,不会开设基础的课程,也就是让学生“知其然”,但不能“知其所以然”。而mooc更看重学生们的自学能力,mooc在选择上更加自由,但是需要坚持。
5.学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
在刚学的时候,确实有这样的疑问(迫于考试的压力,还是很认真的学了# #)。后来我选了一门课叫做计算机图形学,其中就用到了矩阵的相关知识,如果没有线性代数的功底,在图形学大作业的编程上就会举步维艰,至此我明白了,数学和计算机有很大的关联,踏实学好数学,是为今后的学习打下夯实的基础。
第三部分:未来规划
1.对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?(必答)
博客C中的博主对自己未来发展的规划是“三管齐下”,在考研、出国和工作上都有所突破。而对于我未来的发展,一方面我很热爱科研工作,我并不觉得阅读文献是一件很枯燥的事情,所以可以选择今后继续深造。另一方面,如果有可能的话,我未来也很想从事软件架构师的工作。我现在的研究方向是软件体系结构,今年4月份有幸跟着课题组一起参加了在南京举办的全球软件大会(是面向工业界的),其中有软件架构师的论坛,聚集了很多行业内的软件架构师坐在一起交流,我了解到架构师是项目的核心人物,而且一般需要对项目开发涉及的所有问题领域都有经验,在这方面我还需要更强大的知识储备以及更全面的技术,这还需要进一步的继续努力(fighting:D)。
2.你对于实现自己的梦想已经做了或者计划做什么样的准备?
在研究生期间,我希望自己可以在完成科研任务的同时,多阅读相关的专业书籍,丰富自己的知识储备,另外可以多写程序,提高动手能力。
3.实习经验究竟有多重要?你准备如何积累实习经验?你希望在企业内实习还是在实验室做项目?
在某种程度上我认同博客D[8]中的观点,实习经验没有那么重要。
“企业要的应届毕业生就是一张白纸,这些白纸吸墨能力的高低决定你能否找到好的工作,而吸墨能力高则主要是基本功扎实、自学能力强的体现,并非我一直以为的丰富的‘实习经验”。
如果要积累实习经验,我希望能在企业内实习,因为如果要应聘IT公司的话,在企业内实习更接近于今后工作的环境,有助于自己今后更快的融入工作。
第四部分:课程期望
4.你对这门课的期望是什么?你打算平均每周拿出多少个小时用在这门课上?你愿意为了一个你感兴趣的项目、或得到实战锻炼而付出更多时间和精力(包括熬夜)吗?(必答)
我希望通过这门课程能够对软件开发的整个过程有一个全面的认识。在这门课上,我打算周一至周五每天拿出一个小时左右(因为课程比较多),周末拿出一天时间,合计15个小时左右。既然有勇气选这门课,我愿意付出更多时间和精力:)。
第五部分:分析软件
1.Mobile Apps(手机应用)
以淘宝app为例。由于在国内网上购物的最大平台就是淘宝,而在手机上淘宝又更加方便,因此基本每个手机上都会有淘宝app。淘宝app的目标应该就是让用户在随时随地都能“剁手”,给用户的生活带来方便。
我第一次下载它是在大一,从手机上的应用商店下载,没有多久支付宝就开始兴起,在淘宝上购物更加方便。使用淘宝的好处是商品一目了然,界面友好,购买和支付方式简单,坏处是存在一些假冒伪劣商品,在这方面淘宝的监管还不够严格。淘宝通过向软件商店推送新版本来更新,打开app后也会有提示更新新版本,通常每个版本的更新周期为1个月左右,具体人数不太清楚。我们宿舍做同水平的软件应该不太可能…
关于淘宝app的盈利方式,首先卖家进驻以及后续的店铺装修会向淘宝支付费用,其次用户通过支付宝付款没有手续费,但是会向卖家收取手续费,淘宝会赚取其中的差价。
淘宝app和同类软件(比如京东商城app,当当网app等)进行竞争的方式有通过打折促销活动,由于淘宝上的种类更加齐全,我现在还在用它。5年之后淘宝app应该还会存在,可能会出现在更便携的移动设备中。
2.Tools(工具软件)
以Microsoft office为例。由于其强大的功能,Microsoft offie有庞大的用户群,它的目标是为人们学习和办公提供支持。
我第一次使用Microsoft office是在小学的微机课上,那时候的版本还是2003,电脑上本来就已经安装,随着版本的更新,office的功能更加强大,界面也更加友好。Microsoft office软件采取的是收费服务,正版的都需要购买。它给我带来的好处是学习更加便捷,坏处可能就是正版的需要收费吧。相比于mobile app,它的更新周期要长一些,主要版本的更新一般要几年,通过向操作系统推送新版本来更新。当然,我们宿舍做同水平的软件应该也不太可能…
同类软件的竞争也比较激烈,近些年,金山的WPS拥有的用户量越来越多(WPS不收费),我现在还在使用Microsoft office,原因是其功能更加强大并且没有广告。5年之后它应该还会存在,可能会出现在新兴的办公设备中。
3.Web APP ( 基于网页的软件)
以新浪微博网页版为例。新浪微博最开始只提供网页端的服务,出现了手机新浪微博APP后,网页版的新浪微博没有之前那么受欢迎。在人们不方便时使用手机刷微博时,网页版的微博可以为其提供方便。它的目标是为大众提供娱乐休闲生活服务的信息分享和交流平台。
我第一次使用新浪微博网页版是在大二,用电脑学习一段时间后,可以转向微博界面放松一下。它给我带来的好处是无需下载客户端占用内存,并且总能访问到最新的版本,坏处是用户体验较差,有一些功能不能使用(比如说扫一扫)。相比于mobile app,Web app无需手动下载更新,每次更新发布后,用户总能第一时间体验到最新的版本。
新浪微博的盈利方式主要是会员、收费微博、推广、广告等。相对于其他微博,新浪微博的受众更广,我现在偶尔会使用新浪微博的网页版,今后它可能会做一些改进来改善用户的体验。
对上述软件的观察可以发现,与硬件相比,软件的更新速度快,并且具有复杂性、可变性、不可见性等一系列特性。