先不讨论某门语言是否适合用于开发某类程序,仅从“学习某门编程语言前需要掌握什么基础”这个角度来看的话:
1. 想“学习”某门编程语言的话,理论上是不需要掌握什么其他知识的,零基础即可进行学习。
2. 但如果想学得透彻,并提升学习的效率,我认为至少需要先掌握《计算机组成原理》和《操作系统》的基础知识。
如果能够做到理解冯诺依曼体系,搞清楚硬件与软件的定义和联系,理解计算机工作的过程和指令系统、存储系统、CPU、输入输出系统等在这一过程中发挥的作用和扮演的角色。那么在学习编程语言的时候许多基础问题便会迎刃而解。否则一个绝对0基础的初学者直接学习编程语言时,可能会遇到很多问题,想象一下,如果一个人不明白CPU的工作原理,要直接去理解多线程,理解重入锁,理解volatile,或一个人不明白存储系统和外部存储介质的区别,直接去学习IO、NIO、GC的话,其过程必然是充满困惑的。
3. 要学好一门编程语言,数据结构也是必不可少的知识,搞不清楚算法复杂度的程序员也就只能做做填空式的增删改查了。然而在没有对高级编程语言有基本的入门理解之前是很难去学习数据结构的,所以对于0基础的初学者而言,编程语言和数据结构这两门课程最好是并行进行的。
4. 如果再深入到具体的应用领域上的话,要学的东西有更多,但不在此问题的讨论范围之内了