我想大多数人都是从一门两门语言开始学习编程的,
慢慢地, 发现不够用了, 或者是不好用, 就开始学新的语言.
但是人们又说, 编程语言都是相通的, 几个星期就能上手其他语言(反正我没成功过...)
渐渐我看到有些知识点会在各种语言里出现, 因为写软件需要这些功能和模式.
我觉得应该有学习各种不同的编程要掌握的关键点, 我现在能想到的是:
- 高阶函数(对于清晰化代码的逻辑, 形成强大的递归非常有效)
- 面向对象方式抽象代码(不是整套语法, 但是按照 OOP 思路可以将程序合理地模块化)
- 基于事件和回调的异步编程(这种 Web 前端和后端泛滥的东西)
- Coroutine, Generator, Go Channel, Coninuation 等等异步处理的方法
- 文件处理, 正则和文本处理(操作代码日常的工作啊)
- 类型系统, 泛型(...不大确定, 但 JS 弱类型带来了大量问题)
- MVC (做图形界面绕不过的模式)
- Git(某人比喻跳伞穿的降落伞) 和包管理工具
...
以上是我个人角度列的一些东西, 完整的列表应该是什么样子的?
在我看来掌握一门语言主要是