首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Schliemann的编程语言学习方法

Schliemann的编程语言学习方法
EN

Stack Overflow用户
提问于 2010-02-17 17:28:48
回答 4查看 1.6K关注 0票数 16

背景:19世纪的德国考古学家海因里希·斯利曼当然以他成功地探索和挖掘特洛伊城而闻名(这是荷马伊利亚特特洛伊的一个实际考古遗址)。

然而,他同样以成为令人惊讶的语言学习者而闻名--在两年的时间里,他学会了流利的荷兰语、英语、法语、西班牙语、意大利语和葡萄牙语,后来又学了七门,包括现代和古希腊语。

他最著名的方法之一是比较一篇已知的课文,例如用一种流利的语言写一本书,用一种你想学的语言把一本书翻译得很好,然后并行地读一遍。(各种来源引用Schliemann所用的书作为“圣经”,或者,如上面所述的,是一本小说)。

现在,关于实际的问题。

是否有人使用(或听说)相当于Schliemann的方法来学习一种新的编程语言?,例如,不要以参考资料和教程为基础,而是采用一组比较全面的程序,这些程序已知在两种语言中都有实现类似/相同算法的高质量代码,并通过比较它们来学习。

我好奇的是,要么是个人应用这种方法的经验,要么是对某些已发表的东西的引用,或者是是否存在可用于这种方法的代码库?

让我思考这个想法的是Euler项目和我在C++、Perl和Lisp中看到的一些代码片段。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-18 00:37:52

Rosetta码可能是有用的。引用该网站的资料:

罗塞塔代码是一个编程切口网站。其想法是以尽可能多的不同语言提出相同任务的解决方案,展示语言是如何相似和不同的,并帮助一个人在一种方法中解决另一种问题。Rosetta代码目前有372个任务,涵盖197种语言,尽管我们没有(也不可能)有每种语言的每项任务的解决方案。

票数 8
EN

Stack Overflow用户

发布于 2010-02-18 00:19:39

我认为Schliemann的方法效果很差,因为创建一种新的编程语言的要点之一是引入新的话语对象和转移控制的新方法。在Schliemann比较两种文本的方法中,语篇的对象总是相同的,只有用来谈论它们的语言是不同的。

  • 例如,方法分派和继承本质上是新事物。所以,如果您了解Simula-67,那么您可以学习Java,甚至可以扩展到学习Smalltalk或C++。但是您不可能学习Tcl、Scheme、ML或dynamic,因为单继承和动态调度根本不存在。
  • 类似地,如果您只见过C或C++,甚至可能是Pascal/Ada/Modula/Clu,那么没有什么能真正为您提供一流函数的强大和表现力。
  • 另一个例子是,如果一种语言(Perl)有正则表达式,另一种语言(SNOBOL)有模式匹配,第三种语言(Icon)有字符串扫描,那么如何比较解决字符串处理问题的方法呢?你可怜的脑袋会爆炸的!

如果所讨论的语言非常相似,Schliemann的方法可能有其用途。假设您了解Java,并且希望学习C#,反之亦然。或者改变OCaml/F#/SML系列中的语言。但在大多数情况下,我怀疑Schliemann的方法会弊大于利。

票数 9
EN

Stack Overflow用户

发布于 2010-02-17 17:33:45

在一种语言中实现某事的最佳方式不太可能在另一种语言中遵循相同的模式。因此,很难找到对应点。采用这种方法可能会教会您如何使用您正在学习的语言进行糟糕的编程--看看以Java作为第一编程语言的人用C++编写的所有糟糕的类似Java的代码。

编辑:代码中的典型java:

代码语言:javascript
复制
string * s = new string;

而不是采用C++方式:

代码语言:javascript
复制
string s;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2282928

复制
相关文章

相似问题

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