谷歌高级工程师:2022年最值得学习的编程语言

2022 年 2 月 2 日 AI前线
作者 | Minhaz
译者 | 马可薇
策划 | 凌敏
作为谷歌 - 新加坡的高级软件工程师,我常常会收到“什么编程语言值得学习”一类的问题。到底该学什么呢?我的建议是,“随便”。
编程语言只是一种达成目的的手段

无论你是从 C++、Java、Python、JavaScript,还是其他语言起步,新语言的学习通常不会花费太多时间,也不应是你学习的首要关注点。

编程语言不过是一种达成目的的手段。因为在工作中,我们常常会根据需要在不同语言间切换。

在高中时,我的编程入门语言是 C++。而大学时,我又在 JavaScript 上投入了大量的精力。在微软工作时,常常需要使用 C#/.Net 和 TypeScript。而我在谷歌所负责的安卓相机应用又需要我学会 Java。在转而开发相机的计算摄影后,我写了许多生产的 C++ 以及原型相关的 Python 代码。

纵观我的编程生涯,新语言的学习成本从未高出预期。

在时间的长河中,人们构建了许许多多的编程语言,并根据其不同的使用方式进行分类,有的纯粹用于标记,如 HTML 和 XML;有的则完全以脚本形式服务,如 shell 和 bat 脚本;有的语言则是功能型的,等等,不一而足。

在不同“种类”的语言间切换可能会涉及到一定的学习成本,但如果你对某种语言有基本的了解,那么新语言的学习难度将大幅下降。

训练解决问题的能力

那话说回来,我们到底应该把精力放在哪里呢?

坦率来说,最重要的应还是训练自己解决问题的能力。

  • 如果要做一个网页应用,怎么写?

  • 如果想要提高一款安卓应用的性能,怎么做?

  • 如果你要解决的问题可以通过训练后的神经网路解决,从哪里入手?

即使你是第一次接触这个问题,只要能将其解决,无论用什么语言,对你来说,都将是一种锻炼。

你大可放心学习各种新鲜技术,深入研究那些在你看起来很神奇的概念,尝试探索不同的流派,最后选择一项你真正喜欢的东西来进修。待你神功大成后就会发现万宗归一,所有的编程语言本质其实差不多。

那有什么具体点的建议吗?

下面,我将奉上为不同职业阶段的开发者们量身定做的两条攻略。

1. 如果你是刚刚接触编程

你可以先从一门自己想从事的技术开始,无论是网页设计、安卓或 iOS 移动端开发、游戏开发、其他类型的应用开发、机器学习模型训练,还是桌面应用构建,但重点是一定要选择一种,并开始学习其相关的语言。如果有时间,可以通过随手编写小程序来学习,不断探究计算机魔法背后的原理。

下一步,你可以开始挖掘语言中已被抽象为库的基础概念,如并发或多线程、数据库、图形渲染、图像处理、网络连接等等。要知道,无论是什么编程语言,要么是直接编译为汇编指令,要么就先编译为中间字节码,再编译为汇编指令供硬件执行。一旦你接受这个事实,就会发现各种语言其实并没有什么差别。

举个例子,“将数组中每个数值都增加一”,根据不同语法,处理方式也不一样。

在 Python 中:

y = [i + 1 for i in x]
## or
for i in range(0, len(x)):
x[i] = x[i] + 1

在 JavaScript 中:

for (var i = 0; i < x.length; ++i) x[i]++;
// Or
var y = x.map(val => ++val);
// Or
var y = Array.from(x, val => ++val);

在 Go 中:

for i:= range x {
x[i]++
}

这些或复杂或简单的语法最终都会被编译为这些:

increment(int*, int):
cmp w1, 0
ble .L1
mov x2, x0
add x1, x0, w1, sxtw 2
.L3:
ldr w0, [x2]
add w0, w0, 1
str w0, [x2], 4
cmp x2, x1
bne .L3
.L1:
ret

有趣的是,在这些例子中有的语言会复制数组,有的则不会。初学者可以先集中精力学习这类语言间的不同之处以及其对程序的影响。

2. 如果你经验丰富并精通一种编程语言,但仍不满足

同样,你可以先退一步,仔细考虑看看到底哪种类型的问题更能引发你的兴趣,哪些方法可以带你走向学习的新方向。

举例来说,在开发相机应用时,我曾有幸参与“夜间模式”的研究。这一功能需要程序可以捕捉一系列的图像,并通过一定方式将其稳定地合并,以确保最终图像曝光良好且噪音不高。这些操作的计算成本高昂,意味着程序的算法需要在资源有限的硬件上运算,且延迟不能超出预计。

这意味着,我需要重新复习 C++ 和图像处理概念等内容。这个挑战是非常有意思的,相对而言,花费在学习上的精力完全算不上是麻烦事。希望各位可以找到这样的方向,并开始你们学习的步伐。

最后的最后,不要再费心寻找什么 2022 年最值得学习的编程语言了,这一切都取决于你自己。

原文链接:

https://betterprogramming.pub/the-best-programming-language-to-learn-in-2022-senior-engineer-at-google-explains-5abcbc5f6556

今日荐文

点击下方图片即可阅读

年度最全 IT 吃瓜指南


你也「在看」吗?👇

登录查看更多
0

相关内容

程序设计语言( Programming Languages )又称编程语言,是一组用来定义计算机程序的语法规则。
《机器学习》简明导论,21页pdf
专知会员服务
71+阅读 · 2022年3月2日
【干货书】Python 数据科学学习手册,548页pdf
专知会员服务
85+阅读 · 2021年3月14日
【经典书】数据科学艺术:数据工作者指南,162页pdf
专知会员服务
54+阅读 · 2021年3月9日
专知会员服务
91+阅读 · 2020年12月26日
专知会员服务
98+阅读 · 2020年12月19日
【2020新书】Ruby 3 编程: 从小白到专家,598页pdf
专知会员服务
29+阅读 · 2020年12月17日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
264+阅读 · 2020年6月10日
D 语言是否可作为入门级的编程语言?
“C 不再是一种编程语言!”
CSDN
0+阅读 · 2022年4月4日
不要学习“网红”编程语言
AI前线
0+阅读 · 2022年3月19日
2022年或以后注定消失的五种编程语言
AI前线
0+阅读 · 2022年1月17日
Kotlin,竟然这么香!| 极客时间
InfoQ
0+阅读 · 2022年1月5日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
21+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Verified Compilation of Quantum Oracles
Arxiv
0+阅读 · 2022年4月20日
Arxiv
0+阅读 · 2022年4月17日
Arxiv
17+阅读 · 2021年3月29日
Arxiv
11+阅读 · 2019年6月19日
Arxiv
27+阅读 · 2017年12月6日
VIP会员
相关VIP内容
《机器学习》简明导论,21页pdf
专知会员服务
71+阅读 · 2022年3月2日
【干货书】Python 数据科学学习手册,548页pdf
专知会员服务
85+阅读 · 2021年3月14日
【经典书】数据科学艺术:数据工作者指南,162页pdf
专知会员服务
54+阅读 · 2021年3月9日
专知会员服务
91+阅读 · 2020年12月26日
专知会员服务
98+阅读 · 2020年12月19日
【2020新书】Ruby 3 编程: 从小白到专家,598页pdf
专知会员服务
29+阅读 · 2020年12月17日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
264+阅读 · 2020年6月10日
相关基金
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
21+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
相关论文
Verified Compilation of Quantum Oracles
Arxiv
0+阅读 · 2022年4月20日
Arxiv
0+阅读 · 2022年4月17日
Arxiv
17+阅读 · 2021年3月29日
Arxiv
11+阅读 · 2019年6月19日
Arxiv
27+阅读 · 2017年12月6日
Top
微信扫码咨询专知VIP会员