对于这个问题,我想还是需要分两种情况来应答。
1.无编程基础
结合我自己的学习经历吧,我在大一时参加学校的一个IT社团,要求我一星期学习一门语言来作为考核。由于大学前只用C做过NOIP,所以很难快速接受OOP思想,在同时学习这类语言,比如C++以及JAVA时有点力不从心,因为学习速度较快而练习机会较少,所以很容易产生混乱,即在写C++时穿越的使用了JAVA的语法,反之亦然。
所以个人认为,同时学习时最容易出现的问题就是知识混淆,特别是对于C++和JAVA这样语法相似的语言。并且由于无法专注于一种语言,很容易囫囵吞枣,只学了个大概却无法深入的体会语言的特点及高级应用。比如C++由于比较底层,你会经常和指针打交道,你面向的基本也会是底层点的东西(某些框架除外),而且你也会对资源的申请和回收更敏感;而JAVA则不同,使用了虚拟机机制,让你不用再关心内存问题,更多的放在OOP上,同时拥有众多库,让你感受到和C++很大的不同。
2.有编程基础
这里的“有基础”相对于“无基础”不是说会不会编程,而是说对某种类型的语言是否熟悉,比如静态语言与动态语言等。当拥有一定基础后,或者说学习了一段时间,有了理解后,就会发现不同语言的特色,见识到更多的开发思想。
举个例子,我现在在做Android开发,用的JAVA,然后准备也学下python。开始觉得不会相差太多,有了一定基础语言都是相通的,后来学了之后才发现python那不同于C体系的动态语言的魅力。做web的同学也推荐我同时学习下古老的lisp,能过多的开阔眼界。
这也许就是编程的魅力,和阅读一样,在使用不同语言时能领略到不同思想的魅力。
再者,同时学习不同的语言也能清晰的作对比,了解到语言间的差异。《JAVA编程思想》一书在讲解java时都会与C++做对比,对于熟悉C++或同时在学习C++的人,就会产生莫大的益处。
建议先掌握一门语言,贪多不好
容易搞混,尤其是对于初学者,相当于没学会走就想跑了,如果硬要学两门,建议深入一门,另一门做了解用,其实语言都是想通的,一门语言精通,其它学起来都不是很难