首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习一门新语言还为时过早吗?

学习一门新语言还为时过早吗?
EN

Software Engineering用户
提问于 2012-08-22 04:25:47
回答 5查看 1.9K关注 0票数 11

个人背景:在大学的6个月里,我一直在正式学习C++。在此之前,我涉足了JavaScript一年。现在我正在考虑在一个月的课余时间学习Python。

在学习过程的早期将我的注意力分开,这是否降低了我的学习效率?我应该继续在C++工作一个月吗?还是学习一门新语言永远不会太早?

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2012-08-22 05:20:25

我使用Python的经验仅限于一些播放代码,比hello world稍微复杂一些,所以这对于python来说并不是一个非常深入的答案,但我可以告诉您:

两种语言之间的不同之处在于语法和某些语言的具体细节是不同的(比如处理错误的不同方式、I/O功能以及编译器如何将输入转换为可执行文件),但是C++和Python都提供了相同的范例,所以在这两种语言中都可以用相同的方式来解决问题。C++和Python都是命令式和面向对象的,因此,如果您已经掌握了使用C++的问题解决技术来熟悉C++,那么您很可能很快就会使用C++。如果您愿意的话,您也可以使用Python进行函数式编程,但是我从来没有接触过这个部分,所以我不能告诉您太多关于它的内容。

现在还太早吗?我不能从你的故事中确切地说是或否。您是否已经有足够的信心用C++编写完整的(GUI)应用程序?(例如,使用库、更复杂的语言特性,如泛型和/或模板等)我认为学习一种新的语言范式要比在同一个范式家族中学习一种新的语言要困难得多。当您进入新的范式领域时,您将不得不花费更多的时间来获得如何使用该范式解决问题的好主意。在OO语言之间,当您将参数/参数传递给影响性能的函数时,在如何处理继承以及如何在内存中传递数据方面存在差异。但要开始,这些通常是次要的关注在一开始。

我的猜测是,如果你对C++有足够的信心,用一种奇特的方式做一些事情,而不仅仅是打个招呼,你就可以发射了。表面上学习许多语言将帮助您理解代码示例,而不管使用哪种语言,但是创建自己的代码需要更多地理解这些语言是如何工作的以及它们之间的区别。

当我想从表面上学习如何使用一种新的语言时,我通常会尝试以下几种方法来了解语言语法和肤浅的工作方式:

  • Hello (屏幕上的文本)
  • 写到文件中的Hello (教您关于该语言的文件I/O的基础知识,以及很多其他类型的I/O )
  • 用不同的基(10,十六进制,八进制),整数和浮点数做一些标准计算。(教你截断和数字表示法)
  • 尝试使用一些图形库在一个花哨的对话框中显示hello world。(教您如何使用库和外部代码)
票数 8
EN

Software Engineering用户

发布于 2012-08-22 06:57:56

当然是了。

毫无疑问,学习一种新的编程语言有时为时尚早。

最简单的例子是,如果一种尖酸刻薄的语言出现,在任何人指出它的不合适性之前,通过学习它,你就会损害你的大脑。在脑海中出现的一对夫妇包括基本的,第四,和APL。

对于一个更复杂的例子,一位伟大的计算机科学家描述了这个问题,简单地说,实践是永久性的,在学习计算机语言之前,有许多学科需要学习,这样语言就不会扭曲更基本的理解。用他的话说:

我们使用的工具对我们的思维习惯有着深刻而曲折的影响,因此也影响了我们的思维能力。

直接钻研编程的对手叫Edsger,他的职业生涯非常出色。他被授予ACM图灵奖,并获得下列奖项:

对于编程的基本贡献,作为一个高度的智力挑战;对于雄辩的坚持和实际的论证,程序应该正确地组成,而不仅仅是调试成正确;在程序设计的基础上阐明对问题的理解。

他吹嘘过早学习编程语言的论文是:

“论计算机科学真正教学的艰巨性”http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF

还有,请不要激怒我,我只是个信使。

票数 6
EN

Software Engineering用户

发布于 2012-08-22 06:11:03

学习一门新语言还为时过早吗?

我会答应的。如果你还在想着电脑可能真的会按你说的做,那么学习第二种语言可能会让你感到困惑。

但是,如果你已经过了这样的阶段,即你意识到计算机完全按照你说的做,不管它多么愚蠢,那么你很有可能对你的第一语言有足够的理解,看第二语言(和第三语言!)语言不会破坏你的注意力。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/161812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档