高级软件工程作业 No. 0x01

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级软件工程作业 No. 0x01相关的知识,希望对你有一定的参考价值。

第一部分:结缘计算机

1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)

自从第一次接触计算机,就被其神奇的功能所折服,一心想要去搞懂他。高中的时候会简单的使用 Linux,会搭建网站,偶尔也会在学校的机房搞一些大事情,后来由于高考成绩不理想,本科被无情的调剂到毫不相关的专业。年轻的时候大多会抱怨命运的不公,撒开玩了一年半载。后来也渐渐领悟到了随遇而安,在清闲的时候自己去踏实的学习一些计算机相关知识。再次捡起的那一刻发现真的很开心!为了弥补曾经的遗憾,也为了实现当初未完的梦想,毅然决然选择考研,而这次,我非常幸运。虽不是科班出身,但凭借着对计算机喜爱以及稍有的过人之处,自己的条件应该也能算是中规中矩的水平吧。

这些博主最明显特点的是他们都具有渴求知识、与时俱进的学习态度,有些博主刚步入大学时尽兴参与社团,有些博主并未参与科班教育,但最终都由于各种各样的原因,意识到了学习的重要性,步入了学习知识、与时俱进的行列。例如在《我的软件开发生涯 (10年开发经验总结和爆栈人生)》一文中,作者从初中开始就喜欢计算机,虽然大学时没能学到喜欢的专业,但后来也是通过学习进一步的努力学习,坚持了自己喜爱的事情。

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

喜欢必定会去了解,了解使我更加擅长,擅长促进我更加喜欢。生活在这个时代,一切都离不开计算机。在家中,父母说电脑慢,上网慢,我会帮他们改善;在学校中,同学之间遇到难题,我会一起思考,提出合理的解决方案;在生活中,重复而简单的工作,我会使用计算机将其自动化,需要在网络上获取一些数据,我也会写个程序去抓取。

3.你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?

现在的新闻阅读器,大多会使用机器学习方法来推荐新闻,以至于现在推荐给我的新闻,除了科技方面的,再无所有。

第二部分:在计算机系里学习

1.你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。(必答)

当前中国大学的教育,大多还是以老师讲授为主,学生缺少独立自主思考的步骤。当然,这是我国人口基数大与教育资源紧缺之间的矛盾,在很长的一段时间内难以解决。

正如《分享下在美国读研期间的一些计算机课程作业》一文中所说,理想中的大学教育应该循序渐进,课上时间虽不多,但会有充足的课后时间让学生进行实践,让学生之间独立思考,互相帮助。这样既能锻炼独立思考的能力,也能增强个人的交流能力,在未来的工作生涯中有不菲的价值,这是目前中国大学欠缺的。

如前面所说,这是我国人口基数大与教育资源紧缺之间的矛盾,想要解决非常困难,在未来的时间里,随着我们整体教育水平的提高,教育投入的增加,这个问题会将慢慢缓解。

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

大概10000行出头吧。做过一个博客系统,前后端均使用 javascript 语言,后端运行环境是 Node.js。

设计的宗旨是尽最大可能的简化后端,仅仅对接收到的 HTTP 请求进行响应,并返回 JSON 表示的纯文本内容(文章内容使用 Markdown 语法书写)。

因此,前端需要解决的事情就多了。当然,为了挑战自己,并没有使用开源库,而是从头开始,自己封装一个简易的 JavaScript 库。从选择器开始,到 AJAX 请求,到 CSS3 的动画,再加之诸如 History.pushState() 等等 html5 新特征...

3.科班出身和北大青鸟有什么区别?

四年的科班与不足一年的北大青鸟,差距必然是存在的。

当前的培训机构,大多是为了就业而准备的,因此他们学到的知识编程语言本身;而再看向科班出身,从计算机运行过程中的电气特征,到操作系统与硬件之间的配合调度,再到编程语言到机器语言的编译过程,再到更高层次的算法设计,自下而上的学习了计算机运行过程中的方方面面。

如果软件遇到性能问题,北大青鸟出身只能看看代码本身,而不知其运行时的所以然,只能一味的考虑提高硬件水平来解决问题;而对于科班出身,遇到软件性能问题,可以自上而下的思考,优化代码逻辑算法、考虑操作系统的调度、考虑I/O设备的传输速度、考虑硬件的性能瓶颈,总能从某一个方面来更快的解决问题。

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

类似上一个问题的答案,而 MOOC 课堂可以说是介于二者之间的折中选择,不过也要下功夫去制定一番学习的计划才可达到科班的效果。

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

当初怀疑过,而现在则是坚定不移的支持!

虽然没有学习过计算机图形学,但是从我的理解来看,计算机图形学可以简单的理解为3D空间的线性变换。建立一个3D模型,随着镜头的移动,而不断的进行基于当前镜头方位的线性变换,产生的平面图形就好像是正常的 3D 效果,而线性变换正是线性代数的精髓。

对于当前火热的机器学习领域,基于贝叶斯模型的贝叶斯分类器也是一个重要领域,最多的应用即是垃圾邮件的分类。除了此之外,概率论在计算机方面的应用还有自然语言处理、机器翻译、拼写纠错等等...

第三部分:未来规划

1.对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?(必答)

当前计算机领域最热门的方向即是机器学习,而我现在也在努力的挤入这个领域。如果可能的话,在研究生毕业之后,进入BAT或别的大公司进行锻炼,在有了一定的经验之后,进而去 Google 等跨国公司进行工作,创造更多的价值。

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

目前,已经积累的非常多的代码经验,对于研究生阶段的学习是很好的基础。接下来的一年,我会上好每一节课,同时跟随导师做好任务,在闲暇时间学习知识,为将来的工作积累更多的经验。

3.实习经验究竟有多重要?你准备如何积累实习经验?你希望在企业内实习还是在实验室做项目?

量变导致质变,实习经验的增加,必然会使一个人的能力大大提升。而现阶段作为研一新生,更多的是要完成上课计划,因此,在实验室做项目来积累经验是非常合理的选择。

第四部分:课程期望

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

由于是跨专业,对于大型软件的合作开发没有经验,我希望在这门课上系统的学习到软件开发的一般过程。

对于这门课的学习,我会根据老师具体的教学内容分配合理的时间,学好这门课。

对于我来说,为了感兴趣的研究而熬夜,已经是家常便饭了,常常在关灯后在床上抱着笔记本码代码,偶尔甚至可以写到天亮。

分析软件

Web APP

Web APP 即在网页上的应用,随着 HTML 的发展而盛行,依赖于 HTML5 的新标准、CSS3 的新特性、以及 JavaScript 的发展,Web APP 在界面上已经可以美观到接近原生应用,并且由于其使用起来非常方便,通过一个浏览器即可运行,如此方便的使用方式很快吸引了大量的用户。对于 Web APP,收费与否取决于企业的性质,公益机构大多会有其免费的宣传 Web APP,对于购物网站,则通过销售商品来盈利,对于其他的一些机构也有各种各样的需求,不过大多会通过广告来赚取金钱。

Web APP 随着互联网的发展而发展,在未来的时间里,互联网仍是不可或缺的,因此,Web APP 在很长一段时间里仍会健康发展。

Mobile Apps

现代人们几乎人手一部手机,Mobile Apps 依托于手机以及平板等移动设备,发展飞快,无论是在手机上用视频软件看一场球赛,还是用即时通信软件与数千公里之外的朋友聊天,无不使用着 Mobile Apps。现如今,大多数 Mobile Apps 都是靠着广告来赚取金钱的,也有通过提供有价值的东西来进行收费。

在很长的一段时间内,手机或平板还是会存在的,而 Mobile Apps 也会依附于手机以及平板存在,当然,如果有一天能有新产品革新手机以及平板,那么 Mobile Apps 即走向终结。

Games

电子游戏作为让人们放松的娱乐方式,已经很久的历史,但是由于真的太有意思了,导致很多青少年沉迷之中。在近些年的发展之中,游戏画面、游戏的剧情有了质的提升,例如在 Grand Theft Auto 5 中,虽然游戏内容暴力,但是其画面以及剧情完全超越了真实的电影。超高的制作水准,使得现在大多数单机游戏都是直接收费的,而对于网络游戏,大多数的模式是充钱可以变得更强。

随着机器性能的提升 AR、VR 近些年来快速发展,目前已有部分游戏采用 AR、VR 模式来进行交互,相信这也是未来游戏的发展方向。

以上是关于高级软件工程作业 No. 0x01的主要内容,如果未能解决你的问题,请参考以下文章

软件工程作业No.4

软件工程作业No.1

高级软件工程2017第6次作业--团队项目:Alpha阶段综合报告

高级软件工程第三次作业

高级软件工程第二次作业

[高级软件工程教学]第8次班级作业评分