学校的 C 语言课程
骂人
《C 语言程序设计》已经接近尾声了,但感觉自己除了一些语法和标准库之外什么都没学到。
教材是学校自己编的,编的简直是一坨翔,某一页指针的示意图搞忘把实际的值换成地址都算轻的,讲二维数组甚至出现了“三行四列的行列式”这种已经被当成梗了的错误。
其它的部分更难评。感觉从教材到课程,教授们根本就没打算让我们学好这门课。
其次,学校买的 OJ 简直是我用过最不舒服的东西,包括里面的某些题,只觉 mind-bending 却用处不大,我整个学期都没花什么精力在那上面。
考试
写这篇文章发牢骚当然也是因为考试。我并不擅长做题,考试基本上只能做出大部分。不过我确实得认,因为没刷过题,平时作业完全随性做,老师布置的一个 82 道题的习题集我只做了 1 道。
我之前因为发牢骚还被同届的某“大神”攻击过,好像以后做什么事都跟这些考试题关系很大一样。虽然我确实会被这种聪明的智障气到,但我也理解这些“大神”:他们花了大量时间精力在刷题,就为了得个好看的名次并意淫自己的能力压别人一头。我认为这是 incompetent 的表现。
诈骗
今天讲动态内存管理,你猜讲了多久?只讲了十分钟不到!从引入 stack, heap 概念到讲完书上包含 malloc() 例子的实现,全程只花了几分钟!虽然我觉得很无聊,但是对于以前从来没接触过这些概念的同学,他们真的理解了吗?即使记得了几个名词,知道了语法该怎么写,但是究竟发生了什么谁知道呢?先暂且不谈现代操作系统上指针存的是 virtual address 还是 physical address 的问题,就说大家在提交作业的时候有时也会遇到的“段错误”(Seg fault)是什么意思,课上也不教。
书的序言还好意思着重强调 C 语言对计算机底层和内存管理的优势,这下倒好,这俩在你们的课程里都跟完全没存在感的 NPC 一样。完全就是诈骗。
认真你就输了
你反驳我就是你对。有人急了跟我说这些都是在打基础,我当然承认学校的作业和考试会训练敲码的肌肉记忆。那就当我在扯淡吧。