2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

厚积薄发!华为云7篇论文被AAAI收录,2021年AI行业技术风向标看这里!

华为云开发者联盟

人工智能 卷积网络 远程监督 域泛化 油气储集层收集

大背景 (28天写作 Day25/28)

mtfelix

28天写作 新能源汽车 新能源革命 碳中和

第十周 模块分解作业

简简单单

安卓开发交流!一线互联网移动架构师筑基必备技能之Java篇,Android岗

欢喜学安卓

android 程序员 面试 移动开发

日记 2021年2月2日(周二)

Changing Lin

个人感悟 2月春节不断更

Elasticsearch 写一致性原理

escray

七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

Python 中 sorted 如何自定义比较逻辑

zikcheng

Python sorted cmp

就算知道了答案,真的会改变吗?「幻想短篇 25/28」

道伟

28天写作

话题讨论|过年回家你带电脑吗?

熊斌

话题讨论 28天写作

第三章: 产品解决方案作业

让时间说真话

产品经理 产品经理训练营

用RabbitMQ了好几年之后,我总结出来5点RabbitMQ的使用心得

四猿外

MQ RabbitMQ 消息队列

【WOW.js】Animate.css的黄金搭档

德育处主任

CSS 动画 js 28天写作 2月春节不断更

前端面试必备ES6全方位总结

我是哪吒

程序员 面试 大前端 ES6 2月春节不断更

不要在nodejs中阻塞event loop

程序那些事

node.js Event 事件循环 程序那些事 nodejs event

高性能缓存 Caffeine 原理及实战

vivo互联网技术

Java Caffeine 本地缓存

产品经理训练营第0期-第三次作业

孙行者

第0期 产品经理训练营 问题

华为云FusionInsight助力宇宙行打造金融数据湖新标杆

华为云开发者联盟

数据湖 云原生 存储 FusionInsight 华为云

云原生动态周报 | Google推出VM Manager

华为云原生团队

Docker 开源 云原生 华为云

第三章:产品解决方案作业

让时间说真话

产品经理

官宣了!Apache ECharts 毕业成为 Apache 软件基金会顶级项目!

百度Geek说

百度 基金会

时间约束帮助我写作

Justin

方法论 创意 习惯养成 28天写作

ModelArts AI Gallery与HiLens Kit联合开发丨行人社交距离风险提示Demo

华为云开发者联盟

华为云 modelarts hilens 行人 社交距离

挖矿系统APP源码搭建

luluhulian

说说常常被研发忽略的原型模式

后台技术汇

28天写作 2月春节不断更

使用pgBackRest并行归档解决wal堆积问题

PostgreSQLChina

数据库 postgresql 开源 开源社区

OpenAI将k8s扩展至7500个节点以支持机器学习;Graph Diffusion Network提升交通流量预测精度

京东科技开发者

区块链 开源

产品训练营 第三次作业

Wangyunnfei

第十周 学习总结

简简单单

安卓开发软件有哪些?分析Android未来几年的发展前景,吐血整理

欢喜学安卓

android 程序员 面试 移动开发

史上最清晰的Tarjan算法详解

华为云开发者联盟

算法 静态分析 语法树 Tarjan 数据流

挖矿区块链_什么是挖矿 带你详细了解挖矿基础知识

v16629866266

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