晨读一本名叫《4点起床》的书,书中有一段描绘与最近学习编制言语时自己的感触完全一致。算是一个小经验,分享给大家。

书中有一章的标题为《一起学六国言语记起来比较快》,其中有两段描绘如下:

为什么我推荐大家一起学不同的言语呢?实不相瞒,我这几年在学西班牙语时发现,在学英语的时分,假如你脑子里能有些关于其他外语的常识,掌握言语的速度会变快许多

西班牙语和英语看似风马牛不相及,其实两者仍是很类似的。比方“重要”,在英语里是“important”,西班牙语也是“important”,只是念法不一样罢了。

看到这儿,感觉跟自己学习编程言语的感觉完全一致。Java言语用了十多年了,因为工作需要,快速学习了Python和Golang,并精专Golang学习。在学习的过程中,最大的收成不是学会了Golang这门编程言语,而是对Java的编程有了更深化的了解。不只如此,对整个软件编程都有了更进一步的了解。

举例讲几个方面:

第一,在Java中,咱们常用ArrayList来存储一些列数据,而在Golang中常用slice来存储一系列数据。在Java和Golang中,都存在数组,但根本上都很少用数组,而选用列表或切片。而像ArrayList或slice自身又是根据数组来完成的。

对照起来会发现,根本的底层原理都一样,只不过不同言语的完成思路不同罢了。

第二,关于HTTP请求。但单纯运用Java进行API请求时,咱们往往重视的是API如何运用。当学习多种言语时,你会发现不同的言语有不同的完成形式,但万变不离其宗,都是根据HTTP协议来完成。这样也对HTTP协议自身有了更深化的了解。当然,其他协议也是如此。

第三,关于结构。比方注册中心,在Java中有Nacos、Eureka等完成,而在Golang中,有Consul、Etcd等完成。尽管它们能够跨言语混用,但有了这样横向的比照,对本来言语和结构的学习和掌握愈加深刻了。

当然,还有其他许多例子。最根本的是,当你学习了多门言语时,每一个完成都有一个或多个对照,这样对完成的底层就愈加了解,而不会过多重视言语自身的语法。不只拓宽了思路,当有了对照,也能更好了解各自完成的优缺点,以及为什么如此完成。