“母语”对理解其他编程语言的影响?

因为我是学pascal上手的,对C类的语言理解起来就比较快。有多算法脑补的时候都用C类语言来完成。

但是接触面向对象相关语言和前端语言就花了很多时间去理解,可能到现在体会还不是特别深刻。duck typing的概念和javascript的原型链和变量作用域就直接刷新了我的下限。

我在想是不是C类语言对我学以后的语言带来了一些潜移默化的影响,导致我思考问题的方向被诱导了,有些东西理解起来就慢。非常想知道有没有有相同感受的朋友,或者学习面向对象语言上手的朋友,一起来谈谈“母语”对你们后来的学习有什么影响。

阅读 6.6k
6 个回答

现在的主流编程语言,都是一个 C 的外表,然后往里面加入 LISP 的精神。

关键是理解开发语言设计的理念和思路,接下来的事情就简单了。

在学习一门新的语言时,初期建议按部就班的学,不要过早往已经学过的开发语言的特性上靠,这样做容易造成按照固有的思维去理解新事物,学起来总觉得变扭。

结构化编程语言,面向对象编程语言,类似HTML的标记语言

本来就是三种几乎完全不同的概念,在学习面向对象编程的时候,不要用结构化编程的思维去思考。
不要认为你之前学习过结构化编程,再学习面向对象就会很轻松,一样要认真地学习,就像你从未未学习过编程那样认真,总之还是心态问题。

我感觉没受太多的影响。

我最开始学的是 QBasic,然后是胡乱自学 JavaScript。后来到大学学了 C++、Python、C 等。 个人感觉是,以开放的心态去学一门新的语言,已有的知识能用上就用(比如 C、Python 的学习让我更快更容易地理解了 C++ 的面向对象部分),不一样的不要硬往上套。

了解语言本质和语言开发者的原本意图,是了解一门语言最直观的手段。现在看来,比较完整保存下来并且广为使用的语言都有各种各样的特质,面向过程的会加入面向对象思想,面向对象的会加入函数式编程思想。所以说,并不能按照语言的类型来分,而是按照用途来分比较恰当。

楼主还能觉察到“母语”的影响,可见跨度还不够刺激,可以试试bf、lisp、asm,就不会有这种感觉了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题