如何学会所有的编程语言?

2020 年 2 月 26 日

如何学会所有的编程语言?

新手在开始学习编程时通常会问这个问题:

“我要从哪一门编程语言开始学起?”

在学会了几门编程语言之后,很多开发者会问这个问题:

“哪一门编程语言是最好的?”

我将会在这篇文章里给出我的答案。不过,比得到答案更重要的是:掌握学习新编程语言的能力。

授之以鱼不如授之以渔

对于一个编程老手来说,学习新的编程语言应该很容易。他们只需要一个周末甚至是几个小时就可以开始用新学的编程语言写代码了。优秀的程序员可以为了完成某个任务使用任何一门编程语言。毕竟,编程语言只是工具。

话是没错,不过更重要的你要学会“如何学习新的编程语言”,而不只是学会某一门具体的语言。要掌握“学会所有编程语言”的能力,你不需要是一个天才,你要做的是掌握编程语言的核心知识,并知道所以,代码实际上就是你传达给人类和计算机的“消息”。这也是在设计和实现编程语言时需要考虑的权衡点。因为:一些最佳实践。

下面让我来具体解释一下。

如果把编程语言比作汽车

要记住,编程语言只是工具,它们也是由程序员发明出来的。世界上有几千种编程语言,其中只有 20 多种在 IT 界里被广泛使用。如果你稍微想一想,就会发现这些编程语言有一些共同点。

我们以汽车为例,世界上有很牌子的汽车。有些车子紧凑但动力十足,有些车子笨重开得慢,不同牌子的车子具有不同的驾驶体验。

原文链接:【 https://www.infoq.cn/article/8STbPDW9M9xVGVc2eVIP 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2020 年 2 月 26 日 13:30 4786
用户头像
小智 InfoQ高级编辑

发布了 180 篇内容,共 3913 次阅读,收获喜欢 23 次。

关注

评论 9 条评论

发布
用户头像
编程的语法易,思维难。
2020 年 03 月 28 日 14:38
回复
用户头像
编程语言不难学,关键是各种配套的开发库、构建工具链 —— 比如说,现在的前端体系,差不多一年一换,会用了,做些别的事情回过头来以看发现之前用的全过时了……
2020 年 03 月 02 日 10:01
回复
这点完全赞成啊,前端体系就跟天女散花一样,真是有苦难言。
2020 年 03 月 02 日 16:43
回复
以前有位前端专家说前端难度十八个月翻一番,深以为然
2020 年 03 月 02 日 17:23
回复
用户头像
"《编程语言要领》介绍了很多种解释器,《编程语言编译器实践》也是一本适合用来学习编程语言的书。" 这两本书 也给个超链接呗
2020 年 03 月 02 日 09:32
回复
已更新
2020 年 03 月 02 日 15:01
回复
用户头像
每个程序员都是翻译,把逻辑翻译成机器代码,所以不掌握几门语言,怎么当翻译,哈哈
2020 年 02 月 29 日 21:31
回复
在理
2020 年 03 月 02 日 15:01
回复
用户头像
“有人说,在掌握 5 门编程语言之前,不要把自己当成高级程序员”,高级的目标有了
2020 年 02 月 26 日 13:52
回复
没有更多评论了
发现更多内容

记:mybatis <foreach> 语法错误

Kevin Liao

mybatis foreach SQL语法 SQLSyntaxErrorException

ARTS week 1

锈蠢刀

团队快速扩张时期的组织架构演进

Breeze

团队管理 团队协作 团队 团队组织

IDEA 插件开发实战

李孟

Java 工具 IDEA 插件 idea插件

JAVA AGENT 学习

zane

Java Java Agent

使用docker-compose部署单机RabbitMQ

Kevin Liao

Docker Docker-compose RabbitMQ

IO多路复用整理

戈坞昂

Linux io

zabbix实战指南(1)

橙子冰

zabbix

重学 Java 设计模式:实战建造者模式

小傅哥

设计模式 小傅哥 重构 代码质量 优化代码

Oracle误删数据闪回

阡陌r

RabbitMQ发送消息步骤&源码

云淡风轻

读书笔记 RabbitMQ

Android实现人脸识别(人脸检测)初识

sar

android OpenCV renlianshibie

《零基础学 Java》 FAQ 之 15-Java范型做了两件事

臧萌

Java

《零基础学 Java》 FAQ 之 13-编程里的两个特殊的值

臧萌

Java

一文道尽 Excel 的 Criterion

张利东

Excel

在 Go 中使用并发编程 - 第一部分

TuringTuring

golang 并发编程 线程模型

线程的取消和关闭

tison

Java 线程 并发

ARTS - Week 1

Khirye

ARTS 打卡计划

唯技术论坏处都有啥?如何跳出唯技术论思维?

KAMI

方法论 思考 思维方式 开发 唯技术论

OpenResty 部署配置和日志切割

wong

centos log openresty

写给产品经理的信(3):抗压能力需要多强?

夜来妖

生涯规划 产品经理 进阶 压力 工作方式

ES 操作之批量写-BulkProcessor 原理浅析

PCMD

Java elasticsearch 后端

【摘】Git-从零单排 01期

卡尔

git 效率工具 工具 开发工具

Git内部原理介绍

戈坞昂

git

机器学习-有监督学习入门

第519区

机器学习 数据产品经理

程序员如何阅读英文资料

brave heart

英语学习

回“疫”录(25):被颜色攻占的地方

小天同学

疫情 回忆录 现实纪录 纪实

任务级并发与 Executor 框架

tison

Java 线程 并发

介绍一款文本分析工具

黄大路

数据挖掘 数据分析 nlp

《零基础学 Java》 FAQ 之 14-访问控制符总结

臧萌

Java

《零基础学 Java》 FAQ 之 16-范型引用的通配符再解

臧萌

Java

如何学会所有的编程语言?-InfoQ