我是Python的初学者,到目前为止我真的很喜欢。我经常想到的一个问题是,我是否需要了解并学习编程语言的内在知识(例如Python)。您可能知道,Python本身是用C编写的。
所以我的问题是:必须精通一种语言才能熟练或熟练使用该语言。我将此问题与“自然”语言进行比较。我不知道我的母语语法的每一个细节,但我能够用该语言毫无问题地表达自己。这是我说我的语言很流利的时候。那也适用于编程语言吗?
我是Python的初学者,到目前为止我真的很喜欢。我经常想到的一个问题是,我是否需要了解并学习编程语言的内在知识(例如Python)。您可能知道,Python本身是用C编写的。
所以我的问题是:必须精通一种语言才能熟练或熟练使用该语言。我将此问题与“自然”语言进行比较。我不知道我的母语语法的每一个细节,但我能够用该语言毫无问题地表达自己。这是我说我的语言很流利的时候。那也适用于编程语言吗?
Answers:
您无需了解任何编程语言的内部知识,就可以使用该语言编写程序。但是,您越了解该语言,您的程序就会越好。
数据结构和算法的知识将帮助您选择最适合您的特定任务的数据结构。一些语言在内部拥有这些数据结构。
理解语言的“文化”有助于您遵循“最佳实践”编写程序,使它们更易于理解,更易于维护且性能更好。
为该语言编写一个编译器(或为该语言编写另一种语言的编译器)可以使您对这种语言有深刻的理解,并使您的程序超越普通水平。
精通其他语言(尤其是其他范式的语言)会使您成为主要语言的更好的程序员,因为您可以将这些技能和工具带入主要语言。
因此,您不需要了解计算机就可以在其上编写程序。但是,了解计算机的工作方式会使您更好地为其编写程序。
我用以下语言定义“熟练”:
请注意,该语言的工作方式不在此列表中,但是有很多“学习能力”。至少对内部结构有一个粗略的了解可能会有所帮助,但不一定要精通。但是,对它们的了解足够多,您将能够理解您正在阅读的文档中的所有参考文献,这是一个非常好的主意。
例如:我知道VB.NET和C#都被编译为.NET的IL(中间语言),然后针对目标框架进行编译。我对IL的了解不多,但我了解的知识足以让我在看到它时就认识到它,并从一般意义上理解它如何处理某些事情。我认为自己精通C#,但不精通VB.NET,即使“内部”相同,而且我对它们的理解也不深。