学习新语言时,最好是100%致力于一种语言,然后等到您“掌握”了另一种语言,或者同时学习不同的语言后,再继续学习呢?
如果重要的话,我目前正在学习C ++,我也想知道Java和Python。
学习新语言时,最好是100%致力于一种语言,然后等到您“掌握”了另一种语言,或者同时学习不同的语言后,再继续学习呢?
如果重要的话,我目前正在学习C ++,我也想知道Java和Python。
Answers:
我不仅看不到一次学习多种语言的问题,而且我认为它可以直接为您带来好处,因为一种语言的某些内容可以消除您使用另一种语言可能遇到的问题。例如,我的主要语言是C#,在处理LINQ时,我使用了SQL格式(这很好,我根本不敲它,但看起来似乎不是“很酷的方法”)。我之所以远离Lambda,是因为,老实说,我不理解它们,而且我所看到的C#文档没有为我提供明确的定义。然后,我开始挑选一些有关F#的书籍,并开始学习它,这让我有了“啊哈!”的那一刻,了解Lambda的方式。
我发现随着对其他语言(和框架)的了解越来越多,我在C#(和ASP.Net)方面也变得更好。这就是为什么我相信一次学习多种语言根本不是一件坏事!
如果这是您的第一语言,那么我认为最好对它进行足够的学习以了解编程语言的工作原理。
一旦有了良好的基础,就可以选择任意多个。
我认为对于程序员来说,一项重要技能是学习新的编程语言的能力。因此,我倾向于建议先尝试学习一种语言,然后再添加其他语言。
无论您的母语是什么,学习其他语言的过程都应:
随着时间的累积,您会形成自己的内部抽象伪代码语言,这将帮助您在已知的语言之间进行翻译。这种内部语言是您用来快速学习新语言的框架。
并行学习语言是很正常的事情。例如网络编程。您正在处理至少三种语言:服务器端(php,java,.net,ruby,python ...),客户端代码(java脚本和html),数据库(sql)。
html
也不sql
是编程语言。
一次学习多种语言没有问题。实际上,您永远不会真正掌握一种语言,因此,实际上,每当您使用一种以上语言时,您都可能会同时学习这两种语言。
您可能希望专注于一种语言以了解基础知识,以免使两种语言混淆。如果您正在学习类似的语言,例如Java和C#,则尤其如此。
我已经教了几年编程,所以我可以和大家分享我的经验。我假设C#是您的第一语言,所以我向从未接触过编程的人教授编程的经验可能会很有用。
首先,让我告诉您,每位经验丰富的程序员都应该学习一种以上的语言。但这并不意味着您刚刚开始就应该同时学习多种语言。
多年来,学生们已经证明,一种语言在头脑中固化大约需要一年的时间(至少是第一门语言),有时多一点,有时少一点。如果您尝试在一年内教授一种以上的语言,那么学生往往会把它们混合在一起并混淆概念和语言。尽管学生有所进步,但他们养成了很多不良习惯,以后很难清除掉。如果您自己学习,则这种风险会更高。
但是,我注意到,如果您教两种具有不同语法的语言会有所帮助。当两种编程语言看上去完全不同时,它会帮助人们将它们视为真正不同的实体而不会互相污染。(当一种编程语言帮助您用另一种语言理解困难的概念时,那是好的;当一种语言使您用另一种语言编写不好的代码时,那是不好的)。
因此,我的建议是第一年坚持使用一种编程语言。或者,最好是同时学习两种语言,只要它们看起来非常不同即可。如果您的第一语言是C#,那么我肯定会远离C,C ++,Objective C和Java。可能还有Python,Ruby和Javascript。我建议将C#与功能语言(例如Haskell,Scheme,F#,Erlang,Clojure或Scala)结合使用。
我认为一次学习多种语言比一次学习一种语言要好,因为如果两种语言足够不同,每种语言会让您有所不同。尝试将它们交错排列,以便在上一个阶段进入“绝对新手”阶段后就可以开始一个新的阶段。这样,您不仅保留了有关该语言的知识,而且保留了学习一种新语言的方式的机会要多得多。(对于以后的编程生活,您将不胜感激通用的语言学习技能。)
也就是说,学习母语需要大量时间和精力,而在此过程中,您可能根本没有时间从事另一个大型项目。如果您因为厌倦了C ++而考虑开始另一种语言,那就不要!它将鼓励您拖延。如果您由于不断看到提到用Java语言编写的项目而考虑开始使用另一种语言,并且对无法轻松阅读和分析代码而感到沮丧,那就去做吧!这是随时学习另一种语言的重要原因。