2021年的总结 - kernel panic

2021年的总结

2021年已经远去,2022已经到来,放假一个星期了,重新整了一下博客,其实也就是记录一些平时的想法和自己的观点。
回想起我大一大二的时候,因为计算机类的课比较少,玩得也比较多,当然考试也就比较差,像离散数学这种课程固然很重要,但从中学以来我都是被数学牵着鼻子走的,所以就die了,还好没挂。
2021年寒假结束开始高二下学期,这个时候开始有一些真实计算机类的课程了,这个时候我想到还是得认真学学的。

热爱计算机还是只为了拿个高分

很小我就接触电脑,小学的时候就在用512k宽带了,那个时候鲜有在线的视频,即使有也是要配合Windows media player插件播放的,基本下什么东西都是要用快车或者电驴。在小学的时候为了破解一周一度的小学微机课控制来玩4399,认识了反汇编工具OllyDbg,现在意识到那个就是低级语言。所以和人学程序路径不同我可能最初是先接触了低级语言,后来到vb,写点小程序,不过比较懒,也受限于当时的水平,一个没上初中的小学生根本不知道什么是数学上的函数,也没见过这个词,更不用说计算机上的函数了。但这一接触给我带来了计算机的兴趣,也就为我后来走计算机路提供了方向。

放假回广西后,因为中小学还没有放假,我在放学时间去了初中,发现现在初中生的网上冲浪强度都比我当年高得多,毕竟现在是手机上网的时代,那些初中生有的拿手机聊她们的偶像什么的,也有在玩游戏,有些感慨。上《多媒体技术》的老师就说,很多学生没接触多少电脑就直接从手机开始了,就像没经历过信用卡银行卡刷卡消费的人直接用上了微信支付。

身边有很多卷王,也分不清真正是内卷还是勤奋。在我看来,如果学习只是为了应付考试那就算卷吧。卷王在我看来也分很多种:一种是勤奋的,每天既早起也晚睡,还很精神,这种我挺佩服,至少我是做不到,对于我来说晚睡可以,早起很难的了;一种是很聪明的,以做题来说,相同的题他们可能三分钟写完了,我得五分钟,背书来说,他们3分钟背完了,我5分钟还没背得;还有一些是'精致的利己主义者',为了拿到高分在没有必要的时候还在看书,随后拒不承认

不当做题家也不要自我感动

我觉得我是算是热爱计算机这个学科的,虽然远不及那些技术大牛,但也不是读死书而不去实践,平时也研究一些不局限于考试范围的东西,之前在旧博客(其实是几个静态页面)也写过一些技术的文,玩过树莓派,这几天把以前写的转移过来,还有一些在CSDN的不搬了。
V2Ray 实现透明网关 配合树莓派搭建热点
使用TCP Fast Open加快TCP连接建立过程
在Centos 7下编译安装Python3
使用Putty来生成centos公钥登录服务器

有时候我也在'暗中观察'周围的人,这个观察当然不是'偷窥狂'这种类型,也就偶尔留意一下别人在做什么。发现有些人也在教室,但他们大部分时间在看手机刷微博,偶尔翻翻书,一样到点吃饭、回宿舍,那我觉得这样倒不如躺在床上舒服。

计算机各个课是有所关联的

事实上如果有一些了解,就会发现上课教的东西基本上都是最基础的,很多东西都没深入,看起来表面上就没关联。举两个例子吧。

《组成原理》和《操作系统》的访存来说吧

前者主要讲Cache,后者主要讲页表快表,我知道上这种课的时候很多人会晕,甚至会混淆这些东西。如果真正深入去探究,就会发现,它们是有机结合的。
如果給了一个虚地址,要完成整个取出操作数的过程,那必然先得得到物理地址,这个时候就要去查页表,查页表慢呀,甚至有的是多级页表,所以有了TLB,找到这样的物理地址肯定需要一个基址和一个偏移量,这个时候又可以引出重定位寄存器和界地址寄存器,掐指一算得到的地址不是属于这个程序的,那就越界中断了。得到实地址后,还要看看Cache是不是命中,最好的情况下TLB中了且Cache也中了,噫!好!我中了! 那就真不访存了。

记得考试的时候就有问到什么是基址寄存器,和变址寄存器有什么区别。有些同学平时不去探究,考前上网查了直接硬背下来,那背书是多痛苦的事情啊,我一直跟他们强调理解为主,也主动去解释整个过程。

(端着题目进来了)诶嘿嘿,啊~哈哈哈哈哈哈…题目来咯哈哈哈。唉,这 这,这都题都齐了,怎么还不背呀。
老冯啊,这大伙都不敢背,有人说,说是有人在题里下了毒。
害羞羞,王大队长啊。哎呀你这人就喜欢开玩笑。哎呀,快趁热背吧啊,我不打扰,我走了哈。

反正考前发了一些重点问题我一个没背,考试全靠着自己理解写的,因为我觉得改卷的老师不会抠字眼。我想要是现在再问背题的这些问题估计是答不上来了的。

C++的虚函数与汇编,顺带吐槽一下经典问题

大二下的时候,既上面向对象又上汇编,一个高级玩意,一个低级玩意。顺便说一句,虚函数老师577喜欢让同学去讲课,我个人不是很喜欢这种上课风格。
有一种经典C语言考试题目,叫做

假定*p=114514;
++p、*++p、++*p、++(*p)、(*p)++、p++、*p++
请写出这些操作后的p值

当然形式还有更多样的,比如i=i+++++i(实际上这是个UB),甚至有两个变量一起杂糅的,本质考运算符的结合性,这是我见过C语言里最烂的题了,为什么这么说呢:

  1. 不管最终做不做程序员,最终编程用复杂写法的概率都很低,可读性也不好。
  2. 现在是互联网时代,真要遇到这种情况那百度一下即可,潘sir说得好啊,我们都是百度大学毕业的,有的题目就是亘古不变的,可能30年前就有这样的题,现在还存在,包括操作系统的磁带机,老古董了,要说软盘我小时候还见过,现在在垫桌脚。
  3. 从本质上来说,这种操作的实现是由编译器根据规范实现的,要看结果是什么,因为闭卷,除了翻书看规范死记没办法。
  4. 最终考试577还是出了这种题。。

我记得当时上课的时候基本上让同学上台讲的课件都是千篇一律的复制一下书,或者有同学直接百度找个PPT就下载下来了,这也是我不喜欢这种方式的原因之一,一节课一个半小时基本上都在放不同小组基本上内容相同的PPT,一个内容不同小组重复讲了五六次...
所以我决定看看编译器在做什么遇到不用虚函数和用虚函数的时候,于是我PPT准备了:
虚函数的底层实现[从底层汇编角度分析虚函数]
虚函数.png
虚函数2.png

理解力

如果能把书上那种书面化的表达通过自己的理解复述成口语化,那应该就是学会了。
还是以寻址为例吧,我自总结出'字节守恒',如果能明白这个原理做那种地址划分的题目简直是so easy。自己总结经验知道,不管是划分RAM芯片还是设计内存地址,不管你是按字寻址还是按半字,亦或是按字节,每个地址所对应的编址单位是守恒的,也就是说不会出现一个地址对应两个编址单位,也不会出现一个编址单位找不到对应的地址,和线代里的满射类似。
如果要我形象用生活中的例子讲明白就是,一桶水分满若干杯子,每个杯子里的水加起来和一桶水的量是一样的。这也是为什么我做这种题目有些难算的直接拿总量减去已知量,大概因为理解了编址的原理。

Compatible

这是个计算机编程常见的词汇了,我挺喜欢这个词的,大概翻译成中文就是'兼容性'吧,用在人上大概就是'儒雅随和'了,还有一个接近的词叫harmony,但我不喜欢因为感觉都用烂了。
我觉得我就算是一个compatible people,也就是从不为难别人,只难为自己。大家都在背单词的时候就我一个不背在玩手机,那也不好意思吧,那我走?。有玩游戏的激动了要大喊大叫,我总不能把别人的嘴堵住。所以为了坚持我自己的方式,也为保持最大限度的compatible,很多时候我都一个人,提个烂包去十教,别人看来可能是个怪人,不过我也不在意。是觉得一个人的效率挺高,倒也不觉得孤独什么的,只是晚上的十教确实有些阴森,有一次我将近11点出来,看见4楼走廊尽头有个长发女站着不动背对我,气氛很诡异,我没停留,溜了~

对这一年以来一些信工院老师上课的感受

老师对于学生是一对多的关系,老师带了一批又一批学生,我对于各个老师而言也就是一届学生中的一个,过几年可能就忘记了。大学老师和中学老师最大的区别大概就在于他们基本上不认识大多数学生,除了特别优秀的,所以我记一下自己的想法。
前面也提到我喜欢'特立独行',也常常一个人单打独斗,所以没去参加什么工作室,就连他们去十教值班赚钱我都不屑去,大概因为这不能实现时间上的自由。川西天气大多阴天小雨,出太阳是随机的小概率事件,如果出太阳了但有事被困在十教那太遗憾。嗯,扯远了,也因此认得我的老师也不多。
印象很深的是既上汇编又上组成的陈老师,她讲课的方式是对我来说是最容易接受的,主要是都在讲重点,既讲得清晰明白又不东扯西扯。她应该是认识我的,可能因为我做实验快(依赖于上面讲的深入理解)。有时候上她的课我坐到后面,其实不是因为来得晚也不是因为不想听课,是因为扩音太大声了,坐在前面耳朵像被轰炸。不过坐后面还有一个好处是能锻炼视力,我不近视但接触电脑多视力也下降,坐后面看屏幕还是能看清楚的。
虚函数的577老师上面已经提到了,不过认真去看实验报告。web老师比较容易交流,让我参加她的项目不过以上面提到的原因,以没时间拒绝了。数据挖掘的吴老师是个很厉害的人,我觉得她讲课还好吧,不过很多人不喜欢她的风格,可能是重点不是很突出。数据库的潘sir,讲课比较生动有趣,经常扯一些生活中的例子,也是我上面说的把书面化的东西通俗起来。当然还有'跑路'的老班主任李老师,他上课感觉一般般吧,感觉重点不算很突出。网络营销的周老师给我印象是很懂买卖、需求的。

推荐的书

《深入理解计算机系统》

这本书也是我最初学习组成原理和操作系统看的书,虽然比较厚,但确实写得好。主要是它没有各个教材这么晦涩难懂,是以程序员的视角来看这方面内容。

《程序员的自我修养》

这本书名字很奇怪,看起来是那种谈人生的鸡汤书。其实不是,副标题是链接 装载 与库。很久以前我就在拿记事本打开exe文件,自然是一堆乱码,现在知道这种二进制文件拿记事本开是没有意义的,要理解它的结构看这本书就很有用。另外它很好地把操作系统和组成原理连在了一起,几种重定位方式和程序怎么链接也讲得详细。

新的一年

首先祝各位看到这里的朋友,新年快乐!
先把毕业设计弄完,至于说考研什么的随缘吧。考研还是去找工作,有得考可以去试一下,万一就中了呢。即使考研路失败,那我去工作罢,以我的'码力'找工作应该还是可以的吧。
真热爱计算机,它也不会亏待你,不过短期来看,可能不如那些做题家罢了

添加新评论

电子邮件地址不会被公开,评论内容可能需要管理员审核后显示。