以下回答来自UCloud应用研发工程师Cary:

根据提问,题主已经入门了Go语言,知道了Go语言的语法,能写简单的程序。
简单分享一下本人是如何进行go的学习和进阶的:

go by example 快速浏览一遍,如果遇到没写过的代码,手动操作一遍;

2. 选择一个Golang web 框架;

比如:gin,熟悉其使用,将官方的例子都跑一遍: https://github.com/gin-gonic/examples, 然后再联系一个较复杂的demo项目,比如:eddycjy/go-gin-example 或者https://github.com/flipped-aurora/gin-vue-admin 这样之后,对这个web框架能上手开发了,如果有机会,可以向公司申请简单go api接口开发的任务,在工作中进行实践;

3. 了解grpc(grpc/grpc-go)的使用,grpc是go生态中热门的RPC框架。 将https://github.com/grpc/grpc-go/tree/master/examples 中的代码在本地练习;

4. 你是运维,应该有接触到运维脚本之类,无论是shell还是Python写的脚本,你可以将这些脚本用Golang重新实现一遍,Golang写脚本也是相当方便的;

5. 书籍方面: 《Go语言圣经》(可以快速浏览)、《Go并发编程实战》(值得认真阅读)

7. 如果你的计算机基础还行,可以像其他回答里说的,完成mit 6.824的大作业。

8. 想要更加精进,不能避免的就是阅读源码了。可以从Golang自身的源码开始,例如: net、os、file、sync等包,数据结构:slice、map、channel、goroutine。

@皮拉图斯的分类图很赞很全啦!请参考之。

9. 阅读优秀的Golang开源项目源码。

Golang优秀的开源项目的源码很多,特别是云原生领域的。如果你真的不知道选择看哪个源码,你可以从你所知的领域,或者你有在使用的一些优秀的工具等,但不是Golang写的,可能是Python写的,往往也很有可能也有Golang的实现,你可以选择它们进行阅读。Golang也有很多在运维监控方面优秀的开源项目,像Prometheus,influxdb等等。阅读源码,要么是目的明确,要么是兴趣,要不然可能会觉得枯燥无味,或者因为代码量太大而中途放弃。

这是本人学习Golang不同开源项目进行练习的代码: pathbox/learning-go (仅供参考)

10. 最后,Just do it。Don't stop learning Golang

当然,你也可以直接在这里和作者交流~~