如果不考虑失业,最推荐学哪几门编程语言?

玉面郎君 2024-07-26 17:07:13 浏览数 (872)
反馈

今天看到一个话题:“如果不考虑失业,最推荐学哪几门编程语言?”

新手在面对编程语言的选择时往往会犹豫不决,总想学个最好的语言。然而,"最好" 的定义见仁见智,有人追求实用性,有人追求高薪资。

而如果你聚焦于一个更纯粹的目标:提升思维逻辑,感受编程的乐趣,那么可以学习什么语言呢?

借鉴著名的“金字塔原理”,我们可以将编程语言学习拆解成若干个独立互斥且完全穷尽的维度,从而构建高效的学习模型。具体来说,我们可以从以下几个方面入手:


类型系统


现代编程语言的类型系统大致可分为:

● 动态类型 vs 静态类型

● 强类型 vs 弱类型

动态与静态类型的区分相对明确,而强类型与弱类型之间则存在一定的争议,这主要取决于个人对这些概念的定义和理解。

接下来,我们如何基于类型系统选择性价比高的编程语言呢?这可以通过集合或矩阵分析来实现。


11


例如,对于已经掌握 JavaScript(动态弱类型)的学习者,学习 Haskell(静态强类型)的收益显然高于 TypeScript(静态弱类型),因为前者能够补足 JavaScript 所缺乏的强类型思维模型,实现类型系统维度的“完全穷尽”。

因此,对于JavaScript开发者来说,我更推荐学习Haskell,这并非因为TypeScript不值得学习,而是Haskell在类型系统维度上提供了更高的性价比。


编程语言排行榜


在考虑学习或使用编程语言时,可以参考一些基于编程语言人气和热度的排行榜,这些排行榜通常能反映出一些关键信息:一个语言的社区活跃度、生态系统的丰富性、潜在的高薪资水平以及成熟的工业标准。

例如,GitHub作为全球最大的编程社区,其发布的编程语言趋势是一个值得参考的指标。根据2023年度数据,JavaScript是目前全球最受欢迎的编程语言。


12


当然,人气高低只是参考因素,最终选择仍需回归到类型系统等核心维度。

我们真正要的是找到那些能互补、覆盖所有类型系统的语言。就像选两门语言,我们希望它们的结合能让我们掌握类型系统的方方面面。


13


设计与实现


除了类型系统,我们还可以从其他角度来分析和选择编程语言,比如:

● 编译 vs 解释

● 内存管理机制

这些维度可以帮助我们更全面地理解每种语言的特点,我们可以通过画出一维或二维的矩阵来比较不同语言。


14


但有时候也要注意一些边界模糊的区域,某些语言可能同时具备多种特性,例如 JavaScript 介于解释型和编译型之间,Rust 则属于半自动内存管理。


编程范式


编程范式是指编程的思维方式,例如面向对象编程(OOP)、函数式编程(FP)等。

现代编程语言大多支持多种编程范式,因此在选择时,我们应优先考虑能够涵盖尽可能多编程范式的语言,例如 JavaScript。

当然,如果想要深入学习某种特定的编程范式,也可以选择专门为此设计的语言。例如,想要学习逻辑编程,可以选择 Prolog。


-----------


无论是选择精通一门语言,还是博采众长,学习多种语言,最终目的都是为了提升自身的编程思维和解决问题的能力。

0 人点赞