学计算机语言，是先一门语言学精通，还是学各种语言?
这其实并不是个「先后」的选择题，而是「全都要」。 首先，对职业程序员来说，只会一种语言肯定是玩不转的。解决不同的问题，在不同的外部条件下，要选择不同的语言。 包括市场风向变化，也会逼着我们去学习新语言。比如移动开发火的时候，很多人首次编程就是写 iOS 或 Android。但现在这个岗位不行了，就很多转前端了。 但不管学过多少，肯定得有个用来吃饭的家伙，也就是得精通的。 那该精通哪个呢？我的建议是：有做项目的机会要用哪个，就去精通哪个。 也就是「用驱动学」，而不是「先学再等着用」。 因为编程这东西，如果不实战，空学书本，跟没学的区别不大。 换个角度说，不实战，也不可能精通。 所以，是否要精通所学的第一门语言呢？看是不是有实战机会了。如果实战机会指向另一门语言，果断喜新厌旧，别抱着第一门不放。 题主才大一，建议使劲给自己找找需求。做个网站、游戏啥的都行，甭管有没有人用。用需求牵引自己去深入学习最适合做这个需求的语言。
编程语言我接触到的一共三种：面向过程的(C)、面向对象的(C++ Java C#)、以及函数式(Haskell)。我自己对于前两者很熟悉，而在读博期间也现学现教了函数式语言的一个典范Haskell所以对其有些了解。 我的感受是，这三类需要每个接触一种以便于了解各种基础概念，然后选择一门面对对象的编程语言深入学习其特性即可。 之后你会发现无论什么编程语言你都能触类旁通了。 其实还有一类简化了的语言比如脚本语言，它们通常看上去很像编程语言，但会摄取一些通用性质从而大大简化编程难度。典型的是当年横行天下的PerL和其衍生品PHP，还有JavaScript，Phython等。他们因为舍去了一些语言的通用特性所以上手快、出活儿快，但也因此带来了局限性，比如大规模项目开发和维护难度很大。 所以我建议在粗浅了解了三类编程语言以后，还是深入了解其中一个编程语言，再回去学一个受欢迎的脚本语言即可。 最后，其实语言知识粗浅的入门拳脚功夫，真正的内功和魔法是基于这些语言之上的算法、数据结构、并发编程、设计模式和大型项目架构几个方面的相关知识。但因为这些覆盖面太广，需要根据自己的职业发展来有针对地深入学习。