写点什么

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

  • 2022-02-02
  • 本文字数:1824 字

    阅读完需:约 6 分钟

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

作为谷歌-新加坡的高级软件工程师,我常常会收到“什么编程语言值得学习”一类的问题。到底该学什么呢?我的建议是,“随便”。

编程语言只是一种达成目的的手段

 

无论你是从 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]## orfor i in range(0, len(x)):  x[i] = x[i] + 1
复制代码

 

在 JavaScript 中:

for (var i = 0; i < x.length; ++i) x[i]++;// Orvar y = x.map(val => ++val);// Orvar 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

2022-02-02 14:0013261

评论 15 条评论

发布
用户头像
这是个博客系统吗?
2022-02-17 08:34
回复
用户头像
听君一席话,浪费三分钟
2022-02-09 10:00
回复
用户头像
是地,虎头蛇尾
2022-02-08 20:43
回复
用户头像
需要一个投诉按钮
2022-02-08 12:27
回复
用户头像
最后的最后,不要再费心寻找什么 2022 年最值得学习的编程语言了,这一切都取决于你自己。
2022-02-08 12:27
回复
用户头像
听君一席话如听一席话
2022-02-07 18:50
回复
用户头像
听君一席话如听一席话
2022-02-07 18:50
回复
用户头像
听君一席话如听一席话
2022-02-07 18:50
回复
用户头像
听君一席话如听一席话
2022-02-07 18:50
回复
用户头像
听君一席话如听一席话
2022-02-07 18:50
回复
用户头像
听君一席话,如听君一席话。
2022-02-07 13:34
回复
用户头像
说了等于没说,标题党 +1
2022-02-07 10:25
回复
用户头像
熟悉语言不重要,熟悉语言常用的类库很重要。不要重复造轮子。
2022-02-04 10:13
回复
用户头像
说了等于没说,标题党 +1
2022-02-03 23:02
回复
用户头像
好一个标题党
2022-02-02 15:30
回复
没有更多了
发现更多内容

2021能源发展极速前进,可视化赋能行业高效运作

一只数据鲸鱼

数据可视化 3D可视化 智慧能源 能源管理 光伏发电

揭秘版权保护下的视频隐形水印算法(上篇)

拍乐云Pano

网络攻防学习笔记 Day67

穿过生命散发芬芳

网络攻防 7月日更

绿色篮子APP开发|绿色篮子软件系统开发

慧心购系统开发|慧心购软件APP开发

数字货币这波热潮,各国都舍不得错过

CECBC

拼拼有礼APP开发|拼拼有礼软件系统开发

哈哈生活系统开发|哈哈生活软件APP开发

一千零一次飞升APP系统开发内容

华云大咖说 | 安超虚拟化平台全“芯”亮点揭秘

华云数据

架构实战营作业模块一

五只羊

架构实战营

iOS工程师如何恍然大悟?

程序员 IT 编程之路 iOS 知识体系

企业协作通过什么软件可以提高工作效率?

万事ONES

项目管理 敏捷开发 ONES 协同办公

FIL币价值与未来, FIL币价值预估

接下来的40年,碳中和对我们来说意味着什么?

CECBC

简单四步学会在数字孪生可视化场景中创建小地图!

ThingJS数字孪生引擎

大前端 地图 物联网 可视化 数字孪生

Apache ShardingSphere 邀您相约 Open Source Day

SphereEx

怎么在linux系统下安装Nginx?一分钟学会!

小桃

Linux 网络安全 系统

视频云峰会|“科技 X 艺术” 的颗粒度体验是什么?

阿里云CloudImagine

阿里云 AR 艺术 摄影 vr

论文解读丨图神经网络应用于半结构化文档的命名实体识别和关系提取

华为云开发者联盟

文档 识别 图神经网络 半结构化文档 关系提取

架构实战营作业 M01

Shawn Liu

#架构实战营

一文带你读懂CNCF Landscape

焱融科技

分布式 云原生 高性能 云存储 cncf

前端vue面试题,附答案

buchila11

Vue

查看Linux端口占用,并关掉相关进程。

学神来啦

云计算 Linux 运维

模块一作业

张文龙

#架构实战营

动手实操丨基于随机森林算法进行硬盘故障预测

华为云开发者联盟

机器学习 数据分析 modelarts 随机森林算法 硬盘故障

HarmonyOS开发者的喜讯——华为认证来啦!

科技汇

扩展Elasticsearch客户端简化ES查询(.net core/framework)

Spook

视频云会议已成未来发展必然趋势

anyRTC开发者

音视频 WebRTC 视频会议 云视频

367W字!京东商城Java架构师设计的亿级高并发秒杀手抄笔记

Java架构追梦

Java 架构 秒杀系统 亿级并发 京东商城

谷歌高级工程师:2022年最值得学习的编程语言_语言 & 开发_Minhaz_InfoQ精选文章