专栏首页roseduan写字的地方我的 Java 转 Go 之路

我的 Java 转 Go 之路

从毕业到现在已经接近两年了,在这段时间里,我日常开发都是使用的 Java,因为大学那时候自学的是 Java,然后毕业找到的工作也是做 Java 开发的。

现在做 Go 其实也没多久,但还是想把自己的一些经历和学习经验都记录下来,给有需要的朋友,要是能够帮到你就更好了哦!


其实 Go 在这几年一直都挺火的,毕竟是 Google 的亲儿子,又凭借着 docker 和 k8s 这两大杀器,自身又有一些相对于其他语言的优势(例如并发处理、通道)。

而且近几年 Go 的工作岗位也在慢慢增加,一些大厂都逐渐使用 Go 做为开发甚至主力开发语言。

去年 6 月份的时候,我可能是闲着没事干,就在网上订阅了一个 Go 语言的小专栏,然后跟着学了一些,这算是开启了自己的 Go 学习之路吧。

当然平时还是以工作为主,所以那时候学习 Go 仅仅是出于兴趣,并没有要打算转行到 Go,学习起来也没啥压迫感,挺慢的。

学习的方式很简单,就是跟着专栏上的内容,照着敲代码,由于有 Java 的经验,所以基础语法知识这一块学习起来没啥压力。

我认为编程其实就是熟能生巧的东西,没啥技巧可讲的,特别是对于一些初学者来说更是如此,很多不明白的东西,自己多动手敲几遍就慢慢懂了。


几个月之后,大概是 2020 年 10 月份的时候吧,靠着自己在零碎时间的学习,Go 的大多数基础知识我算是掌握了,并且这期间我还在 Leetcode 上刷了一些题,使用 Java 和 Go 来实现,算是对基础知识的一个巩固。

这也是一个不错的经验,当你学习一门编程语言的时候,如果想要巩固一下基础语法,那么多敲敲代码,例如刷一些 leetcode 的题目就是一个很不错的选择。

我的 Github 上面记录了自己刷过的一些题,建议你学习的时候,也可以参考一下,动手实现一些常用的数据结构和算法,并且刷一些 leetcode 题目,是一举两得的事情。

我的 Github 上面的刷题记录:https://github.com/roseduan/algo-learn

我前面也推荐了一些优秀的 Go 语言相关的数据结构和算法的项目:Go 语言—数据结构和算法项目推荐,你可以选择适合自己的去练习。


在 2020 年国庆节放假前夕,我在网上看到了一个简单的数据库模型的论文,内容很简单,我很快便理解了,于是我想能不能使用 Go 来实现一下,借此更加好的巩固自己的 Go 知识。

事不宜迟,几天之后我便开始了,但是事情并没有我想象的那么简单,看起来容易,其实代码并不好写,完全不知道如何下手。

于是我查阅了其他的资料,借鉴了其他的一些项目,到 12 月初的时候,才开始写这个项目的代码。

然后整个 12 月份,我都在用 Go 写这个项目,大概一个月的时间,项目最初的版本便写完了,我将它开源到了我的 Github 上面,并且我之前也专门写过一篇文章专门来介绍这个项目:我写了一个数据库。。。

经过这一个月的项目代码实践,我自认为对 Go 算是入门了。

这也是一个很不错的经验,那便是学习的目的在于实践,如果知识只停留在理论层面,那么你对它的理解和认识一定是模糊的,一定要去实践一下,才会发现更多的为什么,才会真正搞懂自己在理论学习阶段的很多没搞懂的东西。

如果你也正在学习 Go,并且不知道有啥好的实战项目,那么强烈建议你看一下我的这个项目,这是一个很简单的数据库,我把它命名为 rosedb(我的英文名字是 Rose),Go 的大多数知识都用到了,一定会是巩固 Go 知识的一个绝佳的素材。

你可以自己先耐心的看,然后再试着自己写,或者给这个项目提交代码,完善功能。

除了我的这个项目,我还推荐了一些其他的练手项目:Go 语言入门练手项目推荐,总之,实践是非常重要的。


到了 2020 年底,我有了跳槽的想法,于是开始找工作,我在我的简历上写了 Java 和 Go 相关的东西,投递简历的时候,Java 和 Go 的岗位都有投递。

先后面了几家公司,有两家 Java 的,有两家 Go 岗位的。

在面试 Go 的时候,有一些面试官都让我介绍一下我的开源项目 rosedb,这其实说明,如果你的简历上有不错的开源项目,不管 star 数量多不多,都会是一个不错的亮点 ,因为这至少能证明你的动手实践能力、编程能力等等都是不错的。

找工作持续一个月左右,后来找到了一个 Go 开发的岗位,公司和职位我都觉得挺好的,于是面试之旅就结束了。

进入到公司实际的项目之后,才发现其实我还是有很多不懂的东西, 比如我们项目中使用到的 gRPC、GORM 等等。

于是我在阅读项目代码的时候,会结合着官方文档学习一下这些技术,也会针对一些比较重点的内容,买一些书籍结合着来看,然后在实际项目中不断踩坑历练,对于一些业务相关的基础技术就能够很好的掌握了。

现在回头来看,其实当初我并没有要转语言方向的打算,只是碰巧学习了一下 Go,然后找工作的时候恰好找到了 Go 开发岗位的工作,算是误打误撞吧。

这里也给大家提一些良心的建议,其实国内的这些互联网公司,技术总体来说还是服务于业务的,所以无论你学习的是什么技术,只要能够在业务中产生价值,让你拥有成就感,我觉得就是一件挺好的事情。

关注技术热潮不是什么坏事,但是切忌心浮气躁,看着什么火就去学什么,到头来很可能什么都学不精通,最好的便是专注于某一个领域,在精力有余的情况下,学习一点自己感兴趣的东西,这也可能也会给自己的未来增加一些不确定性。


本文分享自微信公众号 - roseduan写字的地方(rose_duan),作者:roseduan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 我的Java学习之路

    我认为,作为一名合格的程序员,精通一门语言只是最最基本的要求,除此之外,具备扎实的基础知识、了解主流的技术框架、具备快速学习的能力也都非常重要。语言是帮助你实...

    大闲人柴毛毛
  • 我的Java开发之路

    最近有一位小伙伴通过公众号给我留言, “我参加工作没多久,看着圈里的技术大牛,特别羡慕,也渴望成为技术大牛,想让您分享一下从小白到大牛是怎样练成的,我该如何提...

    JavaQ
  • 聊聊我的 Java 自学之路

    最近经常在知乎收到类似『没基础,java 如何自学』、『怎么才能掌握编程』等等问题,再加上发现高中同学也在自学。有感而发,讲讲我的自学之路。

    andyxh
  • 转Go后offer之路上的那些真相

    可能有的小伙伴看到这里就笑了,JD摆出来是干什么的?答曰:看看就行,全信你就傻了。我问过HR和猎头,很多关于面试和录用的决定要素很多时候不会出现在JD里,因为要...

    李海彬
  • 而立之年——回顾我的前端转行之路

    在成为程序员之前,我干过很多工作。由于学历的问题(高中),我的工作基本上都是体力活。包括但不限于:工厂普工、销售(没有干销售的才能)、搬运工、摆地摊等,转行前最...

    谭光志
  • java学习之路:2.我的第一个java程序

    花狗Fdog
  • 我的跨专业数据分析转行之路

    其实销售并不是大家想的那样,在路边向陌生人推销东西,互联网公司的销售对数据的依赖比我们想象的要大得多。提高销售人员拜访效率的秘密武器就是对庞大的客户群产生的数据...

    CDA数据分析师
  • 我的大数据之路01:自学Java篇

    时光疾驰,从事IT行业已两年有余。 16年11月开始自学Java,从此开启自学之路,后来实习期自学大数据、python、爬虫等,最终成长为一名平凡的程序员。回首...

    叫我阿柒啊
  • dubbo-go 的开发、设计与功能介绍

    dubbo-go 是目前 Dubbo 多语言生态最火热的项目。dubbo-go 最早的版本应该要追溯到 2016 年,由社区于雨同学编写 dubbo-go 的初...

    Java帮帮
  • dubbo-go介绍

    dubbo-go 是目前 Dubbo 多语言生态最火热的项目。dubbo-go 最早的版本应该要追溯到 2016 年,由社区于雨同学编写 dubbo-go 的初...

    heidsoft
  • jenkins构建go及java项目

    jenkins作为java的好基友,经历过单体项目时代->集群项目时代->容器集群分布式时代,使用稳定可靠,cpu友好(就泪存有点儿难看),如果有问题就。。。 ...

    上帝
  • 基于Gin+Gorm框架搭建MVC模式的Go语言企业级后端系统

    Gin是Go语言的一套WEB框架,在学习一种陌生语言的陌生框架,最好的方式,就是用我们熟悉的思维去学。作为一名后端Java开发,在最初入门时,最熟悉的莫过于MV...

    朱季谦
  • 【玩转腾讯云】万物皆可Serverless之我的Serverless之路

    我最早接触Serverless大概是在18年6月,那时候我在阿里云的学生机刚好到期,

    乂乂又又
  • 【转载】java架构师进阶之路

    Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。那成为Java架构师要掌握哪些技术呢,总体来说呢,有两...

    小勇DW3
  • 使用dubbo-go搭建dubbo接口测试平台

    http接口测试只需要一个curl命令,但dubbo协议没有这样的现成接口测试工具。通常公司内的dubbo控制台或其他平台会集成一个dubbo接口测试工具。

    龟仙老人
  • Go语言实践:从新手入门到上线真实的小型服务所遇到的那些坑

    摘要: Teamwork团队在去年写了近20万行Go代码,建造了一堆速度奇快的小型HTTP服务,本文列出了他们总结的9条经验教训。 为什么选择Go语言?Go...

    李海彬
  • Go语言实践:从新手入门到上线真实的小型服务所遇到的那些坑

    摘要: Teamwork团队在去年写了近20万行Go代码,建造了一堆速度奇快的小型HTTP服务,本文列出了他们总结的9条经验教训。 为什么选择Go语言?Go...

    李海彬
  • Go语言实践:从新手入门到上线真实的小型服务所遇到的那些坑

    摘要: Teamwork团队在去年写了近20万行Go代码,建造了一堆速度奇快的小型HTTP服务,本文列出了他们总结的9条经验教训。 为什么选择Go语言?Go...

    李海彬
  • Go学习之懒人速成 - 基础篇(二)

    在上一篇《入门篇》,已经提高了Go的安装和使用,接下来我们一起学习一下Golang的基础语法

    23号杂货铺

扫码关注云+社区

领取腾讯云代金券