学习多种语言

时间:2010-03-31 03:08:04

标签: programming-languages

一旦你学会了一种语言,它就会变得更容易学习第二种语言并且是否有成对的语言?学习一种语言甚至是一个好主意?

11 个答案:

答案 0 :(得分:19)

学习多种语言是优秀的理念 - 这不仅可以让您在求职时更加灵活,而且只需拓宽您的思维愿景关于编程的全部内容。

第二种语言通常是最难的 - 因为你的第一语言已经做了很多工作来塑造你的思维和编程时的操作。最困难的情况是两种语言在表面上相似但有深刻而微妙的差异:由于表面相似性使你蒙羞,所以很难察觉,理解和学习细微的差异。

如果你掌握了彼此相距甚远的两种语言,那么第三种语言会更容易......之后只会变得更容易,更轻松。一对很好的语言是一种非常高级的语言(如Ruby或Python)和一种非常低级的语言(尤其是C语言);然而,像Haskell这样的函数式语言,以及与Java等函数完全相反的函数语言,也应该可以正常工作。

答案 1 :(得分:4)

重复上述所有观点,我强烈支持学习多种语言的概念,并且至少在两种非常不同的语言中获得高水平。事实上,我认为在表面上了解五种语言是有益的,如果它激发你的好奇心去学习更多,但你仍然应该掌握不止一种语言。“

以下是您可能需要考虑的一些(非独占)类别的语言。

  • 编译(C,C ++,...)/解释(Perl,Ruby,Python,PHP,...)/ JIT(Java)
  • 高级别/低级别
  • 面向对象/程序/声明/功能
  • 成立/实验
  • 一般/特殊目的/特定领域
  • 强类型/宽松类型

理解这些语言背后的权衡和理念及其实现必将使您成为更好的程序员。当然,可能需要一段时间来试验所有这些,并熟练掌握其中的一些。但是,即使在第一步,这种体验也是有益的,即时满足和好处,所以你不应该因过多的选择而感到绝望。

答案 2 :(得分:3)

我认为学习概念而不是语言语法更为重要。话虽这么说,要真正掌握一种语言,你经常需要忍受痛苦的磨合。此外,某些语言可能提供库支持,这有助于更好地解决特定问题。学习多种语言是可取的;你不是只用一个俱乐部打高尔夫球吗?是吗?

答案 3 :(得分:3)

了解多种语言非常有用。事实上,this very good book建议每年学习一个。学习新语言确实变得更容易,因为它们总是存在重叠的概念。

答案 4 :(得分:2)

  1. 是的,一旦你非常了解一种语言,学习其他语言会更容易,因为你可以将你熟悉的技术映射到另一种语言的不同语法。这假设两种语言都具有可比性 - 例如,C ++不能与Ruby完全比较。
  2. 学习多种语言绝对是个好主意。您学习的语言越多,您的体验就越广泛。最终,您开始了解语言之间基础架构和设计的差异,以及为什么有些人在特定编程任务中比其他人具有优势。

答案 5 :(得分:1)

是,是,是的。

在学习一门语言时,你会学到很多编程的基本原理,就像那种语言所表达的那样。许多语言使用类似的概念,甚至是相同的框架和基本结构。这可以使学习第二种“类似”语言变得非常容易。例如,如果您学习C#,VB.NET非常简单,因为它使用相同的框架和相同的基本概念。

然而,学习不同的语言也会迫使您学习不同的方式来“思考”问题。如果从静态类型语言转换为解释语言或函数式编程语言,则尤其如此。它们会迫使你重新思考你的编程方式,这可以让你成为一个更好的程序员。

答案 6 :(得分:1)

当您学习更多语言时,您倾向于根据概念或图像来考虑事物,而不是您喜欢的语言的特定功能。学习第三种或第四种语言肯定比第一种或第二种语言更容易,因为你已经理解了在新语言中展示的许多概念(以及可能的语法)。学习更多语言是个好主意。

答案 7 :(得分:1)

是的,一旦你理解如何将问题分开,以便你可以编写解决方案代码以及公共代码的部分内容,那么学习另一种语言会更容易。有些比其他人更难。

学习更多编程语言与学习多种真实语言的方式相同。你可以通过各种语言学习,让两者都更好。你还有另一种技能可以出售。有些语言更适用于某些类型的问题...了解更多语言可以让您更好地解决这些问题。

答案 8 :(得分:1)

大部分时间都是。一旦理解了编程的一般概念,就可以开始学习不同语言的类似模式。特别是如果语言来自同一个系列或属于同一类型(例如,一旦你学习了C或C ++,就很容易学习Java,Javascript,C#,PHP等等)。当然掌握它们可能同样困难,但你会迅速掌握90%的东西。

然而,对于学习而言,学习来自不同家庭和不同基础的两种语言(如C和Haskell)要好得多。它将扩大您的视野,并允许您提出超出这些语言的正常思维框架的解决方案。

答案 9 :(得分:1)

学习不同的语言教会你以不同的方式思考。这些思维模式通常可以用于任何语言,所以是的,学习多种语言是很好的。

话虽如此,从表面上了解5种语言,永远不会像知道一种语言一样好。再说一次,如果你已经知道了另一个,那么再知道5个就会让你榨取骨髓。

编程语言通常只有很少的单词,而且大多数单词都可以在不同语言之间进行翻译。然而,当你学习第一语言的同时,学习语言时你必须学习编程方面的思考。 第二种语言要容易得多,第三种语言也是如此,第四种是在公园里散步,第二次是一块蛋糕,第六种是在一个漂亮的小咖啡馆里的一块蛋糕,等等,你得到了图片: )

/ B2S

答案 10 :(得分:1)

这里有很多好建议。如果不是全部的话,我会排在第二位。

根据我的经验,我实际上建议选择三种语言。我会选择一个看起来最容易学习和最有用的学习方法,并且能够很好地了解语法以便能够发现现有代码的问题,但是不要觉得你必须把它掌握到这一点。你从内存中编写专家,无错误的代码。在您工作和学习时,使用您的文档和参考作为浮动设备。花更多时间掌握概念......特别是调试!然后跳进去尝试一下,即使你最初建造的东西很糟糕,也可能根本不起作用。 (我觉得我头脑中最坚实的概念就是那些我自己试图解决的问题,而不是在尝试编码之前通过仔细阅读想法来学习。)

一旦你将第一语言打得很好,就转到第二语言,也许是语法与第一语言尽可能不同的语言。这种方法让我对概念有了更多的了解,并确认我不需要成为语法专家来完成工作。毕竟,通常有大量的文档,教程和讨论可供任何人和所有人使用。

然后选择第三种语言并深入研究。你会惊讶地发现第三种语言更容易。你会看到你已经学过的两个极端之间的语法中间点,以及非常相似的编程概念。

如果你想要极具竞争力和适销性,你可以选择基于多样性的语言:例如,一个对客户端的Web有利,一个对服务器端有利,一个对平台有利的语言/设备开发。或者,根据您所知道的建筑选择语言。我发现这是最令人满意的,是什么让我感兴趣;也就是说,如果你知道你是一个游戏狂热分子,只需学习一些语言,使你能够在不同的平台上构建和移植强大的游戏,并保持你的专注。

最后,不要通过将自己与其他开发人员进行比较来让自己承受压力,让自己觉得自己必须像他们一样,或者像他们一样快速地学习他们做了什么,他们做了什么。尝试并发现适合您的方法并坚持下去。

只是我的两分钱。祝你好运!