为了掌握现代的编程语言, 都要掌握哪些知识点?
我想大多数人都是从一门两门语言开始学习编程的,
慢慢地, 发现不够用了, 或者是不好用, 就开始学新的语言.
但是人们又说, 编程语言都是相通的, 几个星期就能上手其他语言(反正我没成功过...)
渐渐我看到有些知识点会在各种语言里出现, 因为写软件需要这些功能和模式.
我觉得应该有学习各种不同的编程要掌握的关键点, 我现在能想到的是:
- 高阶函数(对于清晰化代码的逻辑, 形成强大的递归非常有效)
- 面向对象方式抽象代码(不是整套语法, 但是按照 OOP 思路可以将程序合理地模块化)
- 基于事件和回调的异步编程(这种 Web 前端和后端泛滥的东西)
- Coroutine, Generator, Go Channel, Coninuation 等等异步处理的方法
- 文件处理, 正则和文本处理(操作代码日常的工作啊)
- 类型系统, 泛型(...不大确定, 但 JS 弱类型带来了大量问题)
- MVC (做图形界面绕不过的模式)
- Git(某人比喻跳伞穿的降落伞) 和包管理工具
...
以上是我个人角度列的一些东西, 完整的列表应该是什么样子的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在我看来掌握一门语言主要是
掌握好英文,然后多学一些编程语言就好了。
比如我学 Rust,因为同时有 C、Python 和 Haskell 基础,所以底层知识难不倒我,各种语法上不会觉得别扭(其实我也熟悉其它语言的因素),类型系统上也不陌生。
另外,Coroutine, Generator, Channel, Continuation, Process, Thread 不是异步处理的方法,而是各种对执行流程的抽象。有调度者根据 I/O 事件来调度,就可以处理 I/O 事件了。就这样子。
你的目标也不明确。你是要学习编程语言本身,还是使用编程语言做特定领域内的开发?比如你写 GUI,几乎不管用什么语言,都是一个主循环,处理各种事件的。再比如正则,虽然语法有差异,但是原理所有语言都没多大区别。而且还有像 PCRE 这种正则库。
同意二楼。。。搞那么多列表没有太多意义吧。。先确定自己做哪个领域,然后,就有深度地学习。有时间多看技术新闻,拓展一下广度就行啦。