会很长……而且短时间内无法写完……可能要到考研结束后,自己的全部经验和思考凝练、收敛以后,才能真正完稿 这篇文章在我脑海中很早就开始形成了,但始终没有一个完整、成体系的结构,因此迟迟不能下笔。直到最近复习准备考研,专业课科目是计算机专业基础综合408,一下子涵盖了计算机组成原理、计算机网络、算法与数据结构、计算机操作系统四门课程,而且在一些很细节的地方都作了考试要求。虽然这些知识繁琐且凌乱,有些甚至超出了传统计算机专业的知识范围(机组中对硬件的考察,计网中对通信原理的考察等),但,细细品味,仍然发人深省——计算机科学与技术专业,究竟要学些什么? 这篇文章不仅是这几年来我对计算机专业的思考,也是我后面一系列学习的一个开章。如果可能的话,在这篇博客后,陆续记录上《重学计算机网络》、《重学算法与数据结构》等等系列。 (然而实际上,本文写作时间跨度非常之长,从构思到完稿,基本上能够横跨我的整个考研复习时期吧——因为我也是边实践、边总结) ?这里说明一下,这篇文章是站在笔者是科班生、读者也是科班生的立场上书写的。所谓科班,就是至少从本科开始学习、而且专业是计算机科学与技术的同学,至于半路出家的研究生跨考生、改行的在职人员以及专业是电子信息相关、软件工程、网络工程、物联网、大数据等等的同学,我认为都不适用本文的要求。
从408考研专业课开始
抛开清华大学考研专业课912,408统考被公认是所有初试计算机类考研专业课最难的。一个重要原因是,408专业课覆盖范围大,不是很多学校甚至某些985高校初试只考一门数据结构就可以比拟的。算法和数据结构自然是横亘在众多跨考生和基础薄弱的科班生面前的一座大山,要求学生完成从自然思维到计算机思维的跳跃;计算机组成原理要求学生要有扎实的数电基础和对二进制的敏感性看,此外还有许许多多繁琐的对硬件方面的零碎知识;计算机操作系统如果死记硬背很晦涩,具体实操又难度过大;计算机网络虽然分值不高,但涵盖范围及其广,不管你是按国内教材从物理层向上学起,还是《自顶向下方法》,TCP协议、子网划分等等这些都是避不开的硬骨头。 那考试范围这么大,是不是意味着要求就低一点呢? 答案是否定的。自然,你不可以和912去比,也不可以和各个学科方面的竞赛去比,但对于普通学生来说,也不是简单学好校内课程,或是一心准备考研就可以的。 在知乎上可以看到往年有些跨考生的哀叹,“我把王道和天勤的所有题目都做了一遍,可是到了考试的时候有的大题我还是不会做,那个题型我连见都没见过,怎么做?” 王道论坛的版主风华哥也坦言,“408这门课认真复习,要考到105-115没有问题,考到120乃至更高,是比较困难的。”相比较考研数学,哪怕是数学一,题目稍简单一点,就有层出不穷的140+、145+。 以2021年408真题来说。我只举一个例子。今年操作系统大题第一题,也就是第46题。 (1)系统开机引导顺序 (2)安装新系统的顺序 (3)对于(2),分配扇区在哪一步?创建文件系统根目录在哪一步? (截止发文时,我还没有看到比较正式的2021年408真题和答案,上面的题目也是考生回忆版)
看到这道题,就想起来一个流传很久的段子:“计算机专业是写代码的,不是修电脑的!”那试问这道题是不是考的修电脑?如果大概了解过操作系统的启动过程,装过几次操作系统特别是Linux操作系统的同学,这题就是送分题。对于跨考生,或者死读书的科班生,这道题就是过不去,因为从来就没有这么考过。操作系统大题不就是PV操作么?最多和机组结合一下考考页式管理吧? 这是百度搜索“安装CentOS7 步骤”以后,随便从某篇CSDN博客里摘过来的图(侵删)。做过类似流程的同学可以一眼看出,这就是在划分逻辑卷时,指定Linux文件系统的根目录挂载点的一步。这个课本不会讲,王道不会讲,做题碰不到,但是考场上就碰到了,怎么办? 那确实是没办法的,那自然是把其他常规题目都做对,这种题目胡乱答一答骗骗分就跑了。 那如果我们抛弃功利心,思考一下出题老师究竟在想什么? 很明显,出题老师认为,你连修电脑都不会,还怎么说自己是计算机专业的学生? 这也是为什么很多人都说408专业课考不高也不可能考高,但去看那些高分考生的经验贴,又觉得平平无奇。 这也是我的一个推论——408专业课考的不是应试能力,而是专业综合能力。何为专业综合能力?又如何提升专业综合能力?
408考研只是一个例子
只是因为笔者正在准备考研,而专业课又正是408计算机学科基础综合,所以举了上述例子。实际上,我认为不仅仅是考研的同学,正在就读、未来即将就读、已经毕业的计算机专业同学,都适用于本文的要求。 有很多已经工作了的前辈,有些还是在国内顶尖互联网企业担任重要职务的大佬,在分享自己的经验和指导我们现在学习的时候都会说,“一定要打好基础”、“学好基础知识,不然走不远”、“等你们工作了就没有精力学基础知识了,我现在就有点后悔大学阶段没有更认真的学基础”、“那些流行的框架、高大上的工具都是花架子,都是基础知识的组合,那些工具掌握的再熟练,也只能成为一个熟练的码农,做不了优秀的程序员,也做不了计算机科学家。”只要是在互联网行业小有成就的人,你去向他们询问计算机专业到底应该如何学习,他们一定会提的一个词就是基础知识。那什么是基础知识?什么是计算机专业?怎样学习计算机专业?
什么是计算机专业?
什么是计算机专业?怎么样才算是一个合格的计算机科学与技术(Computer Science and Technology)专业的学生?
怎样学习计算机?
|