写点什么

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

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

解析vLLM架构及源码系列-整体架构

Jason黄

vLLM vLLM优化 vLLM源码

什么是低代码(Low-Code)?2025低代码核心架构技术解析与应用展望

优秀

低代码 低代码开发

阿里云正式开源 LoongSuite:打造 AI 时代的高性能低成本可观测采集套件

阿里巴巴云原生

阿里云 开源 云原生 可观测

新鲜出炉|指标平台「实践案例研究报告」等你来领~

Aloudata

数据分析 ETL 指标平台

Go 原理之 GMP 并发调度模型

秃头小帅oi

Playwright 自动化测试 | 测试框架集成​​Page Object 模式

测试人

软件测试

Vibe Coding 时代的开源社区开发新体验

老纪的技术唠嗑局

AI+ OceanBase 开源 cursor MCP

7 月 29 日晚,一场发布会,重新定义什么叫“数据在说话”

TDengine

tdengine 时序数据库

YashanDB RIGHT函数

YashanDB

数据库

MySQL有哪些“饮鸩止渴”提高性能的方法?

量贩潮汐·WholesaleTide

MySQL 数据库

铭芯科技共享轮椅租赁系统

微擎应用市场

mdraid、mdadm 与 Linux 软件 RAID 终极指南

Sergey Platonov

raid storage xiRAID MDraid

PandasAI连接LLM进行智能数据分析

不在线第一只蜗牛

数据分析

基于vLLM与AWS Trainium的冷启动推荐优化

qife122

推荐系统 vLLM

YashanDB ROUND函数

YashanDB

数据库

YashanDB ROWIDTOCHAR函数

YashanDB

数据库

亚马逊机器人如何应对交通拥堵

qife122

机器人技术 多智能体系统

北大张牧涵团队依托昇腾突破推理效率瓶颈 大模型推理百万tokens 成本仅 1 元

极客天地

寻医问药小程序系统

微擎应用市场

华为开发者空间部署FastGPT,构建知识库智能体

华为云开发者联盟

华为云ModelArts AI+ FastGPT DeepSeek v3 华为开发者空间

阶跃星辰端到端语音模型 Step-Audio 2:深度思考+音色切换;11Labs 对话式 AI 增加 WebRTC支持丨日报

RTE开发者社区

“子弹弹夹”装弹和出弹的抽象原理实战:掌握栈的原理与实战

电子尖叫食人鱼

JavaScript 数据结构 算法

寻疗智慧 IOT 数字健康服务平台

微擎应用市场

从一起知名线上故障,谈配置灰度发布的重要性

阿里巴巴云原生

阿里云 云原生 nacos

告别堡垒机时代!某电力公司如何用CloudQuery解决2000+数据库的安全困局?

BinTools图尔兹

Aloudata 入选 IDC “Data Flow Agent 代表厂商”和 DAC “数据资产运营商 TOP10”

Aloudata

agent 指标平台 noetl ChatBI

基于Amazon Translate的深度学习教材自动翻译系统

qife122

机器翻译 Amazon Translate

YashanDB RLIKE_FILTER函数

YashanDB

数据库

YashanDB ROW_NUMBER函数

YashanDB

数据库

GPUStack v0.7重磅更新:macOS与Windows安装包、昇腾MindIE多机推理、模型使用计量与寒武纪MLU支持

GPUStack

人工智能 AI 大模型 LLM

荣耀应用市场《2025上半年应用合规治理报告》丨开发加油站

荣耀开发者服务平台

应用中心 治理规范 荣耀开发者服务平台 荣耀应用市场

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