同时学习多种语言[关闭]


35

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

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


12
通常没有100%的流利度。Jon Skeet和Eric Lippert都不知道C#的100%。
工作


3
不学习语言,学习如何使用语言来实现特定的程序。也就是说,如果您是一名程序员,则使用哪种语言都没有关系,因为您可以获得相同的结果。更糟糕的是,一旦您放下一种语言来“学习”另一种语言,无论如何您都会开始忘记前一种语言。

只要您真正了解两种语言。
图兰斯·科尔多瓦

@Maxpm你能告诉你一次学习多语言的经验吗?
Rahul Patil

Answers:


31

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

我发现随着对其他​​语言(和框架)的了解越来越多,我在C#(和ASP.Net)方面也变得更好。这就是为什么我相信一次学习多种语言根本不是一件坏事!


1
我完全同意,我也从C#开始。从我的初学者的角度来看,我遇到过很多东西,很难理解,如果我真的理解了它们,那么理解它们的用途或用途也同样困难。从那以后,我就了解了其他几种语言,这已经改变了世界。特别是由于每种语言都不同,因此您可以从每种语言中学习编程的不同方面。
fender1901 2011年

49

如果这是您的第一语言,那么我认为最好对它进行足够的学习以了解编程语言的工作原理。

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


2
+1我认为无论您是学习前三种语言还是学习第四,第五,第六等语言,都将带来很大的不同
。– keithjgrant

12

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

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

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

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


1
+1表示“确定新语言的优势...”。非常好
Nick Burns 2013年


7

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

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


由于它们之间的差异,JavaScript / Python可能是一个不错的选择。举个例子。
尼克indinsance

6

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

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

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

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

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


5

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

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


2

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.