2021年软工 个人阅读作业一

项目 内容
这个作业属于哪个课程 2021春季软件工程(罗杰 任健)
这个作业的要求在哪里 个人阅读作业#1
我在这个课程的目标是 熟悉软件工程的基本方法并尝试加以实践
这个作业在哪个具体方面帮助我实现目标 通过自我回顾与反思以及对他人经历的阅读,获取经验与支持,坚定自己下一步的发展或为自己的进一步发展给出新的可能性

​ 全文约五千字,阅读时间大约10分钟。

一、结缘计算机

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

​ 2016年初,我通过了学校的数学竞赛培训选拔,却又在培训一段时间之后觉得内容过于庞杂繁重且难度过高,选择了退出。当时我的母亲耳闻学校也有信息竞赛方面的培训,抱着或许对自主招生有帮助的心态鼓励我去参加,虽然已经错过了初选,但我还是决定去问问信息竞赛教练——杜清龙老师,幸运的是,杜老师答应在第二天的下午为我单独补课,以期帮助我赶上大部队的进度。现在回想起来,在那个阵阵蝉鸣的夏日午后,机房中杜老师的身影和屏幕上闪烁的“Hello World”字符构成了我对于计算机程序的第一印象。当时的我只觉得这个东西很“神奇”,因此在枯燥的高中课程学*过程中自然而然地对其产生了一种好奇心。在之后的一段时间里,我便参加了校内的信息竞赛集训,在杜老师的指导下学*了基础的数据结构与算法知识,虽然最终只分别在 NOIP2016NOIP2017 中获得湖北省二等奖,但不可否认的是,那段时光带给我的关于计算机方面的影响,任何其他时期都难以望其项背。

​ 于是乎高考放榜之后,结合自己的高考分数,辅以他人的意见,选择北航的信息大类也就成为了一件自然的事。大类培养结束后,工图、电设等课程给我留下的不好印象更是加深了我应该远离电子信息和自动化等专业的想法。于是乎,我最终选择了计算机专业,加入了计算机学院。

​ 关于和这些博主的对比,硬件条件方面,限于时代的关系,在我小学第一次接触到计算机时,其上已经是 Windows XP 这样比较成熟的操作系统了,与博客I中提到的“第一次上课,眼睛里看见的是一台台白色的机器,带了个像电视的东东,能显示东西,真神奇。” “当时安装的是DOS3.x版,满屏幕是英文,很多都不认识。”等描述全然不同,且在我的高中时期已经有比较成体系的竞赛培训机制和现代化机房以供平时练*,可以说是硬件条件十分优越了。而在个人条件方面,虽然我在前文中提到当时对计算机比较感兴趣,但实际上更多的是心理上的而并没有付诸实践(如果打游戏算的话那实践的倒还挺多的),与博客I的博主经常自己“鼓捣”存在较大的差距。

1.2 计算机是你喜欢的领域吗?是你擅长的领域吗?你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?

​ 计算机是我喜欢的领域吗?这个问题若是放在高中,我会毫不犹豫地回答“是”,因为计算机比枯燥的高中课程要有趣太多。若是放在大一,我也会毫不犹豫地回答“是”,因为电子信息、自动化等领域可以称为是我梦魇一般的存在,避之不及。而如果让现在这个已经在此领域内学*了*两年的我再来回答这个问题,我却会多几分迟疑。要说喜欢,我个人确实对精密而复杂的系统有一种天生的兴趣,计算机大多也符合这一特征,且在学*计算机的过程中解决的一些问题也实实在在给我带来了一些成就感,让我很难说不喜欢。可要说不喜欢,平平无奇的绩点,看起来不那么明朗的未来,都会使我产生一种不确定感,难以言表对计算机到底怀着怎样的情感。但所谓“船到桥头自然直”,在计算机学院学*的这几年内,我当然会继续抱着热爱的态度,努力提高。

​ 至于是否擅长,我想我自己并没有评判的资格。就现在而言,我对计算机相关领域和知识仍知之甚少,在广度和深度上都远远不足,在这种基础上妄谈擅长与否,怕是会见笑于大方之家。

二、在计算机系里学*

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

​ 关于想要吐槽的地方,首先就是学校的大类招生政策。诚然大类招生能够让刚刚结束高中学*而对大学里具体专业不太熟悉的学生多一年的时间用于比较与权衡,也能使得大一学生在没有分具体专业时有机会接触到各个专业的相关课程,具有一定的积极意义,然而我认为我校的大类招生政策似乎有些偏离本心。

​ 在我看来,我校大类招生的首要问题便是大类规模过大,以信息大类为甚,从电子到计算机、从自动化到网安,更不论即将新开设的各式专业和即将转入信息大类的仪器光电,过大的大类规模造成了广而浅的课程安排, “广”使得大一的同学们对各专业的接触流于表面,难以找到自己的兴趣所在,“浅”使得升入大二后部分同学在专业素养上没有得到有效的训练,因而有较大的欠缺。以信息大类开设的数据结构课程为例,数据结构本是计算机能力的一大基础,其具有极高的理论基础和广泛的应用领域,应该为每一个计算机专业的学生所掌握,然而,该课程所涉及到的内容过于浅薄,且在我看来有些“不求甚解”之味,与计算机学院大三开设的算法设计与分析形成了鲜明的对比,算法一课不仅涉及广泛,更重要的是其往往关注算法是如何一步步想到的,而并非机械的记忆或背诵,从这种意义上来说对个人专业素养的发展大有裨益。限于篇幅,对大类招生的其他吐槽不再赘述。

​ 虽然有戏言(也可能不是戏言)称“大学就是大部分时候在自学”,但就算如此,我认为提供高质量的教学也应当是大学教育的基本要求。虽然这篇文章中提到“学生有时候是很目光短浅的群体”,但作为一个真实参与了上课过程的本科生,我仍认为学校的部分课程在教师的教学方式上有待商榷,照本宣科、念PPT等行为层出不穷,我想是每一位学生都不愿意看到的。我校杨小远老师所教授的数学分析内容晦涩难懂而台下座无虚席,某些课程内容重要而学生怨声载道,我不认为这是一句“学生有时候是很目光短浅的群体”就能够解释的。博客B中博主对朱仲涛老师课堂的描述不仅使他感到“震撼“,也使我感到”震撼“,我认为这是我国大学教育应该努力的一个方向。

​ 其次,我认为理想的大学教育应给予学生充分的时间和广阔的平台。刚刚结束高中压抑限制的学*生活,应当拓展眼界,广泛涉猎,以求更好了解自己,为将来规划方向,而不是迷迷糊糊地马上又陷入到特定知识的学*中去,因此我认为大学提供的这两点资源尤为重要。在这一方面,我认为学校已经达到了基本要求,虽然大类招生使得课业有些繁重,但自由时间上整体而言是可以接受的,学校、学院、前辈们也都从各个方向提供了广阔的平台以供使用,符合了同学们的预期。

​ 至于国内大学和国外大学,目前来看当然是不可能做到一样的。在我看来,我国数千年以来的“官本位”思想仍在影响当代人民,使得从某种意义上来说升入大学的学生似乎有点太多了,而要想在大班教学中贯彻各种教学原则,提供高质量的教学,其实是对教师提出的一大挑战。目前我国大学中教授本科生课程的老师大多同时是该专业的学者,整体上教育学知识较为缺乏,且有限的精力还需分配给自己的科研任务,亦或是研究生等的科研情况,分身乏术,出现了矛盾。当然,值得一提的是,我院的部分课程在老师和一代代助教的共同努力下正在逐渐向好发展,教学质量也在不断提高。计算机组成原理和面向对象设计与构造等课已经具备了“要求明确、目标清晰、难度适中、及时反馈、严格要求、准备充分、互动频繁、教学时效性强、良好的人文关怀”等博客N中提到的明显特征,此类课程在同学们口中也是对自己专业素养发展大有裨益的好课。

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

​ 在高中NOIP阶段,前前后后应该刷了*百来道题,加之大一学*C语言和数据结构过程中完成的各类作业,就算法和数据结构题目而言,若按每题 \(60\) 行计算,共约 \(9k\) 行。

​ 此外代码量主要集中在各课程的课程设计亦或是大作业中,具体如下:

项目 内容 代码量
计算机组成原理课程设计 使用 Verilog 实现了支持50条指令和基本异常中断的五级流水线 MIPS 体系结构 \(3k\)
面向对象设计与构造课程设计 四个单元的面向对象训练,主要项目是多项式求导和多线程电梯调度 \(4k\)
编译原理课程设计 使用 C++ 实现了从类 C 文法到 MIPS 指令的编译器 \(4k\)
数据库原理课程设计 基于 VueFlask 的前后端分离的Web项目,主要负责前端 \(2k\)
其他 主要是 python \(2k\)

​ 总计约 \(24k\) 行代码。

​ 从代码量上来说,最复杂的项目应该是数据库原理课程设计中所实现的分别基于Vue和Flask的前后端分离的Web系统设计,然而从思考难度和实现难度上来讲,我认为最复杂的项目是编译原理的课程设计中所实现的类C文法的编译器,在该项目中,我分部完成了词法分析、语法分析、语义分析、符号表建立、错误处理、中间代码生成、目标代码生成等模块并加以集成,实现了前后端分离的编译器架构,取得了较好的效果。

2.3 科班出身和北大青鸟有什么区别?速成的培训班和打基础的大学教育还有Mooc之间有区别吗?

​ 这个问题让我想到了我学*驾驶技术的经历。现在的驾校教学往往都只停留于表面,主要教导学员“看点位”,以通过驾照考试为主要目的。有幸的是,我的教练是我父亲的同学,在平时的教学中对我更加上心,在记忆死板的点位之外更为我普及机动车的基础知识,告诉我离合器到底是怎么工作的,告诉我每一个灯光为什么要这样打。因此,虽然我不幸挂了一次科目三,可当我拿到驾照的那天我就敢于开自家的车上路,至今已经安全驾驶了*千公里。而我的母亲选择了另一个驾校学*自动挡,虽然她一次性满分通过了驾照考试,但时至今日她仍然不会驾驶,面对现实的复杂交通情况往往手足无措。

​ 科班出身与北大青鸟等速成培训班的差异便在于此。诚然,培训班里培训三个月的学员很有可能比现在的我对于一些常用前后端框架了解的要多的多,但这就像在驾考过程中记下的点位,虽然能够极大帮助通过面试,但若面对某些真实的复杂现状,面对日新月异的计算机技术,很难说培训班的学员能及时适应这种变化。

​ 数学分析、线性代数、概率论、计算机组成、操作系统、计算机网络,这些最底层的内容恰恰构成了计算机科学的基石,如若对这些内容有较高的熟练程度,则可以预见的是当新的语言、新的方向、新的框架出现时,才能更好地适应新内容,更好地适应计算机科学当下的发展趋势。这与博客G博客F中的一些观念不谋而合。

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

​ 关于线性代数和概率论等课程,我从来没有,将来也不会有对其重要性的任何疑问。很难想象一位理工科专业的学生没有基础的数分、线代、概率论等知识,更何况“计算机科学与技术”这个专业名中还含有“科学”二字。数学课程不仅是很多专业课程的基础,还能极大锻炼人的理性思维,对专业素养的发展大有裨益,其重要性不言而喻,勿需多言。至于学校开设的一些其他课程,总体而言从开设目的和内容来看都是有益的,只是部分课程的讲授方式、考核方式等有待商榷。

三、未来规划

3.1 对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?你对于实现自己的梦想已经做了或者计划做什么样的准备?

​ *年来计算机技术的不断快速发展已经成为了不争的事实,然而若抛开我计算机专业学生的身份,站在一个社会普通民众的角度来看,这样的发展似乎只带来了越来越多的短视频APP和越来越多的广告,很难说新的技术对生活产生了什么切切实实的正面影响。越来越多新的idea的涌现,却难以对普通人的生活产生一丝一毫的影响,我认为这是一件很令人惋惜的事情。在家乡的大数据局实*的过程中,面对部分机械性的庞杂工作,数行代码就能帮助我轻松又迅速地完成相应的任务,而其他人仍重复于手工作业之中,将自己陷于低效的陷阱之内。因此,我认为计算机科学远远不止前沿技术的发展,如何将想法落地、如何切实帮助当下的社会生活也应是一大需要思考的问题,我认为,投身于这一方向的研究与实现,也是一件富有成就感的事。此外,受父母亲的影响,个人不太能接受目前互联网行业盛行的“996”风气,将来是否会从事这一行业仍犹未可知。

​ 就目前所做准备来看,首先希望能够继续深造,因此在做考研的相关准备。此外还打算去多种不同类型的企业进行实*(目前已有基层政府机关和中船重工的实*经历),了解各种可能的企业环境和工作方向,以期找到符合自己理想的环境。

3.2 你们马上就要面临实*了,你打算在企业内实*还是在实验室实*?实*经验究竟有多重要?是否需要马上开始积累实*经验?

​ 就几次参加冯如杯的情况来看,个人感觉自己并不是很适应实验室科研的方法和节奏,或许是没找到窍门,或许是自己根本就不适合,因此比较倾向于在企业内实*,用真实的需求驱使自己不断学*。实*经验当然是非常重要的,在实*过程中可以接触到在校学*过程中接触不到的交流技巧和组织架构等内容,但是否需要马上开始则依据个人具体规划而定,或许没有必要显得那么着急,也没有必要为了实*而去实*。

posted @ 2021-03-10 19:16  Gottfriede  阅读(162)  评论(4编辑  收藏  举报