写点什么

谷歌高级工程师: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:0012653

评论 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
回复
没有更多了
发现更多内容

诚邀|8月31日,【因果学习和决策优化挑战赛TOP10队伍作品秀】邀您共享因果学习智慧盛宴

九章云极DataCanvas

人工智能

已有小程序应用转App的一种技术

Speedoooo

小程序 小程序容器 小程序转app

开源一夏 | 23张图,4500字从入门到精通解释Redis

wljslmz

redis 开源 8月月更

多核驱动时代的降维打击 英特尔异构混合架构破局之路

科技之家

前端食堂技术周刊第 49 期:Deno即将迎来重大变革、Blitz 2.0 Beta、Chrome删除HTTP/2服务端推送

童欧巴

JavaScript typescript deno

直播预告 | 流程挖掘如何助力头部制造业实现千万级增长?

望繁信科技

华为云CDN&云视频通信专场:828低价购,CDN0.05元/GB起,短信0.006元/条起

sofiya

圆壹智慧创始人兼CEO 潘麓蓉:AI制药工业落地的痛点与前进方向

阿里云弹性计算

HPC 高性能计算 AI制药

在 WSL2 上部署 PyTorch

吴脑的键客

WSL2 Windows 10 PyTorch

实力上榜|海泰方圆跻身2022企业网络安全服务Top15

电子信息发烧客

Beetle编译/部署自动化

转转技术团队

CI/CD

你就是函数响应式编程(FRP)啊?!【附 RxJS 实战】

掘金安东尼

前端 函数式编程 8月月更

[教你做小游戏] H5小游戏技术选型分析,低代码?小游戏框架?canvas或SVG?还能用React?

HullQin

CSS JavaScript html 前端 8月月更

828选华为云,实惠更实用——为什么选择华为云CDN的企业多?

sofiya

高项-第一章 信息化和信息系统(1)

索隆

项目管理 软考 笔记分享

“九章云极DataCanvas AI平台赋能厦门航空”荣获AI平台应用标杆案例

九章云极DataCanvas

人工智能

全链路灰度新功能:MSE 上线配置标签推送

阿里巴巴中间件

阿里云 微服务 云原生

参与 TDesign 收获了什么?听听社区贡献者怎么说

TDesign

设计 产品经理 设计师

付费会员之我见-02(44/100)

hackstoic

商业模式 付费会员

分布式系统接口用例自动回归实践

转转技术团队

接口测试

他只是试图运用自己的能力,给这个领域带来改变

图灵教育

通信

无影云电脑

六月的雨在InfoQ

无影云电脑 云电脑 8月月更

九章云极DataCanvas YLearn因果学习开源项目荣获“可信AI实践优秀案例”奖

九章云极DataCanvas

周一见!距离阿里巴巴开源开放周还有3天

阿里巴巴中间件

阿里云 开源

什么数据库这么猛?5.6 版本刚开源一个半月,8.0 版本竟然就要启动了?| StoneDB 社区答疑第二期

StoneDB

MySQL 数据库 开源 StoneDB 8月月更

【杂谈】网络协议(二)

自然

网络层 8月月更

【真送礼物】1 分钟 Serverless 极速部署盲盒平台,自己部署自己抽!

阿里巴巴中间件

阿里云 Serverless 云原生

TDesign 设计资源大更新,产品经理和设计师都可以省心啦~

TDesign

设计 设计师

【杂谈】网络协议(一)

自然

网络 8月月更

开源一夏 | 一个裸机工程转FreeRTOS的实例

矜辰所致

开源 stm32 STM32CubeMX 8月月更 FreeRTOS

多模态算法在视频理解中的应用

之家技术

人工智能 算法 视频 多模态

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