it-swarm.cn

同时学习多种语言

学习新语言时,最好是100%致力于一种语言,然后等到您“掌握”该语言后,再学习另一种语言,或者同时学习另一种语言?

如果很重要,我目前正在学习C++,我想知道Java和Python。

36
Maxpm

我不仅看不到一次学习多种语言的问题,而且我认为它可以直接给您带来好处,因为一种语言的某些内容可以消除您使用另一种语言可能遇到的问题。例如,我的主要语言是C#,在处理LINQ时,我使用了SQL格式(这很好,我一点也不敲它,但看起来似乎不是“很酷的方法”)。我之所以离开Lambda,是因为,老实说,我不理解它们,而且我所看到的C#文档没有提供清晰的定义(对我来说)。然后,我开始挑选一些有关F#的书并开始学习,这给了我“啊哈!”了解Lambda的瞬间。

我发现,随着我对其他语言(和框架)的使用越来越多,我在C#(和ASP.Net)方面也变得更好。因此,我相信一次学习多种语言完全不是一件坏事!

31
Jetti

如果这是您的第一语言,我认为最好学习足够的语言以理解编程语言的工作方式会更好。

一旦有了良好的基础,就可以选择任意多个。

49
OscarRyz

我认为对于程序员来说,一项重要技能是学习新编程语言的能力。因此,我倾向于建议先尝试学习一种语言,然后再添加其他语言。

无论您的母语是什么,学习其他语言的过程都应:

  • 查找新语言的良好语法参考
  • 确定新语言的优势,而不仅仅是使用新语言进行编码,就好像它是您已经知道的那样(带有重音符号的编程)
  • 探索新语言中未映射到以前使用过的语言的区域
  • 查找代码示例,而不进行任何检查,请尝试从头开始编写相同的代码,并查看实现与示例的不同

随着时间的累积,您会形成自己的内部抽象伪代码语言,这将帮助您在已知的语言之间进行翻译。这种内部语言是您用来快速学习新语言的框架。

12
Jason Aller

并行学习语言是很正常的事情。例如网络编程。您正在处理至少三种语言:服务器端(php,Java,.net,Ruby,python ...),客户端代码(Java脚本和html),数据库(sql)。

8
Boris Pavlović

一次学习多种语言没有问题。实际上,您永远不会真正掌握一种语言,因此,实际上,每当您使用一种以上的语言时,您都可能会同时学习这两种语言。

您可能希望专注于一种语言以了解基础知识,以免使两种语言混淆。如果您正在学习类似的语言,例如Java和C#,则尤其如此。

7
Paul Whitehurst

我已经教了几年编程,所以我可以和大家分享我的经验。我假设C#是您的第一语言,所以我向从未接触过编程的人教授编程的经验可能会很有用。

首先,让我告诉您,每位经验丰富的程序员都应该学习一种以上的语言。但这并不意味着您刚刚开始就应该同时学习多种语言。

多年来,学生们已经证明,一种语言在头脑中固化大约需要一年(至少是第一门语言),有时多一点,有时少一点。如果您尝试在一年内教授一种以上的语言,那么学生往往会把它们混合在一起并混淆概念和语言。尽管学生取得了进步,但他们养成了很多不良习惯,以后很难清除掉。如果您自己学习,则这种风险会更高。

但是,我注意到,如果您教两种具有不同语法的语言会有所帮助。当两种编程语言look完全不同时,它将帮助人们将它们视为真正不同的实体而不会互相污染。 (当一种编程语言帮助您理解另一种语言的困难概念时,那很好;当一种语言使您用另一种语言编写错误的代码时,那是不好的)。

因此,我的建议是第一年坚持使用一种编程语言。另外,最好是同时学习两种语言,只要它们看起来非常不同即可。如果您的第一语言是C#,那么我将远离C,C++,Objective C和Java;可能还有Python,Ruby和Javascript。我建议将C#与函数结合使用诸如Haskell,Scheme,F#,Erlang,Clojure或Scala之类的语言。

6
sergut

我认为一次学习多种语言比一次学习一种语言要好,因为如果两种语言足够不同,则每种语言都会给您带来休息。尝试将它们错开,以便在上一个阶段进入“绝对新手”阶段后就可以开始一个新的阶段。这样,您不仅保留了有关该语言的知识,而且保留了how您学习了一门新语言的机会,也有了更大的机会。 (对于以后的编程生活,您将不胜感激通用的语言学习技能。)

就是说,学习母语需要大量时间和精力,而在此过程中,您可能根本没有时间从事另一个大型项目。如果您因为厌倦了C++而考虑开始另一种语言,那就不要!它将鼓励您拖延。如果您想开始使用另一种语言是因为您不断看到提到用(say)Java)编写的项目,而您感到沮丧的是,您无法轻松阅读和分析代码-可以!这是随时学习另一种语言的重要原因。

5
Arkaaito

我发现同时学习多种语言可能显然会花费更长的时间来学习一种特定的语言(实际上并没有说清楚)。但是,就我而言,它使我能够决定自己喜欢哪种语言以及最喜欢的编码风格。

就我而言,我从C#开始,然后进入Python和F#。我真的很喜欢F#的功能风格,这促使我尝试了Scala和Clojure。现在因为学习了所有这些语言,所以我发现Scala非常适合我的工作。另外,我现在对OOP和函数样式)非常有信心并且能够熟练地读写多种语言。这是一项很棒的技能。

2
Richard Todd