学习 Go自己的一点看法

  1. 首先, 去学习一下官方的入门教程. 这个只是一个大概了解的教程, 简单介绍一些简单的东西, 并没有太多的说明. (这个学起来很快的, 大概三天就差不多了吧, 而且可以在线实践一下的哦)

Go 语言之旅

  1. 开发环境

这里也可以忽略不看, 因为每一个教程都会介绍怎么配置环境.

  • 操作系统

我个人十分推荐使用 Linux, 可以使用 UbuntuDeepin. 这两款发行版桌面都做的挺不错的. 当然了, 有条件了可以使用 Mac开发环境. Windows 也是可以进行开发的啦.

Go 的开发环境安装十分简洁, 依赖很少. 如果是 Linux 下安装基本上下载一个二进制包, 解压, 放到一个目录下, 然后配置以下环境变量 GOROOT 就可以了,具体参考文档:

Download and install

  • 开发工具

这个可以根据自己的喜好去选择. 我比较喜欢的是 GoLand, 操作起来十分便捷, 舒服, 而且有各自简单错误的检查提示, 还有断点调试(虽然 这个工具也是Go官方提供的, 但是在 GoLand 使用也是很爽的), 全局搜索等等. 当然了, 各位也可以使用 VsCode, SubText 等, 哪个用起来顺手用哪个, 哈哈.

  1. 巩固对语法的练习, 可以进行 LeetCode 刷常见题目 或者 练习一些简单的项目

找一些简单的项目练手, 目的是巩固已经学习的语法, 让 Go 使用起来更加顺手. 当然啦, 在这其中就是去解决一些问题, 这样方便你快速提升能力.

那为什么选 刷 LeetCode 常见题目 呢?, 我们都知道, 算法的核心是思维方式, 然后就是用代码去表达你的思维. 一些常见的题目, 这道题怎么去解决自己肯定是心中有数了, 那么剩下来的就是用代码表达出来, 这个时候写代码的方式去巩固已经学习的语法.

不管使用什么方式, 在这个阶段最重要的多写代码.

  1. 将标准库全部都过一遍

代码写到一定程度了, 语法什么都没啥问题了. 这个时候, 你还要看看别人是怎样写代码的, 看看别人的规范. Go 的标准库就是就是 “别人” 写的很好的代码了, 从里面可以学习到很多东西的.

常用的全都看一遍, 如 strings/strconv/http 等, 如果有能力可以将它们都记住, 如果记忆力不太好(像我这样)至少也要知道有什么, 用到的时候通过手册可以快速找到.

官方标准库: https://golang.org/pkg

中文版的标准库: https://studygolang.com/static/pkgdoc/main

极力推荐: https://github.com/astaxie/gopkg.

可以在学习的时候看这个, 有关于标准库的详细说明和示例, 学习起来会容易一些,等全都明白了要使用的时候可以去查看上面的文档.

  1. 找进阶的书籍去阅读

到了这个阶段, 你的写出比较好代码应该是没啥问题了, 这个时候你应该去思考一些 Go 底层的问题, 比如, map 是怎样实现的, 和以往其他语言的 Map 的实现有啥不一样? chan 是怎样实现的, 为啥它能够并发? 等等. 带着这些问题, 去阅读一些书籍, 从中寻找答案.

比较推荐的就是 <<Go语言程序设计>>, <<Go语言高级编程>>, 这两本写的非常不错, 里面会讲解一些常用的数据结构是怎样设计的, 需要注意的问题等等.

  1. 阅读 Go 的源码和学习一些优秀的博客

这个阶段, 要广泛阅读源码, 也要看看别人是怎样深入理解 go 底层设计的.

我比较推荐的博客的两位大神博客:

Go 语言设计与实现

鸟窝

大神写的很不错, 有的需要多次去阅读.

Go的源码推荐的就是, 其实我也没有读多少., runtime 当中的 map, chan 的设计, sql 包关于数据库缓冲池的设计, http 包(这里面的内容 十分丰富, 需要花很长的时间去阅读), sync 包(并发编程), 当然了还有其他的一些非常常用的包了, GMP调度, 内存管理, 垃圾回收 这三个方面的内容需要长时期去钻研, 去领悟, 还要深入 Linux 的底层, 去理解计算机更加基础的东西.

去阅读一些优秀的开源库, 参与其中的开发优秀的开源库很多, 比如 docker, k8s, etcd 等等.

我就介绍这么多了, 本人能力实在有限, 上面好多自己做的也不是很足…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值