软件工程热身作业

软件工程热身作业

一、作业要求简介

项目 内容
本作业属于北航软件工程课程 博客园班级链接
作业要求请点击链接查看 作业要求
我在这门课程的目标是 系统学习软件开发理论和流程,通过实践积累软件开发经验
这个作业在哪个具体方面帮助我实现目标 让我更加清晰的认识自己,以便做出更好地规划

二、正文

第一部分:结缘计算机

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

​ 我选择计算机专业是因为事先了解到在信息大类四个可选专业中,计算机专业的学习氛围是最浓郁的,我个人自制力并不强,很容易受到环境的影响,我希望有一个好的学习环境来带动我自己的学习积极性,所以我选择了计算机专业。

​ 我个人条件并不是很好,大学以前从未接触过编程。每次我刚刚把一些算法的原理弄懂,其他同学就已经能熟练运用了;在上学期的编译课程中,别人大部分时间在添加新的优化,而我大部分时间是在debug。不过我比较喜欢思考,在一些问题上能想出不同的解决办法,虽然不一定有原来的解决办法好。

​ 和博客I的博主相比,我觉得自己差的太多了,博主从初中就开始沉迷于电脑,并且为了学好电脑而去学好英语,他对电脑的热情远高于我,博客中提到的很多英文名词我根本就没有听说过,我也没有像博主那样付出自己大部分时间在计算机上,与博主相比自己还是连门都没入的菜鸟。

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

​ 计算机是我感兴趣的学科,所以应该还算是我喜欢的领域。但是我目前并不擅长计算机,首先我真正接触计算机只有这大学的三年半的时间,在任何领域都不敢说只用这点时间就能擅长这一领域;其次,我写代码能力确实有待提高,虽然每次写之前都有一个大致的逻辑,但到了具体实现上逻辑就开始不清晰了,最后debug阶段我往往像无头苍蝇一样盲目找bug,效率太低了。综上所述,我并不擅长计算机这一领域。

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

​ 说实话,我虽然喜欢计算机这一专业,但还没有达到热爱这一地步,因为这些年的学习确实和我一开始的憧憬有所出入,但我会努力的去让自己爱上这一专业。

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

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

​ 大学生活的槽点确实不少,比如硬核课可以特别硬核,水课又可以特别水,学生为了追求高分自然就去选那些给分高的水课,而真正感兴趣的课又因为时间冲突、给分不好看等原因没法去上,在学生内部流传的好课往往是给分高任务少的课而不是真正能学到知识的课。

​ 我理想的大学教育就像是博客M中所提到的,老师布置一些学生做得出来,但是难度大到只要再难一点点学生就做不出来的问题。这样的教学能让学生对教学内容掌握的更加牢固。就是说老师应该合理地给学生安排任务,既不是像放养什么多不管,也不是像保姆一样什么都管。

​ 学校中大部分老师都只是简单讲讲理论的知识,真正的理论如何联系到实际,并没有涉及,就是普遍的老师把学生带进这个圈子,然后剩下的靠学生自己掌握这种教学模式。但是ppt上的知识点学生是可以自学的,不需要老师再花时间从头到尾过一遍,老师课堂上的任务应该是讲授一些知识点的实际应用,不然一学期下来光学一些理论知识,缺少了与实践结合,过不了多久就会忘得干干净净。

​ 我们所能了解到的国外的教育都是在国外非常优秀的,所以不只是北航,全中国学校的教育和它们都相比还是有些距离,但我们学校在国内已经算是做的不错了。现在中国这边的教育是将大部分人都教会,所以将大部分时间花在基础知识点的讲授上面,在课堂上就无法兼顾想更深入了解这门课的人。

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

​ 如果把所有大学里写的代码加起来的话,应该有一万多行吧。

​ 我认为最复杂的作业应该是上学期的编译课的编译器。虽然实现一个能正确运行的编译器并不复杂,但是最后加上了各种优化就达到了6000多行,觉得复杂是因为当时并不知道课本和ppt上已经给出了优化实现方法的具体内容,全是拍脑袋想然后在宿舍内讨论出来的,所以实现起来感觉格外困难。现在看来自己想的方法性能不如传统方法而且又难以实现,有很多时间都是因为偏要用自己的方法来实现的这种固执思想浪费掉的。

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

​ 一开始我确实坚信线性代数和概率论这些数学学科与计算机关系非常大,毕竟计算机领域内很多学科的一些算法诸如数据挖掘、机器学习的算法都要用到这些数学知识。但在我这几年的学习中我感受到其实对数学要求高的只是计算机领域的科研方面,比如新算法的研发,但对于其他方面并不需要理解算法的原理,只需要知道算法的用法就行了。我个人是很喜欢数学的,应该也算是比较热爱数学,不过从目前看来,这些数学知识确实帮我更好地理解了很多算法的原理,但是如果并不理解算法的原理,单纯把它当成一个黑箱,也能将其用的很熟练。总的来说,对计算机的科研方面数学功底是不可或缺的,其他方面对数学要求其实并不高。

​ 不同学科对计算机这一领域重要性不同,比如英语,英语能帮助我们更好地查找和理解国外的资料,对提高自己的知识储备有很大的帮助。

第三部分:未来规划

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

​ 虽然大学之前没接触过计算机相关的知识,但当初选择信息类的原因就是想在未来能有能力写出满足自己需求的软件,实现我感兴趣的东西。但现在越来越对科研感兴趣了,那些算法原理的证明,中间的公式推导都很有意思,比较想走读博科研这条路。

​ 在剩下的一年多的大学生活中,我除了学习必要的课程外,还要去巩固自己的基础,将大学所学的语言再认真学一遍,同时去各大网站上刷题,提高自己写代码的能力,同时再把大学的数学知识再过一遍,将之前没弄懂的线性代数后半部分弄明白。同时阅读一些主流算法的原理,尽量弄清楚这些算法为什么会能达到这些效果。大四的时候就很闲了,准备找一个感兴趣的研究方面的实验室,在实验室中进一步学习。

三、参考文献

我的软件开发生涯 (10年开发经验总结和爆栈人生)

进入2012 -- 回顾我走过的编程之路

徐宥:掉进读书的兔子洞

刘帅:在失望中寻找希望

一直在路上——记我从初中到本科近十年的学习成长历程

谈谈职业规划——CSDN对我的采访

对程序员职业的一些建议

posted @ 2020-02-29 13:34  cc17373432  阅读(159)  评论(2编辑  收藏  举报