学习一个月如何转型 Golang 开发
摘要
原本从事了将近 5 年 PHP 开发,2020 年中,从深圳一家聚合支付的公司裸辞,休息 4 个月继续工作,决定转型、尝试改变、怀疑自我、决心 Golang。从 10 月底开始从零开始学 Golang 语言,到了 12 月中找到一份在广州的 Golang 开发。有心疼、有难忘、有坚定,这些转型之痛,将一一讲述,但不是讲方法论,而是讲应该相信自己的决定。
反思
曾经给我印象深刻的一句话,是在 2018 年求职时,当时给网易的一位大佬看简历,当时给我回复如下,至今记忆颇深。
当时给我影响的一个决定是什么?想要有不一样的技术积累。要么技术广度、深度或开发经历,要不一样,就是说要有自己的竞争力。
尝试改变
2018 年到深圳工作之后,虽然还在做 PHP 开发,但是仍然在想着下一步怎么走,因为时常留意一些技术分享会,一直对 K8S 感兴趣,所以最早 2018 年秋就想过要不要以 K8S 作为业余兴趣点,以考促学,拿一个 Kubernets 的什么证书,当时还请教过一个运维朋友咨询有没有用之类,依稀记得是被破了冷水。
2019 年,上半年做的事情和思考依然围绕 PHP 技术栈,虽然当时在职场软技能和重构、工程化做过一些思考,也是因为当时周围环境过于随意,野路子的感觉。下半年的闲暇时间一直在玩 Docker,想着法的把开发环境 Docker 化,有产出两篇文章。但是一直有一种危机感,提醒着我:万一离职了,以后做什么工作?
做支付业务?好像 PHP 技术栈的很少。
还做 PHP ? 不挑行业?
还清楚的记得 2019 年的最后一天,买了 CKA 的考试资格,下定决心做些不一样的东西。
这些思考在 2020 年元旦还发了一篇文章总结《2020 年 PHP 开发者应该何去何从》。
为什么不想做 PHP
较窄的技术栈,并且以后趋势也明显的能看到越来越窄。
PHP 真是最好的语言,甚至开发者一条线杀到底就行,而我,不想这样。虽然写烂代码与语言无关。
断舍离
2020 年春,疫情,过年后 2 个月闲暇。疫情对线下实体特别是中小商户的影响很大,支付业务也因为交易量减少也越来越显得鸡肋。大量员工流失,而我也远离了核心业务,做些我自己都不知道有什么意义的事情。
2020 年 8 月,裸辞,拿钱混日子感觉对自己都是一种损失,另外也看出要“变天”。接下来的 1 个多月,都在啃一本书 《Kubernetes 权威指南》的书,难啃,偶尔有的地方会陈旧甚至晦涩。至少啃下来了。后续又用了一段时间在本地搭建环境、练习、做模拟题才拿下来证书,算是有所交代。
怀疑自我
我原本的目标是容器云平台或运维开发或 K8S 云平台建设等等,我看好云原生,我想踩中一个趋势。我是开发,但是不想随大流直接转 Golang Web 开发。我想走差异化的道路,这是当时的逻辑。但是 10 月找了一周多,我发现我要进入另外一个领域,一个陌生的领域,真的不想再做回 PHP 开发,甚至在 2020 年 4-5 月份和小伙伴吃饭开玩笑发誓说“我再做 PHP 我是小狗”。但是,我真的错了吗?当时的决定,还有裸辞。
决心 Go
我发现,我以后想做的事情,怎么也绕不开 Go,比如 DevOps 或者 云开发,索性再学一下 Go 语言,至少要有一个整体的认知。2018 年都买了的 《Go 语言核心 36 讲》终于能够派上用场。看了大概 10 天 左右,看完了专栏,后边寻找一些灵感,想写点什么,最后做了一个简单的爬虫 weibo-hot-list,算是学完基础的一个作业。11 月还在干嘛?还有一个毛剑的 《Go 进阶训练营》,听了几节课开始找工作了。这次目标很简单,因为也离职了好久,先工作。而后在 12 月中来到广州,做 SAAS ,遇到了新的挑战。
现在想,如果想换语言、换方向真的不是一件容易的事情,换方向自然不必讲,换语言吧:小厂要求经验;大厂要求基础扎实。本身都好矛盾。甚至能开阔一下技术栈,在新的业务和技术栈有所成长已经是一件幸事。感慨。一定记得往前看,踏实做好当下,又要抬头看看下一步。比如,想想下一份工作怎么办,未雨绸缪。
现在再回顾这段经历,心疼自己。
现状
之前想做微服务,现在做微服务遇到一团糟。从 2020 年 12 月中至今,8 个半月过去了。2-3 个月时间在适应 Go 语言开发习惯。而后在思考 Go 工程化,现在感觉微服务一堆,在思考如何做更好的服务划分。感觉现在解耦的思路就是新开一个服务。我常常对服务的命名、职责划分、代码编写,搞的一头雾水、怀疑人生、紧锁眉头、不能平静……
另外,我在 Go 编码中体验到了之前 PHP 类似的的糟糕体验。更特别的是,现在代码里能明显闻到 PHP / Java 等其他语言的味道。并且把代码写好真是一个手艺活。
以后
由近及远的几件事:
自研框架的工程化及目录分层标准化。
DDD 了解字面意思几年了,但是发现没有一个好的教材,晦涩难懂的概念真让人头大,最近在考察几个资料,深入理解 DDD 设计理念并想办法解决当下问题。
CKS,今年的最后一个目标,考完 CKA 没多久黑五优惠报名了。
以后的半年可能也会围绕 Go 生态了,微服务、中间件和云原生是整体大方向。
共勉!
版权声明: 本文为 InfoQ 作者【baiyutang】的原创文章。
原文链接:【http://xie.infoq.cn/article/6da1f047e53e88905b2ee808d】。未经作者许可,禁止转载。
评论