软件工程热身作业
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2020计算机学院软件工程(罗杰 任健) |
这个作业的要求在哪里 | 热身作业 |
我在这个课程的目标是 | 进一步提高自己的工程能力,提高自己的团队协作和表达能力 |
这个作业在哪个具体方面帮助我实现目标 | 从过去,现在,将来三方面思考,审视自己 |
参考文章和博客 | 博客I,博客E,计算机科班出身的优势是什么?,博客A,博客K |
第一部分 结缘计算机
我与计算机的缘分
- 2008年,搬家,家里配了第一台也是最后一台电脑。姐姐平时不怎么用,偶尔查查资料,而我和哥哥就常常围着电脑转。几乎每一个周末,我和哥哥都会上演一场“电脑大权”的争夺之战,无奈年少于他,打不过也抢不过,只能干巴巴地等着哥哥玩完了再坐在已经热乎的凳子上,开始自己的游戏之旅。不过年龄也是我的优势,偶尔哭丧一下鼻子,姐姐或者妈妈会出来为我“主持公道”,而我就哭里藏笑,拿下“皇位”。电脑游戏伴随着我半个小学和整个初中,和哥哥一起"争夺"的日子,玩得太过火被爸爸骂的日子,仍深有感触。
你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
-
选择大学以及专业的时候,我的心情可以用博客I中作者的短诗歌来表达。或许选择北航,选择计算机专业,有家庭建议的原因,但是最重要的还是计算机带来的许多直接而又难忘的快乐在我心中早早播种,再考虑到自己的高考成绩,根据专业选大学,所以选择了北航的信息大类,并定下目标要来计算机系。
-
说起来有些惭愧,在大一上学期上了程设第一节课之前,我连用C语言写hello world都不会,课下写的时候还改了很久才出来现象。直至如今,自己的编程经历、技术不如系内同级的大多数同学,更落后于博客I的作者。但我相信,经过接下来将近4个月的软件工程课程的训练,我的编程和工程能力会得到较大提升。
计算机是你喜欢的领域吗?是你擅长的领域吗?
-
我不能也不敢说我喜欢计算机,因为我对计算机领域涉足尚浅。但当我想起大二上的计算机组成课设,这是我第一次接触到较大规模的代码开发,为了P7,我曾连续3天熬夜到了凌晨4点,不断写设计文档、编写代码、调试bug,最终课上提交一A的时候,碍于在考场,不然我开心得想原地蹦跳。
-
计算机不是我擅长的领域。最直观的一个角度就是:我编写代码的能力不强。好在正如博客I中所说:"只要有恒心",我在专业课课设方面做得差强人意。
你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
-
虽然我不能明确说我是否喜欢计算机这个领域,但是我可以说我挺喜欢计算机这个专业的,至少我不讨厌大二以来学的6系的特色课程。那种通过自己的不断努力,细细挖掘代码中的每一个细节,一个个地修复代码中的bug,正如OO课程所言“克服重重障碍,登到属于你的峰顶时,无比清爽自然”,最终看到AC的那种成就感与满足感,这种发自内心的快乐就是我对计算机的热爱。
-
在6系的一年半,翻过的重重山峰,越过的道道山岭,一起在心中勾勒出一道难以磨灭的痕迹,我对计算机的热爱应该就像那道痕迹,是经过锤炼而换来的心情,而不是口头的语言。
第二部分 在计算机系里学习
你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
-
相比于在学院路校区,我个人更喜欢沙河校区,那边清净,安宁,住宿条件也更好些。而学院路校区人很多,大家都在忙碌于自己的事情,却能明显地感觉到有一种比较浮躁的气氛。总体来说,北航给我的大学体验还算不错,但我还是想要吐槽下大类招生政策。该政策的初心是好的,给同学们二次选择的机会。但是由于该政策,导致了大一下成绩靠前的学生几乎全部来了6系,平均成绩明显高于大类招生前,竞争压力明显增大;第二是某些课程的开设,比如大三上的一门课程“数学建模”,该课程旨在培养同学们对现实问题的抽象之后寻找适当数学模型来对之建模以及解决实际问题的能力,然而考试除了建模什么都考,而真正需要建模的东西则是在ppt上,背下来就能得分,不需要有分量的思考。
-
我理想的大学不应该还要学生过分地担忧成绩,而是能着重看见学生的进步进而给予学生机会,鼓励学生充分发挥自己的兴趣爱好,学生不必要因为要过分担心课程成绩而放弃许多爱好。
-
北航本就是一个给了学生充足发挥特长和实例舞台的地方,但是课程的压力和成绩压力实在太大,加之大类招生政策与计算机学院的优秀,雪上加霜。似乎并没有多少时间去课外搞自己喜欢的东西。
-
我认为上述现象在中国很多大学都存在,而我的学校和老师很难做到像国外那样,原因主要在于中国学生人口众多,社会竞争压力巨大。但另一方面,正如博客A中说"学习和进步才是大学的主题,荒废其中任何一个都不能让大学生活过得充实而且完整",或许有此种压力,中国的教育才能迫使更多的青年使得自己变得更加优秀。
迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
-
不考虑大一写的各种编程题目,从进入6系开始至今,大概写了万行以上的代码。
-
做的最复杂的项目,个人觉得是编译课设的中写出一个类C文法的编译器。该项目从简单的词法、语法分析入手,一步步地结合编译原理所学的部分理论知识,最终搭建出生成MIPS可执行汇编代码的编译器,作业最难的地方是在于优化,上学期课程压力很大,所以为了节约一些时间,我避开了经典的一些做起来难度较大的优化:如函数内联、DAG图,转而做了一些比较简单取巧的优化,例如窥孔优化,表达式合并,全局的寄存器分配等等,最终的结果也还不错,我觉得性价比是很高的。编译课设难度虽大,实践性也很强,但我获益匪浅。那之中最明了的收益,是我从零学习了一些C++中经典数据结构的用法并且巩固了已学的C语言的知识,这让我在CCF认证考试中前两题中如鱼得水。
科班出身和北大青鸟有什么区别?
-
从社会现象来看,博客E中观点我是赞同的,就是非科班出生的程序员,在入职场初期会受到一定的歧视。但是随着年龄增长,我认为实力才是决定你是否能在职场混得好的决定因素。
-
从知识层面来看,科班的学生由于受到相对比较全面系统的教育(如操作系统、编译原理等等课程的开设),在编程方面应该会有着更加系统而深刻的认识。
-
科班学生有着更丰富的校友资源,如导师、学长学姐等等。
-
科班学校面临着更大的学习压力,这一点我相信在6系的同级同学们,应该有不少人有相同的感觉。GPA,各种大作业,ddl,期末考试,实验室项目。。。似乎一松懈,就要落后。
速成的培训班和打基础的大学教育还有mooc之间有区别吗?
-
有区别。
-
速成的培训班在于短时间内教给学生某一方面的基础知识,然后再跟着班级教程做一些项目达到要求就算毕业,好处在于能够短时间掌握某方面知识比如python编程、NLP基础等等,有一定项目实践能力而能够进入到公司实习工作等等。
-
而打基础的大学教育和mooc更注重知识的循序渐进,知识体系更加完整,学习曲线更加缓和,虽然并不能在短时间内获得如速成培训班那样的在某方面较为精进的知识体系,但是却能够培养学生的基础能力,以后进入更专业的领域的学习之时,能够学得更快而且理解更深入。
学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
- 说实话,我有过这样的疑问。当时学习这些数学的时候,很投入也很喜爱,当闲暇之时,却会思考:”我学这些基础数学科目,除了为了考试成绩外,还有什么用呢?“当时接触到的编程课程也几乎没有对这些知识的运用。
- 直至现在,随着专业课程的深入,我发现这些知识已经开始出现在了各种ppt、作业、论文之中了。特别是机器学习领域,对概率统计和线性代数中的矩阵部分应用甚多。这个问题自然得到了解答。
- 其他学科例如“数学建模”我仍有此种疑惑,但是相信,随着对计算机领域的更深地涉足,这些课程所想要锻炼的学生的种种能力会在以后渐渐体现。
第三部分:未来规划
对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
- 对于未来,我希望我能找到自己喜欢的行业的一份工作,并且在工作的过程中不断提升自己,希望能生活得充实,不要太过劳累。
- 博客A中作者的忘年交对之建议:踏踏实实打好基础,不要被层出不穷的新技术遮蔽视线。对此我深表认同,在以后,我将会着重学习,打牢自己的基础知识;但我也有一点不认同,现在新技术发展飞速,因此我认为我也有必要涉足课外的领域或是积累实习经验,以免落后太多。
你对于实现自己的梦想已经做了或者计划做什么样的准备?
-
我打算在暑假或者大四进行实习。目前考虑实习的方向是软件开发、后端,实习的目的在博客K中有所提及,包括:
- 一是走向社会,开拓自己的眼界;
- 二是继续不断地认识自己,由于自己对以后的专业方向还没有明确的答案,所以希望能发现在实习自己的特长与爱好,在心中有自己以后走上职场的具体哪个方向有个初步的认识;
- 三是锻炼自己的为人处事的能力。
你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
- 我更倾向于企业实习,因为我最终是要走上职场社会的,所以想提前了解一下真正的工作环境,也想积累一份企业工作的经验。
实习经验究竟有多重要?是否需要马上开始积累实习经验?
-
博客K中作者给程序员的八点建议中,第一点就提到:“在大学的时候尽量多地进入公司参与实际工作,一方面积累工作经验,另一方面,提前认识工作和自己,以便毕业时更准确地把握自己的方向。”,诚然如此。所以我认为实习经验尤其是企业实习相当重要,尤其是对我这种对未来方向不明确的学生。
-
由于课程压力大,可以先考虑实验室实习,等暑假和大四就很有必要积累企业实习经验。