猿问

为了掌握现代的编程语言, 都要掌握哪些知识点?

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

DIEA

在我看来掌握一门语言主要是了解它的环境、目标平台、运行时依赖、性能(这决定你能不能用它)编程范式,OO能力如何,FP能力如何(这决定你用它的姿势)类型系统(剩余基本上都是怎么用它)常见数据结构的体现(list/map/collection之类)命名空间,代码组织方式自带类库和常见操作如何找第三方类库,引入第三方类库,包管理依赖管理机制知名第三方框架的做法和用法和实现,解决了语言本身的哪些问题

缥缈止盈

掌握好英文,然后多学一些编程语言就好了。比如我学Rust,因为同时有C、Python和Haskell基础,所以底层知识难不倒我,各种语法上不会觉得别扭(其实我也熟悉其它语言的因素),类型系统上也不陌生。另外,Coroutine,Generator,Channel,Continuation,Process,Thread不是异步处理的方法,而是各种对执行流程的抽象。有调度者根据I/O事件来调度,就可以处理I/O事件了。就这样子。你的目标也不明确。你是要学习编程语言本身,还是使用编程语言做特定领域内的开发?比如你写GUI,几乎不管用什么语言,都是一个主循环,处理各种事件的。再比如正则,虽然语法有差异,但是原理所有语言都没多大区别。而且还有像PCRE这种正则库。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答