三年思考

前言

在华科网安完成了本科所有的课程后,我开始想着把自己三年接触和学习计算机的经历总结下来。一来是为了收集平时学习过程中一些零散的想法,日后可以反复咀嚼;二来是想给低年级计算机的小朋友一些启发,少走一些可能的弯路。总体来说,即使是三年前我随意排列志愿时选择的专业组合,我也非常庆幸自己把计算机类放在了前面。走过很多弯路,不断思考,无关工作和待遇,我能说自己是喜欢计算机的。
P.S:自己对安全技术的经验聊胜于无,下面就当计算机来交流了~

成长在更纯粹的地方

计算机和网络的发展在生活的几年内就有巨大的变化,我在学习过程也经常想着:在电脑、网络之下,到底是什么支撑着世界运行?这个问题一开始很模糊,越学越多,一点点变得清晰一点。现在想想,还是陈凯老师讲授的计算机网络给我耳目一新的认识,终于了解了支撑世界互联的”网络“背后究竟是什么样子,一层层协议、每层的功能。并且接触了专业里面非常核心的理念:抽象和封装,可以说网络课也算是启蒙课。

抽象、封装、接口……这些简单、强大的设计理念在计算机无处不在,甚至我有时也在想,是不是整个社会或者世界也都依赖这些理念,运转更高效、简洁。计算机设计哲学藏在很多课程的影子里面,非常遗憾的是,我上的课程里面少有把思想、哲学放在重要的地位。以操作系统中的虚拟内存为例,刚接触这个概念自然就会产生一个疑问:明明实际的物理内存没有变大,为什么可以让上层应用”看到的“内存空间更大了呢?这个问题我当时其实很不明白,课上讲的也是三级页表、怎么计算地址转换。后来我才在别人的总结里看到这是时间换空间的策略,能够支持计算机这么做是因为程序天然的的时空局部性,也是实践中人们对系统IO的乐观估计。

我对这种设计上的思想都很感兴趣,比如怎么让分布式集群维持一致性、流量网关的单点怎么用更底层的交换机实现高并发、数据库用了什么技术让各种故障都不会妨碍它真正把数据写到磁盘里、并发是怎么压榨 CPU 的性能、怎么让线程跑的更快、从阻塞到非阻塞、为什么会有三级缓存……这些问题不是凭空产生的,都是来自人对物理机器性能的需求:更多的人上网,更安全的数据写入,更快的速度。问题的背后都有先驱给出了符合物理世界需求的答案,依然让人在反复的回味中惊叹设计的力量。我自己而言,接触到这些设计总会有站在巨人肩膀的崇敬感,可能也是兴趣来源之一吧。

我和同学交流过,选这个专业给自己带来了什么?会不会后悔当时学的是计算机?一个朋友提到搜索信息、处理异常、解决问题的能力对他很重要。我仔细想了想,“直面问题去解决它”的确是必备的修炼之道——平常环境、程序可能会出现各种报错,都很需要耐下性子找到问题,看看哪里出错能不能找到办法解决它。如果只是一股脑全部复制到搜索引擎,用了不对症的方案,只能让自己更烦躁(相比原始时代,AI 让人更心平气和)。

反思之前:我为什么学习

答案很多,为了分数 GPA、为了工作好出路、为了社会地位和钱、为了喜欢……我觉得都没问题,而且这些也不是互斥的关系。作为学生我们可以把要学习的专业科目当作不同的客体对象,可以是提高分数必过的关卡,也可以是未来生活的保障,当然也可以只是图个兴趣。不同的看待视角会给学习体验带来不一样的反馈,就说包括学院和同学之间大多的共识之一,为了分数。学习之中我可能只需要关注怎么把考试的题目做对即可,所以目标客体就是课堂的成绩组成,如果课堂中有考试之外的东西,我不必去接触。可以说这只是在训练人的做题能力——根据 PPT 和材料完成问题回答,但也会错过一些不起眼的闪光的东西。我不认为这是学生工具化,做题家之类很负面的评价,因为我自己在大学三年级基本也是这么来的,甚至很多课程自认为不需要去,只需要提前一周开始看 PPT 就能拿到漂亮的分数。学习数据的量化不是学生这个实际的展示者带来的,而是自上而下,层层标准压下来,我们写的每一份试卷都只是最底层驱动体系运行的动力,不是根源。

是不是就可以”正当“的卷分数呢?也可能是的,学习完全可以成为一个工具,十二年中小学经验已经告诉我们这一点了。但是必然会带来分数竞争、为了0.01的不安和大概率的“我怎么没比过ta”。个人而言我是不喜欢这种感觉的,上大学更是没有把自己逼到“以课程成绩为纲”的地步,这一点我要非常感谢本硕博班的同学~,他们的想法和我相似。收益自然而然,较为轻松的大学生活。

我不喜欢考试另一点是背诵的的东西就是比谁的内存更大一点,谁在考试之前积累的 bug 修复经验更多,I/O 更快,考试题目很多也是这样的,觉得也没什么意思(当然我的同学也有上课不是为了分数,非常认真,慢慢复习能考到极高的分数,我自愧做不到)。

反思之后:我如何学习

让我给两年前的自己一些建议的话,我想大概会是以下几点:

  • 接触高质量的学习材料:好的材料给初学者的视角是完全不同的,可以说是天上地下。如果只是照着注水文章来学习的话,成长空间极其小
  • 放平心态:CS 发展太快,接触到的很多知识都已经站在伟人的肩膀了,多花些功夫别着急
  • 高于课堂的眼光:16位的汇编程序等上古遗物可以学到底层的原理,但是更应该看看现代的设计,别太死板
  • 广泛涉猎:网络、存储、并发、分布式、容器、AI ……大有所学,横向和纵向都可以培养,说不定就遇到感兴趣的一发不可收拾,请珍惜纯粹的学习动力
  • ……

尾声

抽空把自己很久就想说的话写下来了,最初想的是趁现在还有对技术的兴趣,把一些感受留下来。后来也想到其实自己一开始学习也是绕了很多弯路,学得很紧绷。比如刚进校就学的 C 语言课程设计实验,真的让我吃了很大的苦头,并且一度非常怀疑自己能不能学好这个专业。慢慢接触更大的世界,发现之前很纠结的地方其实都是没有找到合适的路径,心态也越来越放松,对自己也更有信心和兴趣。当时自己也是看到很多其他人的心得体会慢慢走上道,所以我也真诚地想给学弟学妹一些绕过可能的弯路的建议和启发。

想到最近一个老朋友问我,你还喜欢计算机这个专业吗?我回答是的,没有迟疑。


三年思考
http://whale-withme.github.io/three-year-think/
作者
yzc
发布于
2025年8月3日
许可协议