IT资讯 | 计算机专业学生应掌握的基础知识

本文强调了数学(线代、概率论、统计学)、C语言和编译原理在计算机科学中的重要性。数学对于理解和解决算法问题至关重要,C语言是理解计算机系统的基础,而编译原理则帮助我们深入理解编程语言的底层运作。学习这些基础知识对于未来在计算机领域的各种方向发展都具有深远影响。
摘要由CSDN通过智能技术生成

高等数学

对于大学的科班学生,这部分同学以后也许会去做算法(CV、NLP之类)、游戏引擎、信息安全编码等,这些方向对数学要求就会偏高,在计算机领域,线代、概率论、统计学这些数学分支相对比较重要,计算机本质上还是离散的。比如在机器学习或数据挖掘中常常用线性代数来降低数据维度,很多问题最终都能化为求解线性方程组。所以为了避免以后想走这些方向却被数学卡住,在大一、大二上数学课的时候就好好的学一下。书到用时方恨少,不要现在以为没用处就不好好学,等你需要的时候,就知道后悔了。

C语言

其他的东西都没有比 C 语言更适合用来理解计算机系统了。我们后面将会提到的操作系统、体系结构 这些东西非常适合用 C 语言去理解或者去实践。并且 C 语言本身的语言特性非常少,但是想学好又是不容易,很多人都觉得 C 语言难,难在哪里呢?简陋的标准库,几乎没有可用的数据结构和算法,指针很难理解和使用,需要了解汇编、链接、装载、内存等才能把 C 语言用好。不巧的是,这些东西正是计算机系统知识的一部分,所以用 C 语言作为学习计算机系统知识是最有效率的方式。任何比C语言更低级的语言,都不足以完整地抽象一个计算机系统;任何比C高级的语言,都可以用C来实现。这真是极高而中肯的评价!所以对于计算机科班来说,不管你是做前端还是后端,算法还是开发,C 语言都建议你好好学习。这是无关方向的一门语言,就是基础。

编译原理

学好编译原理有啥用?你会站在更高的角度去审视这些编程语言,看到的不再是表面的语法,更会想到语法背后的实现。继续往下学你会了解到抽象语法树 AST 如何生成、如何转化为中间代码、如何对中间代码优化、最终又是怎么生成机器指令的。你会看到贪心算法在寄存器分配中的应用,也会看到图论中的可达性分析又是如何实现死代码消除。你写的英文字母又是如何变成一个个二进制指令的?学完编译原理,这些通通不是问题,当然完成一个像 GCC、Clang 这样的编译器难度太高太高,我们学习编译原理的目的也不是去造这样的轮子,而是为了更好的理解和运用编程语言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值