考研转cs怎么补基础?
CS 的基础,主要是数据结构、算法和计算机系统这三部分。 先来说一下这三者之间的关系吧~
其实 CS 的很多知识都是相通的,比如你要学计算机网络就要懂数据结构中的二叉排序树;如果你想做机器学习,那么你就要知道什么是哈希函数(Hash Function)~因此你可以看到,CS 在许多地方都体现了其「交叉学科」的特点啦!所以题主不要觉得「学CS要会的东西好多啊」,只要你掌握了其中的一门或者两门,就能触类旁通地学会其他的知识了哦~那么下面我们就来分别说说它们的学习重点及方法~
一、 数据和算法: 1.1 学习重点: 数据结构就是用来解决算法在计算机中实现的问题,是编程里很重要的内容哦。目前常见的数据结构有 20 多种,这里给大家推荐一个网站来学习这些数据结构: 在这里大家可以直观地看到每种数据结构的特点和应用,并且可以方便地对它们进行比较以及编写对应的 C/C++ 代码,非常实用呢! 而且这个网站上还有一个很有趣的功能叫作「Game Of Life」,它是一个 2D 的游戏。当玩家点击鼠标左键时,就会生成一个指定格子的图像,再点击右键就能够生成另一个格子了哦。你可以在上面尝试各种不同的排列,看看最后能组成什么样的图案出来呢~
1.2 学习方法: 这个就仁者见仁啦~一般来说大家都是先看理论再实操的,但我觉得有些东西如果只看书的话是很难理解的,最好是能够自己敲一遍代码,然后多跑几次实验才更好理解其中的道理。另外,也可以试试「边读论文边做题」的方法呀~比如你在阅读《The Art of Computer Programming》的时候就可以跟着里面的练习题一起动手操作,这样不但能加深你对知识的印象,还能够帮助你更好地理解题目,一举多得!
二、 操作系统: 2.1 学习重点: OS 是整个计算机科学里最核心的知识之一,而 Linux 则是其中最具有代表性的一个操作系统,因此在 Linux 上开发程序是非常实用的哦~Linux 有两个分支,分别是 GNU/Linus 和 Debian,而 GNU/Linus 中又包含了多个发行版,如 Ubuntu、CentOS 等。在这些系统中都会包含很多常用的工具包和软件库文件,而这些也都是我们平时需要学习的重点哦~ 所以我们在平时的学习过程中一定要注意多去探索 Linux 的不同分支,这样才能学到更全面的知识哦~ 2.2 学习方法: 我推荐大家使用 Gitlab 作为日常练习的工具哦~因为它里面不仅有大量的开源项目,还有详细的源码注释文档。你可以在这里面完成从安装到编译到运行的全部过程,还能学习到更多的新技术和新概念哟~ 此外还可以多去 Github 上找一些开源的项目来练手哦~Github 上有非常多优秀的开源项目,你也可以在里面找到一些和自己专业相关的项目来做练习哦~
三、 计算机网络: 这部分内容主要会涉及到数据结构、通信协议和网络层等知识,所以想要完全掌握也不是一件容易的事呢... 3.1 学习重点: 虽然计算机网络的内容比较多也比较难理解,但其实它和我们的生活还是息息相关的呢~比如说我们平时在上网时都会用到 HTTP 协议、IP 协议等,但这些协议究竟是如何在我们之间传输数据的却很少有人注意~ 其实只要我们把计算机网络分成几个部分来进行学习就容易多了哦~首先我们可以把互联网分成应用层、传输层 ... 等等几层,然后再一层一层地去了解每层的结构和特点就好了 ~这样就可以让我们从整体的视角出发,更容易掌握这部分内容了哦~