Loading

软件工程-个人阅读作业 #1

项目 内容
这个作业属于哪个课程 2021春季软件工程(罗杰 任健)
这个作业的要求在哪里 个人阅读作业#1
我在这个课程的目标是 掌握并实践利用软件工程方法构建大规模高质量应用的技术,提升自身工程能力
这个作业在哪个具体方面帮助我实现目标 了解行业及个人,明确未来规划,更好地在计算机领域内进行学习

Part 1: 结缘计算机

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

其实从小学开始,我就觉得计算机很神秘,想要去了解它。家里的第一台电脑是2006年安装的,应该也是国内较早连通网络的。至于用途,当然是打游戏居多。至今仍然记得顶着56Kbps的网速下载游戏的煎熬(溜)。后来慢慢接触到了Cheat Engine这个软件,一开始跟着他的教程改数值,尽管不明白原理但还是能用,后来进入到汇编的修改,就完全搞不懂了。当时觉得非常神奇,只是改了几个英文字母,就能有这样的结果。也许是当时看到了电视里的“黑客”,也想要那种敲几行代码就实现一切的感觉(笑),于是开始真正想要了解计算机的原理,想要进入计算机系。上了高中断断续续看了一点很浅的C语言(拖延症实锤),看计算机根据我的指示完成不同的任务确实是件非常有成就感的事。

再往后就是大学的学习了。因为我校大类招生,在大一结束时要进行专业分流,而计算机系是大热门,基本上最前面的所有人都会选,因此大一的时候我更多的是在“恰分”,生怕无法进入计算机学院。最后算是以一个相对中间的名次进入了计算机学院。

相比博客I的博主,我相信很多人不太可能在中学阶段拥有比他更好的条件了,而我也不例外。相对应的,作为计算机系学生,在进入大学后,我们的条件是远远好于博主的。而且如今学习资源的获取也比早年容易更多,因此我认为我的学习条件是相当好的。

1.2 计算机是你喜欢的领域吗?是你擅长的领域吗?

计算机确实是我喜欢的领域。这种话换在大一,我是断然不敢说的。但是,经历过几门专业课的洗礼,在经历过挫折和困难后,我仍然觉得计算机很有趣想要学习,这应该可以作为喜欢的依据。至于擅长,相比于自己的其他技能,在经历的多年的学习后,自然是要更擅长一点的。

Part 2: 在计算机系里学习

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

大学生活想吐槽的地方确实有不少,但是细细想来,其中一大部分还是个人的努力可以解决的,而我没有去做。我个人怨念最深的其实是学校的大类招生,让我大一一年的时间大部分心思都放在了如何得分而不是如何学会上;而大类的一年也导致专业课内容的压缩和时间的紧张。我个人是有点迷信“黑书”的,因此经常能感觉到专业课内容偏少,但是自己去看书时间也很有限。当然,正如博客D中所说,学习主要还是得靠自己,我个人的原因还是占大部分的。但我总忍不住去想,如果能稍微多一点时间的话,会不会更好。

我理想中的大学教育其实要求并不多,主要是高质量的教学和良好的人文关怀。当然,在庞大的人数下,想要做到和博客N中作者所述的国外高校那样对每个学生的关照显然不太可能。然而,即使在教学质量上,我认为还是不能让人满意。尽管Scalers:大学生上课为什么一定要认真听讲?这篇文章中提到,老师的整体水平还是优于学生,且课程有用无用不是一个大学生的格局能判定的。但是,教学质量的标准在于老师的水平有多高,而是学生能接收到多少。作为学生,我们可能无法评判一个老师整体水平的高低,但是对于自己听讲效果的评判还是可以做到的。在这种由于各种原因导致的听讲效果差的情况下,我觉得与其强迫自己去听,不如开始自学,特别是我们计算机专业,有很多经典书籍一步一步引导我们的思维。当然,大多数情况下,老师是会认真准备的,认真听讲一定会有收获。

很难做到良好的人文关怀,原因是人口基数大,学校自然难以顾及每一个人(当然,我也不认为学校在其能力范围内做得很好,这就是另一说了,也许校领导会有什么别的理由吧);而教学质量方面,我还是认为,老师的准备很重要。老师们也有科研等任务要做,本科生教学只是附带,是否用心准备就要看老师了。事实上,除了几门专业课,大部分课我都感觉总是不那么“酣畅淋漓,圆润如意”,听的过程会比较费劲。相比之下,反而是疫情原因在线上学习的,全体课程组共同制作的网课体验最好。

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

项目 语言 代码量 说明
程序设计基础和数据结构 C/C++ 4000行 大部分是60行以内的小片段,还有一个300行左右的大作业
计算机组成原理课程设计 Verilog 3200行 其中一部分是测试代码
操作系统课程设计 C 200行 看的代码居多,真正写的并不多
面向对象系统课程设计 Java 6000行 包括测试程序,可能是代码风格不好的原因,总是写的比较冗长
编译原理课程设计 C++ 5000行 架构很差,写的不太好

编译原理课程大部分是相似成分在不同层次上的重复,最复杂的项目是OO的电梯调度吧,大概有2000行左右。电梯调度有大量的实体,想要拿到最优的策略,就需要了解仅可能多的实体的内部状态,而这又与面向对象的原则和理念有一定冲突,这里的权衡是最困难的点。

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

2.4 速成的培训班和打基础的大学教育还有mooc之间有区别吗?

这两个问题可以一并回答。我认为,所谓的区别在于,计算机的思维方式。需要注意的是,并不是科班出身就一定有计算机的思维方式,而北大青鸟没有。但是,培训班注重“速成”,对一个知识的形成过程经常会省略,因此就很难培养出计算机思维方式;而基础的大学教育和MOOC关注知识的形成过程,老师也会有意识地引导学生的思维方式。当然这也不绝对,毕竟学习最重要的还是看个人。

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

确实,我曾经有过,但现在已经有了解答。一开始我以为,线性代数和概率论和人工智能相关,而工科数学分析是他们的基础,那么只要我避开这些领域,就不用在意数学了。然而事实是,计算机最重要的问题,计算的本质,正是数学的范畴。无论是算法效率的优化还是系统结构的设计或者系统安全的证明,都离不开数学。尽管不是大一学的三门都有用,但是对应的数学思维可以在学习对应领域时让人事半功倍。现在自然是尝到苦头,开始拾起来过去落下的东西。

Part 3: 未来规划

3.1 对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?(必答)

我的梦想是进入一个可以专心技术的公司,做自己感兴趣的方向。目前的方向大概有两条,一条是嵌入式部分的软硬件结合方向,另一条是计算机安全方向。其中计算机安全方向我一直没有机会去尝试相关内容,因此还不敢说自己只是盲目的好玩还是真正的兴趣。

技术道路上,在大学毕业前尝试一下计算机安全方向,然后做出自己的决定,在纵深方向研究。

职业道路上,我计划在毕业后考研,之后才是正式的就业,在这其中进行数次实习。我并不计划进入国企、事业单位,而是希望在私企或者外企等技术氛围更浓的地方。

社会道路上,我暂时没有想好,但是希望能用自己的技术为开源项目等做出贡献,写出帮助他人的代码。

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

我已经选修了数门硬件方向的一般专业课,担任了计算机组成原理课程设计的助教并计划参加相关竞赛。计算机安全领域我计划在学期过半后开始接触,此外,我也计划参加暑假实习。考研方面,也计划在学期后半开始复习,但是具体时间安排是否足够仍有待商榷。

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

我计划要参加企业实习,正如博客K所说“在大学的时候尽量多地进入公司参与实际工作,一方面积累工作经验,另一方面,提前认识工作和自己,以便毕业时更准确地把握自己的方向。”。我认同他的观点,认为公司的实习经验是我们真正工作后要接触的,因此相对更重要一些。

3.4 实习经验究竟有多重要?是否需要马上开始积累实习经验?

我认为实习经验比较重要,实习学到的技术不是重点,而工作流程、组织架构等则是重中之重。但由于个人时间限制,因此只能暂缓实习。幸好,还有时间,我应当可以在毕业之前进行至少一次实习。

posted @ 2021-03-08 12:04  VOIDMalkuth  阅读(198)  评论(5编辑  收藏  举报