软工第一次阅读作业
软工第一次阅读作业
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2021春季软件工程 |
这个作业的要求在哪里 | 第一次阅读作业 |
我在这个课程的目标是 | 成为一名真正的软件开发者,提高工程能力 |
这个作业在哪个具体方面帮助我实现目标 | 审视自我,规划未来 |
正文
一、结缘计算机
你为什么选择计算机专业,你认为你的条件如何,和这些博主比呢?
我与计算机的第一次相遇大概就是在5岁的时候(大概吧,只记得当时上幼儿园小班),家里购入了一台电脑,接触电脑也是从游戏开始,并没有和博客I的博主一样,慢慢的去研究各种系统,各种编程语言,去写一些很有意思的小项目。当时完全没有这样的意识,就是喜欢玩,顶多就是五六年级的时候写过一些游戏脚本,这可能就是我第一次类似编程的经历了。
初三的时候,当时通过我在另一个中学的朋友知道了他们学校在组织初中生学习编程,参加信息奥赛,我一听奥赛就觉得很厉害,于是跟朋友借了本书也开始自己学,那本书是谭浩强的c语言教程,最近经常在网站上看到有人在喷这本教材,不过正是这本他人眼中不怎么优秀的教材领着我入了c语言的大门,不过那时也就坚持了一个月就因为中考放弃了。
高一的时候,信息老师进入班级宣传信息奥赛,我就跟着去学习了,开始接触传统算法。学了两个月之后,我通过了校选取得了参加奥赛的资格,并且拿到了省二,这样的成绩在我老家那个教育并不发达的地方算是一个比较优秀的成绩了,当时我在学校也是小有名气。也正是有了这样的经历,我逐渐对真正的计算机感到好奇,并且产生了许许多多的疑问,我们写的代码是如何交给硬件这样的实实在在的东西去计算的?当我们在绚丽的图形化界面操作的时候,计算机底层都发生了什么?显卡是如何将如此多的信息展现在我们的屏幕上的?硬件驱动究竟是如何做到软硬件交互的?所以我在填报志愿的时候,没有什么犹豫,基本选择的都是计算机相关专业,当时北航信息类也给了我三十分的加分,所以就在高考考砸的情况下还是顺利进入了北航信息类。进入北航后,我加入了校ACM集训队,在专业分流时也是有惊无险的进入了计算机学院。
相比那些从小就接触学习研究dos,basic,数据库等等的那些博主,我觉得不仅仅是小时候,比他们缺少了那些学习意识,更可能的原因是时代问题,在我们成长到拥有主动学习的意识到时候,计算机的黄金时代早就来临,易用性已经大幅度提升,学习计算机已经走进千家万户,并不需要多高的技术水平,也不需要学习多么深奥的知识,就能近乎完美的操作计算机,网络也更为发达易用,纷繁复杂的网络世界也容易迷花人的眼,这也就相比以前,减少了学习计算机专业知识的机会与兴趣,基本将计算机作为了娱乐机器使用。博主I的第一台计算机还是386,4M内存,而我们家的第一台计算机就已经是XP系统,奔腾4。
计算机是你喜欢的领域吗?是你擅长的领域吗?你热爱这一专业吗?你对这一专业的热爱仅仅是口头的吗?
大概是我喜欢的领域吧,计算机可能是最符合我的思维方式的一个领域了,相比其他领域而言,计算机也是我相比其他科目更为擅长的领域。喜欢不等于热爱,热爱这个词太大,可能还需要更多时间的考验,而且我接触的关于计算机的方面实际上非常有限,基本都是基于计算机的底层以及平时写写算法题,科研方面刚刚开始接触,工程方面甚至几乎少有接触。所以更有可能的是,这个喜欢实际上是擅长表现出来的假象。我们接触的人与事都还太少,当我被越来越多的人在相关领域吊打,我在其他领域有更加擅长的事情的时候,可能更能看出计算机是否是我真正喜欢的领域。
二、在计算机系里学习
你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
想要吐槽的地方还是有很多的,例如薛定谔的培养方案,永远处于不确定态永远不知道下学期培养方案有多了什么新的解释,也不知道自己这学期上的一些课,到毕业的时候到底算不算进毕业要求的学分。还有一些毫无意义(在学生狭隘视角下得出的结论)的必修课:航概,基物实验(非常幸运成为上下2年唯一逃过一劫的2018级)。还有一些课程:职业规划讲座,学科前沿技术讲座,这两个前者是在大二上学期开设,后者是在大三下学期开设,我一直觉得这两门课的时间反了。学科前沿这门课还是要尽早去上,在学生刚进入专业学习时,就能了解到他们以后大概率会做些什么,有什么方向,这对学生在课堂之外的学习具有很好的指导意义,等到大三下再开设,同学们已经在本专业混了快两年了,平时的耳濡目染以及一些实验室项目,大概率已经带同学们接触过相关方向,此时再开展这门课,结果显而易见,不会有多少人认真听的。职业规划讲座,讲得太早,同学们对自己的行业和未来都没有什么概念,虽然课堂上会有一定的讲授,但是还是感觉得首先有一个切身体会,切身需要,才能更加的以更认真的态度对待这些课程。
我们的专业课还是很有水平的,各种课程设计都很硬,也极大的锻炼了我们的能力。不过就是觉得这些课程可能和未来我们可能做的最多的开发关联不大,这也是我希望的,在软件工程这门课上真正的完成一个完整的工程,真正的写出一个可以叫做软件的东西。
关于我心目中的大学,我觉得它应该活动丰富,我觉得它应该有一个更加浓厚的基于兴趣引导的选课氛围,而不是一些毫无意义的必修课以及一种基本以给分为导向的选课氛围。因为保研gpa以及个人精力的原因,我们往往会选择一些给分高的课,而不一定是我们感兴趣的。在现实这种资源极度有限的情况下,只能首先选择内卷,选择gpa,这也是没办法的事情。
关于能否和国外的大学一样:显然是不能的,中国大学人太多了,资源太少了,做不到国外那种小班教学,也无法达到人家那样的课堂效果。像博客N中所说的那种课程也不太现实,我们的课程太多了,资源太少了,没法做到像这样的要求。
迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
大学近三年我所写的算法题包括编译作业在内的.cpp
文件,目前保留在我的电脑上的是72774
行,高中时写的算法题因为文件遗失以及当年所用的oj如codevs等已经停止服务,所以暂不可考,估计也在七八万行上下;包括OO,Java大作业,数据库在内的.java
文件是9045
行;包括计算机组成,智能计算体系结构作业在内的.v
文件是6204
行。其他的包括一些cv,建模等.py
文件是5120
行。加起来总计约十几万行。
最复杂的项目也就是编译作业了,多次迭代开发,完全自己来进行架构设计,使用cpp面向对象。由此可见我虽然写的代码不少,但是没有什么正经项目,所以在工程开发能力上还是十分欠缺。
学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
没有,在我眼里,计算机一直都是以数学为本,绝大多数的相关算法与科研都需要使用线性代数和概率论相关知识,尤其是我最近在看神经网络的相关算法,十分后悔概率论学习的不够扎实。
对于其他的学科,确实有这样的疑问,比如我们的各种物理课程,我确实有这样的疑问我们为何要上这些课程(本人大学以来物理成绩非常不好),貌似只有图形学相关研究可能会用到这个。在网上找相关的解答,大部分的支持者的基本要点都是:物理是通识教育,是所有理工院系的必修课,用以提高人的综合素质。个人还是觉得这个理由略显牵强,把这句话中的物理换成其他的理工科目这句话都是成立的。
三、未来规划
对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
大概从事CV领域相关研究或者是相关研究成果的落地。这是一个很需要创新的工作,我对创新是既向往又恐惧的,觉得这种事情是非常难的,需要大量的积累与转瞬即逝的灵感,所有在某些方面我认为开发岗更加简单一点,但我是个喜欢稳定的人,更害怕被淘汰。
我对自己具体对哪个方向有热情有能力有信心实际上依然是不清楚的,我也希望能拓宽技术栈,多多尝试不同的方向。
目前还是准备读研,不急着全职工作,一方面可以让我又充足的时间尝试不同的方向,
你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
已经在企业实习了,目前再做视频编解码方面的网络的量化。之前我也尝试过实验室(也可能不算实验室,就是跟着老师干活),就我自己的感觉企业往往有比较成熟的技术积累与带新的经验,并且总能推出一些任务推动你的学习和发展,实验室的话,不知是我的原因还是老师的原因,总觉得缺少一点推动力,我本人更适应一种任务驱动型的学习方式。