进行了三年的Java工作, 忽然被通告整个组都要转向Go, 给予了三个月的适应期限, 这样的转型情形实际可行吗。

1、三个月够写代码,但不够扛事
三个月内, 将Go语法全部梳理一遍, 依据Java的思维去编写几个接口, 所写代码能够实现编译, 并且可以正常运行, 应该没太大问题。
Go原本的语法向来简洁, 有着Java基础的人, 花个几天把基础内容浏览一遍, 再花费几周跟随项目推进, 所写出的内容起码不会出现编译时的错误。
可是, 有着能够跑动的本事与具备扛动的能力, 这二者完全是截然不同的状况。Java那般的一整套系列工具 , 以及各式各样的中间件 , 到了Go这个领域全部都要进行更换。不存在Boot那种自动组装配置 , 没有已然成熟的对象关系映射 , 就连依存注入都得依靠自身来思索探究。并且看上去似乎较为简易 , 然而真正处于高并发这样的情景之中 , 死锁 、竞态条件 、内存泄漏这些问题一个比一个不易被察觉。
因此, 三个月的时长是否足够呢? 要是仅仅是“从Java工程师转变成为Go代码工人”这种情况, 那足够了。然而, 倘若目标是“能够独自设计Go系统, 同时具备排查线上问题的能力”, 那么这段时间的确是有些紧凑的。
2、AI能帮你写,但锅得你自己背
好几个人说"有AI怕啥",这话我一半同意一半不同意。
关于让AI编写CRUD接口、生成单元测试, 实在是速度颇快。 再者, 要是让它协助设计高并发架构的时候, 又或者是排查线上偶发现象里的内存泄漏情况的时候, 它极有可能给予呈现出表面看似正确、实则运行起来错误的一堆方案。
语言本身的确是愈发与工具相似了, 然而工具背后蕴含的那种工程思维却是没办法改变的。在Java当中, 你倘若懂得JVM调优, 知晓GC策略, 这些深层的底层逻辑至始至终都适可以变现, 到了Go里面同样是有价值的, 只不过展现的形式发生了变化而已。AI所能做到的仅仅是帮你节省掉查找相关文档所耗费的时间, 可却无法省去你去理解其中原理的整个过程。
真出了问题,线上报警短信可不会发给AI。
3、真正该焦虑的,从来不是语言
我觉得这位兄弟可能搞错了焦虑的方向。
三个月去学Go, 它难不难? 说真的, 其实并不难, 难以做到哒是在这三个月这段时间当中, 你的KPI它会不会出现打折的情况, 到了年终的时候会不会受到影响, 领导在心里头有没有把你当作那个“还处于适应期的人”去看待。更加困难的是, 在转完之后 , 之前三年所积累起来的Java经验, 在新的项目里面究竟能用上多少。
这才是最为刺痛内心的,语言仅仅是外在表现, 技术栈进行迁移时, 其背后所蕴含的业务逻辑, 以及团队定位、个人职业规划, 这些才真正是关键所在。
倘若公司仅仅是“以另外一种语言去做相同的事情”, 那么咬咬牙坚持三个月便会过去。要是“在更换语言之际, 同时还更换赛道、更换架构、更换业务方向”, 那么这三个月恐怕仅仅只是个开端。
4、这事未必是坑,但得留个心眼
首先, 不要跟语法较劲儿, 赶快行动起来。有关Go语法, 三天时间便能够看完, 剩余的时间全部投入到项目当中, 通过实际操作进行学习是最快的方式。
第二, 将你 Java 之中的良好习惯带过来, 单元测试, 代码审查, 日志规范, 这些是跨语言通用的, 不要由于更换了语言便降低标准。
首先, 在这期间, 要把项目的亮点, 记录下来, 还要把性能数据, 记录下来,还有踩过的坑, 也都记录下来。其次, 三个月的适应期,是公司给予的, 然而, 你的简历之上, 不能仅仅只有“会Go” , 因为这些, 统统都是往后谈薪时所用的筹码。
以三年Java作为基础铺垫, 而后补齐一门Go, 往后在简历之中填写“全栈后端”, 于面试之际选择的范围反倒变宽了。
语言从来都不是天花板,停下来的心态才是。
三个月转向Go, 身体需要跟得上, 脑子里可千万别掉队。只管去干到底, 想那么多究竟是要干什么呢。


被折叠的 条评论
为什么被折叠?



