Neojoke
2018-11-23 09:07:36 +08:00
有同感,已经习以为常了。
不经常用,就会忘记具体的库的 API 和技巧。
我有个办法,既能够掌握多门语言,又能深刻理解和记忆。
当你掌握大量编程语言的知识和经验的时候,如果经常忘,就要想办法对已经掌握的知识进行压缩。
压缩的原则是:相同和类似的知识只记忆一次,只记忆不同点并进行对比俯视。
比方说 j2ee 的体系结构和 Ruby on rails 的体系结构的对比,这两者属于同一类概念,是两门语言的开发规范和实践框架,不断对比,理解和加深记忆,就能记忆住不同的技术栈里面相对应的组件、工具和库
比方说 Ruby 的 mixins 和 Java 的接口之间的不同和联系
比方说 Java 的重载和 Ruby 的重载原则有什么不同
比方说 Ruby 的垃圾回收和 Java 的垃圾回收有什么一样和区别的地方
如果能经常这样思考,对比,触类旁通,可以通过学习另外一门新语言,俯瞰之前已经熟悉的另外一门语言,就能进一步把握理解老的语言,快速掌握新语言的核心。
我经常就这样做,不断拿起使用不同语言写过的代码,放在一起。
JavaScript 的协程和 Python 的协程有哪些不一样的? JavaScript 的 promise 和 Python 的 generator 有什么联系。
Java 的反射和 Python 的动态类型有什么区别,反射能做到什么不能做到什么,Python 的动态类型可以做到什么,又有什么坏处
等等
去思考为什么这门语言要这样用,那门语言要这样设计,一切皆有缘由