软件工程-个人阅读作业1
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2021春季软件工程 |
这个作业的要求在哪里 | 个人阅读作业#1 |
我在这个课程的目标是 | 拥有一定的软件开发经验 |
这个作业在哪个具体方面帮助我实现目标 | 结对作业以及迭代项目开发 |
第一部分: 结缘计算机
你为什么选择计算机专业?
初识计算机是在小学的时候,现在记忆都已经模糊了。我只记得那天下雪的晚上我一个叔叔和我爸爸在我家二楼组装电脑,当时的我好奇的看他们组装,没等他们组装结束我就去睡觉了。这部电脑陪伴了我整个小学,小学我有段时间不是寄宿,每天回家写完作业就去打游戏和看电影。
真正萌发对计算机兴趣的是在初二的时候(这个经典的时间点),当时我和朋友闲谈的时候,他讲到了他的某一个亲戚在外面做计算机相关的工作,生活很让人羡慕:他每天只需要打打代码就可以拿到很多很多钱。在当时我的认知中,钱很难挣得到,好多朋友的爸妈都是出去打工,他们都是留守儿童家庭。年少无知的我就萌发了以后要做和计算机有关的工作的想法,这样就能很轻松的赚到很多很多钱。不过也仅仅是想法,一直到高中毕业之前我都没有为这个想法付诸行动。
初三之后,我考上了县城最好的高中的重点班,高中是没有假期的三年。在学校每天的生活是枯燥无味的上课、吃饭、写作业、睡觉。学校不允许带手机,我能够获取外界知识的也就是老师和一些杂志报纸。每月放假一天回家修整状态:好好睡一觉、理发、洗衣服等,在这很短的假期中我爸妈并不允许我玩电脑,但却允许我玩手机。那时候手游的流行以及我当时对于小说的热爱,放假回家也就很少动过那台电脑,只是看看小说打打游戏。
在那个高中里面也没有各种竞赛班,只有一个比较松散的名义上的竞赛班级:偶尔会上一节课,但上完课之后大家就各回各班了,更不用说专门信息竞赛班级(我直到大一才知道原来高考还有信息竞赛这一招生政策)。但由于当时选拔时我的成绩不太好并没有进入其中,也就没有接触到有关竞赛的知识和信息。
在几乎与现代信息社会几乎隔绝的高中生活中,进一步增加我对计算机行业兴趣的是学校超市不定期售卖的报纸——电脑报。这份报纸我高三买过很多份,学校内有售卖的每一期我都会买回来看,但也只能偷偷的看,被发现会被当违禁品没收并会受到惩罚。电脑报每一期会讲一些电脑的配置以及当下各种比较火热的技术新闻等等,尽管当时很多东西都看不太懂,我仍然会每一页仔细阅读。但在学校平时没有时间去探索计算机以及学习计算机有关各种知识,放假回家也不会在网络上了解与有关计算机的信息,不得不说当时我的信息检索能力很差。
尽管如此,我还是在高考报考时选择了计算机行业,部分原因初二当时心中的执念,部分是因为我对当时其他热门专业没有一点兴趣,先入为主的思想让我选择了北航的信息类(计算机包含在内)。
总的来说,高考结束之后选择计算机并不是发自内心的热爱和对计算机感兴趣而做出的选择,而只是一种不知所措下的无奈之举。
大一结束的专业分流也是这样的,我当时排除法选择专业,剩下的只有软件工程和计算机学院,但由于计算机 的分数要求较高,我也就选择了计算机学院。
现在在计算机学院一年多的时间学到了很多的东西,也通过自学掌握了一些技术和知识。越了解计算机领域,越感觉自己的渺小和以前的无知,越被计算机专业中各种神奇的技术和算法所折服。现在我并不后悔自己当初选择计算机专业,反而庆幸能来到如此神秘、有趣的专业。
你认为你的条件如何?和博主相比呢?
到了大一,我才知道C语言,才真正接触到计算机专业,肯定是和其他的信息竞赛的大佬以及其他早就接触到编程的同学们有了很大的差距,所以我的条件并不好,反而是很差。还记得我当时C语言学递归指针的时候,当时需要思考很久才能绕明白算法的过程和原理,写代码的时候往往又是无处下手。大二之后学到的这些专业课:计算机组成、面向对象和编译原理这几门课中我的代码都写的很烂,但也都一步一步的努力走过来了,跟上了节奏。基础很差但我也会一直努力的追赶,去提升自己。
博主 在初中电脑课的时候已经开始写代码和做自己想做的事情了,我在大学才刚刚接触,与博主的差距还是很大的,不仅仅是在知识上,还包括眼界和格局。我在初中和高中的时候,计算机已经很火爆了,但当时一心只读圣贤书,平白浪费了很多的时间和自己探索新鲜事物的好奇心,像轮子哥,在高中的时候就自己开发了上万行的RPG游戏,并在平时学业很忙的时候,仍然会坚持抽时间去阅读相关书籍,就像他自己说的,他的大部分编程书都是在上厕所的时候读完的。
第二部分:在计算机系里学习
你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
在老家,只有到了我这一辈才有大学生,其他的亲戚长辈也基本是初中毕业、小学毕业居多,高中毕业的就算是高学历了,更有的像我奶奶是文盲,不识字。在这样环境中长大的我,从小学到高中这些年中一直在被灌输着大学生活的轻松、快乐和简单,我也一直相信着,哪怕到了高考结束之后我对信息的获取能力有了一定提升但眼界也仍然局限于此,并没有去了解大学生活的种种,或者说我没有幻想过大学生活是什么样子,也没有期待过什么,仅仅觉得大学会很轻松,学一些简单的知识,交一些好朋友,顺利毕业。
真正到了大学之后,发现大学生活和我想象中的大学生活区别很大很大。在经历高考结束之后的放纵,来到大学之后发现北航的紧张的学习生活是如此的让我应接不暇。在基础必修课程的学习、丰富的选修课、浓厚的学习氛围以及有趣的舍友的冲击下,大学生活就这样一天天的过去。大一一年由于谈恋爱的原因经历了很多很多超乎我想象的事情也对北航这所学校有了更深刻的了解。对于大学生活没有多少幻想和期待的我,有时候觉得可能大学生活就是如此吧,或许我期待的就是这样。
至于国外教学的方式,我并没有出过国,对国外教育并没有亲身经历过,但从一些目前的了解感觉国外的教学应该比国内更开放,形式也更加多样化。对比一些课程,国外的一些大学的课程需要在上课前准备很多资料来为自己课上的讨论和交流,国内暂时还是很难实现这种风格,我们平时上课的内容仍然以老师灌输为主,我们即便课下不找资料去学习,也仍然可以在课堂中获取,课下的资料有时候会帮我们更好的去理解课上内容,但相对于不找资料预习,区别不是很大。
国内由于高考的存在,高中和初中的教育主要还是应试教育体系,学生们到了大学依然会带着高中时代的习惯和思维。大学中分数也是很重要的,GPA与选专业、保研和出国等息息相关,为了高分而学习的现象也仍然存在。
我总是认真听老师讲课,每次上课从来不预习,从来不会计划这学期我要干什么、这堂课我要干什么,我机械地听着每一节课,机械地在迷糊中重复着作业、考试,我几乎每一个学期都会拿到奖学金,可那又怎么样呢?
——刘帅
如上述引用中,只是在上课、作业和考试,这样现象依然存在。就我个人感触而言,在国内的课堂上依旧是类似于高中的灌输知识。老师上课讲的内容依旧有种灌输的感觉,一些偏实践性的课程,如果能在课堂上展示进行现场代码的编写和运行,效果应该会好很多,毕竟能够看到老师现场进行coding所收获的不仅仅是代码本身的逻辑和内部的算法,还包含着一些编程的风格、规范以及好的编程习惯,这样的言传身教上课学到的知识会更加丰富与充实。
迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业
大学开始接触C语言,开始进行代码的编写,到现在也就是两年多的时间。大一的C语言程序设计和数据结构,整体代码量不多加在一起差不多也就2000行左右。大二上的计算机组成使用Mips汇编以及Verilog语言编写流水线CPU应该有2000行的代码量,同时选修课的java大作业开发了一个日记本,由于大量的代码都用在了GUI的编写上,整体有效代码大概800-1000行左右,大二下OO课程每一个单元基本都是迭代式开发(除去第一单元),重复代码量也是蛮多的,有效代码加在一起大概3000行左右。大三上实现的类C文法编译器3500行左右,以及数据库大作业前端代码大概1000左右,加在一起有12000行左右的总代码量。
做过最复杂的软件/项目,真正代码量最多的是类C文法编译器的实现,复杂度的话应该也是编译器。但写编译器时每一个过程都是有明确的思路,知道该如何进行编写,所以实现即可,并不是很复杂。但我个人认为最复杂还是OO的第一单元第三次作业最为复杂,与其说是复杂不如说是困难,也就是说那次作业的代码是目前以来写过的最困难的代码,最累的代码也是最难维护的代码。对于当时的我的代码水平来说写那次作业难于登天,当时四天的时间,我花费了大概两天半的时间去思考该如何下手,但最终也是徒劳无功,面临DDL的压力,我采用了最简单的思路也是最难实现的方法去解决问题,最终在DDL前的最后一次提交通过了弱测,结果可想而知在强测中得到了0分。
平心而论,大学做过的这些课程作业,算不上是一个项目或者软件,更像一个个玩具,并不具有真正的功用。真正称得上软件和项目的代码应该比这些课程代码更加的规范和工程化,同时代码量也应该更多,也应该更有价值和生产力。我们目前通过这些作业和课程设计来掌握知识,并为我们以后进行开发更复杂的软件和项目做准备。
第三部分:未来规划
对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?