这个问题答案还是比较宽泛的。可以参考下各个大学的计算机课程,当时大家专业是计算机和数学的交叉学科,对于编译原理,计算机组成原理实际都没接触过。如果是自学,文章后附带自学方法。
1. 数据结构,主要介绍的是数据结构和一些基本的算法。数据结构和算法的重要性不必多说了,随着人工智能的发展,企业对算法人才急缺。
还有一门是 数据结构 C++版本的,是面向对象语言实现的。
2.离散数学。同数据结构一样,是学习计算机以及通讯所需要掌握的基础课程。
3.数值分析。这个想起来双眼泪两行,当时快学哭了。此课程的目的是掌握基本的数值计算方法,设计求解算法,求出数学问题的近似解。主要内容包括线性方程组的解法(包括直接法与迭代法),插值求值法(拉格郎日插值,牛顿插值,分段低次插值,三次样条插值),函数逼近计算,数值积分与数值微分的近似计算,方程求根的近似解法,以及矩阵特征值与特征向量的计算,此算法与计算机紧密结合。
4、操作系统。讲述 unix,linux,windows等操作系统,也是必学课程。
5、程序设计基础
6、数据库系统概论
7、 计算机系统结构
8、计算机组成原理
9、C++面向对象程序设计 ,Python,Java等语言设计。
10、编译原理。
以上是计算机的基础课程,如果你是想学习下计算机软件的应用,用PS,做做动画,直接学习软件就行,没有必要学习上面的,如果想打好基础,学编程的话,可以去MOOC上去学,里面有很多的课程。英文好的话可以去看MIT的计算机课程。