我认为有些人在开始学习一门新的编程语言时也会这样做。(例如,开始学习Ruby,但已经使用C#多年)他们开始尝试使结果相同,只是使用不同的编程语言。比如使ruby数组中的循环与C#中的循环相同。
我真的很想知道,在学习一门新语言的时候,有这样的想法是不是一个坏习惯?
我认为发现新语言的优点并不容易,因为它已经依赖于我们已经知道的语言。
发布于 2009-06-12 04:59:03
我认为,当第一次学习一门新语言时,试图将你所熟悉的另一种语言的代码“音译”成这种新语言是很常见的。刚开始的时候,你还没有一个新语言的完整心理模型可以使用,所以你需要利用你现有的知识,并试图将其硬塞进新语言中。
当然,这通常会导致新语言中的非惯用代码,以及通常没有很好地使用新语言来利用其独特的优势(并避免其独特的弱点)。因此,随着时间的推移,你需要放弃“尝试用你的旧语言做它的方式”。这种方法是开始的第一块有用的垫脚石,但从长远来看,它会损害你的利益。
我认为这有点类似于成年后学习一门新的口语。一开始,你为了理解而将听到的东西“翻译”回你的母语,但从长远来看,这种“翻译”会伤害你,通过练习和沉浸,你会学到足够好的新语言,从而跳过“翻译”步骤,使用和欣赏新语言的习语。
总而言之,我认为在开始学习一门新语言时使用这个策略是可以的,但越早放弃它越好。
发布于 2009-06-12 05:05:45
“真正的程序员可以用任何语言编写FORTRAN程序”:)
是的,这可能被认为是一个坏习惯,但不用担心这个。这只是个时间问题。自然语言也是如此:在你学习惯用表达之前,你会从你的语言中“映射”出结构,而且听起来有点奇怪。你练习得越多,你就变得越自然。
发布于 2009-06-12 04:59:44
我不认为这是一个坏习惯,这只是你还没有熟悉新的习语时所做的事情。第一步是让代码在新语言中运行,第二步是以“正确”的方式运行。
克服这一点的关键是阅读大量你想要学习的语言的源代码,你会学到那里的习语,以及有多年经验的人是如何解决简单问题的。
https://stackoverflow.com/questions/985021
复制相似问题