Loading

听说软工要开始了,所以我来热个身(* ̄3 ̄)╭

项目 内容
这个作业属于哪个课程 2021春北航计算学院软件工程(罗杰 任健)
这个作业的要求在哪里 Here it is.
我在这个课程的目标是 1. 体验体系化、规范化的软件工程实践流程。2. 锻炼码力。
这个作业在哪个具体方面帮助我实现目标 1. 从需求分析到发布维护的完整教学流程。2. 项目规模的要求。

Pre 大学生还需要上课认真听讲吗?

阅读Scalers:大学生上课为什么一定要认真听讲?后的,我产生了一些想法。

我赞成的

首先,我认为大学生还是需要去上课的,即使是在教室里坐着。

Scalers文章中主要强调的是大学生在课堂上要认真听讲,但其实现在大学课堂还有一个更普遍的问题是出勤。我本人算是一个从小到大的乖乖女,基本没翘过课(因为怂,怕被发现),曾经就有同学这样问我:

“你一定要去上课吗?”

现在大学课堂里老师的教学质量参差不齐是常态,但我认为,任意一个能够在大学校园(至少在北航)里站在讲台上教学的老师,按一个成年人平均语速150字/min,教课内容平均30字/句,也就是450句/90mins,450句话不可能没有一句是有用的。

这里的有用,不一定指教学内容的传输,也可能是具有丰富人生阅历的老师的一些闲聊对学生的启发。我始终记得刚上大学时一位老师说过的话:“我不指望我教的东西你们都能接受,但希望我能给你们埋下一颗种子,等几十年后说不定哪天,你们会突然意识到,当年我说的居然还有点道理。”

所以呢,课堂还是要去的,万一哪句话进了耳朵里就不出来了呢?

我存疑的

那么,大学生真的有必要认真听讲吗?我觉得有时并不一定。

我其实也认同Scalers说的,老师的水平不能由学生自己下定论。但若是老师讲的东西确实不能进入学生的脑子(可能是难度过高、或者可能是思路与某些学生的思考方式相悖),再认真听也听到的不是我们能接受的东西,那何必为难自己呢,不如自己翻翻书来的实在。说到底,有些老师提供的思路并不能适配于所有的学生,如果你发现自己属于不适配者,那就另辟蹊径吧。

我有如上结论,也是因为自己有努力尝试并失败的经历。所以,这个问题我觉得不能妄下结论,还是得学生结合个人和老师的实际情况敲定。

第一部分:结缘计算机

我为什么选择计算机专业?

首先,我一定是会选择工科的。本人一直对理工课相对偏爱,而且父母都是工科出身,所以我从小就有一种把我们家打造成工科世家的执念。听上去挺幼稚的,但这种童真也挺有意思。

后来为啥来北航呢,其实这一路也挺波折的。本来自招了国科大,但不太想直接搞研究,而且国科大本科生不多,感觉可能不够热闹,就没去。后来又自招了港大,结果拿到的加分只有数学上140才能用,好巧不巧高考数学考砸了,就没去。后来又自招了港科大,来北京参加面试的时候顺便进了一次北航,看到了新主楼,哇好漂亮好大气,是我喜欢的建筑风格,然后刚面试完就决定裸分普通批来北航了。

后来为啥要选择计算机呢,因为高考看成绩进了信息类,大一结束看成绩进了计算机,好像没啥其他理由。

没错我就是这么随波逐流没有主见地来了,但我并不觉得这种方式不好。

你认为你的条件如何?和这些博主比呢?

硬件条件

要是看生存环境的话,我觉得我的条件还是比一些博主优越一些的。从这位博主的学习生涯中,我看到了前辈从小山村摸爬滚打进入计算机行业的励志过程,仿佛有一些我父母的影子,上个世纪的大学生们大多没有很良好的基础教育条件,大学四年对于他们来说比我们现在要珍贵的多。

当然,这位博主的条件显然就比我要更好一些了,初中就拥有属于自己的电脑,高中就能遇到志同道合的人一起研究计算机技术,真是令人柠檬。

个人条件

就我个人的脑子而言,我觉得我的条件不如大部分的博主,这就得从我饱含泪水的中学生涯说起了。

刚上高一的时候,学校选拔数学竞赛的苗子,全班50个人去了40个,只有两人没过笔试,其中就有我了。虽然后来发现,我的考试成绩在前列,数学也成了我当时最强的学科,但我还是精准地意识到了一个问题——我不聪明。当时的选拔考试涉及的很多内容都很灵活,有些需要当场学习并当场使用,显然我的脑子转的不如大多数同学快。后来的考试都是上课教学过的内容,我有时间学习、复习、练习,因此才没有吃亏。

后来学校又选拔信息竞赛的苗子,我没有任何编程经历,就别谈去参加了。

上大学后,由于我没有编程底子,程设课毫无悬念地上得很艰难,刚开始上机的时候经常在后几百人晃悠,甚至吊车尾,我下了很大的力气练习,最后才有所进步,但也不算非常理想。

直到后来学习了计算机学院的专业课计算机组成,我学得居然挺顺利,我才发现小时候的编程基础其实并不会对于计算机专业的学习造成太大影响,说到底计算机专业并不是我曾经想像的只有算法。在CO,OO,OS这些课上,我和大家站在同一起跑线,我才渐渐有了信心。

从小到大,我一直的特点就是不偏科,说好听点叫全面发展,但同时也代表了我没有哪个方向很突出或很感兴趣。因此,我一直特别羡慕偏科的同学,就比如这位博主对于英语和化学的极致热爱。我身边的很多大佬,虽然某些方面相对薄弱,但都能找到一个自己能做到极致的方向,我觉得这是铁饭碗呀,这是闪光点呀,这多好。

计算机是我喜欢和擅长的领域吗?

都不是。

  • 我不爱学习,所以任何学习相关的领域,目前没有我喜欢的。

  • 因为没有喜欢的,所以也没有擅长的。

  • 我个人特点:擅长的才会喜欢。

因此,这仿佛对我来说是一个闭环,我必须要逼迫自己把某个领域坚持干到擅长才可能培养出我喜欢的学习方向。但是,正如这位博主所说的,我认为我现在学到的技能都偏机械,不够灵活,我并不懂计算机,因此至少到目前为止,我不敢说计算机是我擅长的领域。

但我本人还是持乐观态度的,毕竟我还有时间摸索我擅长和喜欢的方向,因此目前把眼前的事做到最好就ok辣。

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

你对你的大学生活有什么想要吐槽的地方吗?

其实还好,我觉得最该吐槽的是一些行政部门,但显然这略微有点偏题。

硬说的话,我觉得有些课程的安排略微有点一言难尽,比如《数学建模》。数学建模,多美妙的课题,多重要的技能,为什么要让这种课败它的好感呢?把纳什均衡的定义贴在老师脸上了老师还不承认自己课件中的定义有误。还有就是全校公选课的评分不公平性吧。《航空航天概论》作为北航所有学生的必修课我认为是合理的,但几十位老师没有统一的评分标准,在没有统一考试、仅靠论文评分的情况下,导致同系两班之间的平均分相差甚多,这课还算保研,着实让我和我们班的其他同学产生了不少困扰(19级开始好像航概6系改成一位老师一起教了,说明该问题之后应该不会存在了)。

你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?

  • 有一定的难度
  • 给予学生足够的自由
  • 四年英语课不断
  • 具有良好的教学设备和校园环境
  • 理论实践相结合,或者能让学生选择理论性学习or实践性学习(工科)

跟学校给你的有什么区别?

  • 核心专业课都有一定的难度,但大一的部分基础课难度略低,导致后期需要使用数学知识的时候略感吃力。
  • 6系的自由度我觉得算比较好的,因为我们自选的一般专业课学分占比很大,可以选择自己喜欢的方向。
  • 这个显然没有做到,英语只能靠自己课外时间吊着,但我们又能有多少课外时间呢?我觉得这种不会立竿见影但十分重要的技能,需要强制性安排时间学习才能不让它被人们遗忘。
  • 我认为北航的教学设备和教学环境还不错,但吃出青蛙的食堂emmm...
  • 理论与实践相结合在6系的专业课中体现的淋漓尽致,但让学生自选侧重点目前不太现实。有的人动手能力很强,但问他理论相关他可能并不知道;有的人理论逻辑一流,但可能并不擅长动手写码或者实现。二者都想做到极致实属不易。

比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?

整体来看,不能。

首先有很多客观因素限制。中国的人口密度在这里,师生比例基本不可能达到国外大学的水平。国内大学多属公立,学生上缴的学费很少,和多属私立的国外顶尖大学形成鲜明对比,国家能给予的教学资源(人力、财力)就这么多,一平均,每位中国大学生能享受到的教师资源、教学设备会相对少一些。

其次,我觉得中国的基础教育和高考制度已经把大部分进入中国大学的学生塑造成典型的”中国学生“,具有基础扎实但创新和动手能力偏弱的整体特点,想要在大学直接套用国外的教学模式也不太现实。

本人也有过一小段时间的交流访学经历,而且我所在的高中出国比例很大,导致我身边最好的朋友们现在遍布欧美加澳日新...(好像只剩我自己还在国内混)。通过自己的经历和跟他们的交流,我发现国外的大学整体授课难度高于国内,无论是理工科对于代码能力、建模能力的要求,还是人文学科paper、考试的密度都很大,有位UCB的同学期末数学考试竟然连考6个小时(从上午连续考到下午)。但同时他们在学习过程中对于成绩的追求心远小于我们,很多人都在以及格为目标,而且及格确实也已经足够让他们有出路。对比我们现在下90就算差的整体状态,确实还是风格迥异的,但到底哪种方式更好,我也难以下结论。

虽然整体做不到,但我能感受到有些老师、有些教学细节中存在着模仿国外顶尖大学教学方式的影子。正如这位博主提到的清华大学朱仲涛老师的“数据结构”课,还有我自己学过的计算机组成课,都能感受到老师吸取国外大学教育优点,并传输给我们的苦心。

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

大一基本就算没写过大的,规模最大的就数据结构的大作业。

大二CO大约2000行左右,OO大约4000行左右。

OS基本没多少,yysy我也没学明白,不好意思算进来。

大三比较多,编译器4000~5000行的样子。数据库大作业、Ruby大作业大部分都是框架代码,且具有很大的重复性,实质一行一行敲出来的也不算多。

其他的专业课大作业,或多或少也写过一点,但都没啥质变。

最复杂的应该是如下这俩:

  • 编译器,码量大,而且从0开始自己搭建,除了递归下降,优化部分码量占比也挺大的。
  • 数据库大作业,第一个web开发完整项目,我主要负责后端实现。

这么看来,还真是没写多少(#°Д°)。

科班出身和北大青鸟有什么区别?

我感觉这个区别可以用非常通俗的一句话来总结:做计算机的和用计算机的。对于北大青鸟,或者一些高职院校学习计算机技术的学生,我们某些软件,或者开发框架的使用并不如他们熟练,这是因为科班选手会将很大一部分精力放在更加底层的实现上,包括计算机是怎么组成的、操作系统是怎么一回事等等,二者对于计算机技术的涉猎重点的所在层次有所不同。

第三部分:未来规划

对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?

正如我前文所说的,我目前没有擅长的领域,也没有什么喜欢的领域,所以最近的梦想大概就是找到自己今后适合做什么吧。毕竟,清晰的目标比盲目努力重要,深入的思考比低水平重复重要。

我本人是没怎么在学习上踏出过舒适圈的人,跟着学校的教学大纲一步一步走一直是我逃离困难的方式,所以本来的想法就是毕业之后找一个安安稳稳的重复性工作,或者如果有幸获得一定资本后创业干一些其他的事情。

直到去年暑假,我由于工作原因,开始进行系统运维的工作,我才深刻地意识到自己目前所有的计算机知识是多么的有限且不足。在学长的指导下,我陆陆续续接触了许多不存在于课堂的知识,也感受到了从恐惧到快乐的刺激感,或许搞点有挑战性的东西也未尝不可。

本学期的许多课程都和网络方向相关,我也自选了一些网络攻防方面的课程,希望通过本学期的学习摸索一下自己对于网络安全方面是否有可以继续学习的兴趣和能力。

你对于实现自己的梦想已经做了或者计划做什么样的准备?

首先就是多个领域的涉猎。比如正在搞理财管好自己的小金库;上咖啡课学点小手艺;好好学英语并保持语感;还有个癖好是闲的没事干喜欢背各个航空公司的图标、简称啥的,等等等等....。

然后就是多尝试一些挑战性的工作,参加点比赛啊,当助教啊之类的。

还有多多向父母长辈取经,多向学长学姐和朋友了解各种不同出路的优劣,拓宽自己的选择面。

最重要的当然是保证健康的身体,合理地运动,还要保持干净精致,时刻注重自己的形象。

哦对了,还得准备敲门砖——gpa。

你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?

我倾向于在实验室实习。

本科阶段的专业课感觉涉及的知识都比较浅显,如果我进入企业进行开发的重复性工作,就仿佛把我的路子定在了应用方面,科研估计就要与我say bye了。虽然我不确定自己能否对实验室的科研工作产生兴趣,但是尝试一次的机会我认为还是应该给自己的。

结语

感谢老师和助教的精心设计,让我在开课前对于自己目前人生20余年和计算机的羁绊进行了梳理,希望本学期的软工课能学得开心ε=ε=ε=( ̄▽ ̄)

参考资料

posted @ 2021-03-07 12:05  圆*  阅读(734)  评论(24编辑  收藏  举报