高级软件工程作业 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 模式来进行交互,相信这也是未来游戏的发展方向。

时间: 2024-10-25 20:16:50

高级软件工程作业 No. 0x01的相关文章

如何定义和区分高级软件开发工程师

在软件开发领域,高级开发工程师通常是指那些编写代码超过 3 年的人.这些人可能会被放到领导的位置,但经常会产生非常糟糕的结果.Matt Briggs 是一名高级开发工程师兼 Scrum 管理员.他认为,单纯使用年限来划分开发人员存在问题,两个同样具有 10 年开发经验的开发人员可能大不相同.近日,他发表了一篇博文,根据开发者所能发挥的作用划分软件开发工程师的成长阶段. 初级开发工程师 初级开发工程师通常是指那些刚刚结束学生生涯的开发者.他们以为自己什么都懂,但是面临问题时却又一筹莫展.他们不熟悉

软件攻城狮与高级软件攻城狮

今天被问软件工程师与高级软件攻城师的区别,心中一懵,不知如何作答,随问群中朋友,朋友答:"多了'高级'2个字"-- 好吧,以上即是真事,也是调侃,权当作乐. 以下,本人百度所来(摘自百度知道): 软件工程师:现在社会上对这个职称的应用太广了,基本上从事纯Coding的都能叫"软件工程师".简单点说,你会点编程,就能叫"软件工程师".没啥含金量的. 高级软件工程师:这个职称的要求就高点了,技术\开发履历\管理经验都要达到一定的层次,具体定位可以去参

Atitit. 高级软件工程师and 普通的区别 高级编程的门槛总结

Atitit.  高级软件工程师and 普通的区别 高级编程的门槛总结 1. 完备的知识体系 2 2. 编程理论/原理的掌握 2 1.1. 掌握常用的概念(ORM,IOC,AOP,event driver/mvc 等) 2 1.2. 高级概念(lambda,闭包closure,fp,dsl ) 2 1.3. 元编程MOP  Annotation/attributi 2 1.4. 规则引擎and jbpm 2 1.5. 自己的框架and工具的 2 1.6. 自己的输入法 2 1.7. Uapi 3

如何定义和区分高级软件开发工程师?

原文地址 看来,我已经不只是高级的啦~ 在软件开发领域,高级开发工程师通常是指那些编写代码超过3年的人.这些人可能会被放到领导的位置,但经常会产生非常糟糕的结果.Matt Briggs是一名高级开发工程师兼Scrum管理员.他认为,单纯使用年限来划分开发人员存在问题,两个同样具有10年开发经验的开发人员可能大不相同.近日,他发表了一篇博文,根据开发者所能发挥的作用划分软件开发工程师的成长阶段. 初级开发工程师 初级开发工程师通常是指那些刚刚结束学生生涯的开发者.他们以为自己什么都懂,但是面临问题

关于举办“高级信息安全技术专业人员培训班”和“高级软件性能测试工程师培训班”

大家好!       我中心于2016年2月27日举办“高级信息安全技术专业人员培训班”和2016年3月19日举办“高级软件性能测试工程师培训班” 如有疑问请您及时与我们联系, 感谢您的支持! 如有软件测评服务业务合作,如软件登记测试,确认测试,验收测试,等保测评,渗透测试,风险评估等项目服务,期待您的合作,再次感谢您的支持!           如有培训需求,可以联系我们,劳烦您转发给您相关可能有需求的培训同事,多谢. 祝您工作顺利,健康快乐每一天! 中国赛宝实验室软件评测中心 工业和信息化部

成为高级软件工程师的10个步骤

What 软件工程师的职业生涯要历经以下几个阶段:初级.中级,最后才是高级.这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师. Why 得到更多的报酬!因为你的薪水会随着你水平的提高而增加 提升你的职业生涯.成为了高级软件工程师之后,就可以朝着架构师.团队负责人.CTO 等职位前进 历经更大的挑战.随着你的成长,各种影响力也会提高. How 软件工程是很难的.这一行业在不断变化中,所以你必须紧跟它的步伐.你必须不断地投入时间和精力,因为你需要学习的东西总是比你能吸收的多.很多新手

《Junit》——软件工程作业.vo2

<Junit>--软件工程作业.vo2 一.开发工具选择 我选择Eclipse: 二.编写与测试环节 (1)编写想要测试的Java类 (2)导入Junit (3)编写测试类 单元测试覆盖标准: [x] 语句覆盖:选择合适用例,所有语句被执行一次. [x] 判定覆盖:每个判定至少取一次真.一次假. [x] 条件覆盖:每个条件的各种可能结果至少满足一次. [x] 判定条件覆盖:同时满足判断覆盖和条件覆盖. [x] 条件组合覆盖:所有组合情况都要覆盖一次. 代码如下: package first;

《结对作业2》——软件工程作业.vo5

软件工程作业.vo5 一.题目选择 我们选择题目一: [x] 能够自动生成四则运算练习题 [x] 可以定制题目数量 [x] 用户可以选择运算符 [x] 用户设置最大数(如十以内.百以内等) [x] 用户选择是否有括号.是否有小数 [x] 用户选择输出方式(如输出到文件.打印机等) 二.职责分配 驾驶员--毕振国-博客地址 导航员--杨颢 三.结果展示 1.操作界面示例 2.输出界面示例 ++(此处应有掌声,啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪--)++ 四.代码审查表 代码地址: https://co

高级软件工程师和架构师的区别(转)

架构师 倾向于 通信 . 通信框架 .队列和 分布式框架运用以及阿里云和微软现有分布式组件的运用. 高级软件工程师 倾向于 C#基础. 多线程.锁和数据库索引 (队列和通信也会问只是会问的浅一些) 研发经理 包含高级软件工程师问的这些外,还会问管理方面的知识 我面试的三家公司分别面试了三个职位,将知识点进行了一个表格整理,分值越高就意味着问的越深,不能百度之百准确,只当参考. 职位 C#基础 通信 缓存和队列 数据库索引 数据库锁事务 前端 多线程 数据结构 管理 自我介绍 大数据方案 常用框架