学了两门编程语言后才知道的一些事

开发 前端
在学习Golang时,发现Golang的结构体(struct)与Java的类(class)很像,但又不一样;Golang的切片(slice)和Java的ArrayList很像;Golang的指针(point)类型与Java的引用类型很像,但又不一样,但对于方法(或函数)参数来说,它们本质上都是值传递。

曾经听大佬说:作为软件从业人员,至少每年学一门新的编程语言。但事实往往是知易行难,工作了十多年,除非实践中用到了,才会去学习和运用一些。

但最近两个月换了新工作,连续学了两门新的编程语言:Python和Golang。本身自己做了十多年的Java开发,从比较复杂的面向对象语言向Python和Golang转型,学习曲线还是非常平滑的。两周左右一个Python项目已经上线,不到一周的时间已经可以写Golang代码。

曾经对全栈工程师很是羡慕,没想到自己也慢慢成为了他们。可能是孕妇效应吧,当学习和关注全栈开发(多门编程语言)之后,发现有很多事已经存在很久。

下面分享一些关于学习全栈之后才关注的人、事、思考:

一、超哥之前也是搞Java的,突然有一天看到他在朋友圈虎虎生风地敲Golang代码,一问才知道,他已经成功转型全栈工程师,Java、Golang、Python都搞了起来。当时那是非常羡慕,没想到两个月后,自己也成为了他。有一次技术峰会遇到,没想到他也转到教育相关领域,也在玩GPT。

二、最近在大量看Golang的简历,发现大量PHP从业人员开始转Golang。虽然说PHP是世界上最好的语言,但的确有些老了,也有一些没落了。无论是大厂,还是中小企业,要么直接以Java开始,要么开始重构为Golang。据百度的同事说,百度的某些业务板块已经开始着力将PHP的项目重构为Golang。同时也得知,从PHP到Golang的学习曲线要比从Java到Golang的学习曲线稍微陡峭一些。

三、自己的亲身感受:学习Python和Golang并不难,从语言本身来讲它们比Java简化了许多语法,只需要几天时间熟悉它们的编码风格和语法差不多就能上手了,不要怕。

四、看到一份简历,原本是PHP工程师,但在简历中明确注明:可转其他语言。从大量的简历看来,如果是PHP工程师,那么转Golang好像是PHP从业者的大趋势。当然,如果你能够超越语言本身,可随便转,那就更好了。

五、Python在数据计算、图表展示、人工智能方面,简直不要太便利。一行命令,一个复杂的数学函数便实现了;几行命令一个图标便出现了;几行命令,一个人工智能的算法便验证了……当用于各类脚本编写,Python太方便了。

六、Golang在云原生、高并发方面应用的比较广。我们知道的k8s和docker都是基于Golang编写的。但Golang的精专人员并不多,大多数是其他编程语言转过来的,或者在写主业务的同时,用它来写一些辅助功能。可能样本有误,但相对来说应该没偏差太多。

七、昨晚一朋友打电话,询问.net是否要转Java,我说,还犹豫啥,必须转,即便不转,多学一门语言也多了一些生存的空间。

八、学习了Python之后,才了解原来静态语言(Java)和动态语言(Python)在发布流程上有很大的区别。像Java和Golang,强类型,在编译期即可发现一些错误,但Python就不一样了,不运行,你可能不知道它有错。当对照学习时,才发现之前以为正确的,完美的流程,可能并不适合另外一门语言。当时还有一段感想:当我们固执的坚持这是最好的时候,往往是受到思维、认知和水平等限制,找不到看问题或解决问题更多维度的外在表现。

九、在学习Golang时,发现Golang的结构体(struct)与Java的类(class)很像,但又不一样;Golang的切片(slice)和Java的ArrayList很像;Golang的指针(point)类型与Java的引用类型很像,但又不一样,但对于方法(或函数)参数来说,它们本质上都是值传递。Java基础类型是直接复制值,引用类型复制引用,而Golang的值类型直接复制一份当前值,指针类型复制指针指向的地址。还有其他很多可对照的。

十、当学习了多门语言之后,会发现没有十全十美的语言,只有最适合某一场景的语言。

曾经有人说,当你学习一门外语之后,便拥有了他们的思考方式。对于编程语言来说,也同样如此。曾经以为程序就应该这么写,这发布,这么运维……但当学习一门新的语言之后,你会发现,还有一群人,在用着另外一种方式改造着世界。

现在该我对大家说了:没事多学一门编程语言吧,即使做不到一年新学一门。学习一门新的语言,它能让你的编程思想更加抽象和丰富,它能给你提供一种全新的思维方式,它能促进对原有语言的对照理解,它也能够给你更多的求职机会,它也能让你结识另外一群不一样的人。

另外,告诉大家一个可怕的事实:Java语言的排行逐年在下滑。


责任编辑:武晓燕 来源: 程序新视界
相关推荐

2018-05-30 12:04:36

LinuxUbuntu 18.0

2018-08-10 10:45:35

编程语言Python程序员

2014-07-29 16:21:57

Git

2013-06-21 16:35:50

iOS 7设计苹果开发iOS 7新特性

2019-04-22 11:38:00

HTTPHTTP2.0HTTPS

2014-03-19 15:41:21

编程语言编程规则

2014-12-26 09:56:50

编程语言

2011-12-30 09:33:02

程序员语言

2013-07-02 10:18:20

编程编程策略

2013-07-02 09:43:02

编程策略

2017-05-25 10:44:38

云存储对象存储存储

2018-03-15 09:23:24

编程语言程序员Java

2011-12-05 10:12:35

网页设计

2013-08-20 09:43:25

2020-10-12 08:03:51

Go语言编程

2014-12-03 09:48:36

编程语言

2023-12-05 09:03:05

多核分布式

2021-04-09 10:26:43

Python编程技术

2021-10-13 07:48:23

Options模式编程

2017-05-10 08:59:18

分布式系统承载量
点赞
收藏

51CTO技术栈公众号