如何系统的学习go开发(附资料)

159 阅读7分钟

注意:资料在文章最后面。

针对go的学习,不同阶段采用的方式是不一样的。本文把go的学习分为入门、实战、进阶三个阶段。下面分开来说

一、入门阶段

入门阶段的目标是学会go的基本语法和知识,能够使用go解决一些简单的问题。这个阶段不建议看书学习,效率太慢。这个阶段不追求知识广度,只要求能够快速上手就行。建议直接找一些介绍go的基础知识的视频课程来看。推荐一个比较经典的课程。

1、387集通俗易懂的Go语言教程

2、大佬带你21周搞定Go语言

3、Go开发工程师零从入门到就业班

入门系列博客

1、Golang开发新手常犯的50个错误

2、go module使用教程

3、Go语言内存管理(二):Go内存管理

4、深入理解Go-垃圾回收机制

5、golang源码阅读之定时器以及避坑指南

6、Go日常开发常备第三方库和工具

7、为什么很多公司都转型go语言开发?Go语言能做什么

8、GoRust我都要!

9、Golang需要避免踩的50个坑

10、GO语言学习资源整理

11、Go语言实现WebSocket推送

12、使用go-swaggergolang API自动生成swagger文档

13、Go-kit微服务实战(1-搭建基本的三层架构

14、Golang实现轻量、快速的基于Reactor模式的非阻塞TCP网络库

15、machinery入门看这一篇

16、女朋友问我:小松子,你知道Go语言参数传递是传值还是传引用吗?

17、go-ElasticSearch入门看这一篇就够了

二、实战阶段

这个阶段主要是要增加自己的知识广度,这个阶段就要多看书多做项目,理论和实践相结合,提升自己的理论水平和实战经验。

关于书籍方面,推荐如下基本

1、Go语言精进之路(豆瓣评分9.0)

比较经典的一本书,书中包含了大量的编程指导和实践经验,比较适合刚入门的人,本书从Go语言设计者的视角对Go背后的设计哲学和编程思想进行了梳理和分析,指引读者体会那些看似随意实则经过深思熟虑的设计背后的秘密。

2、Go语言编程之旅:一起用Go做项目(豆瓣评分8.6)

本书对项目开发、细节分析、运行时分析等核心内容进行了较为深入的剖析,提供了相对完整的项目实践经验,对于项目实战有相当大的帮助。

3、Go Web 编程(豆瓣评分8.1)

本书围绕一个网络论坛作为例子,教授读者如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件去构建一个Go Web 应用,然后在该应用的基础上,构建出相应的 Web 服务。

关于教学课程方面的推荐

1、从1到N实战Go改造PHP仿优酷网站

2、Go语言实战开发企业级分布式云存储系统

3、从入门到部署带你go实战视频网站

这几个视频课程都是关于项目实战方面的,没什么好介绍的,跟着课程把里面的项目实战都实践一遍,对提升编程技能很有帮助。

关于项目方面的推荐

1、flipped-aurora/gin-vue-admin

github.com/flipped-aur…

这个开源项目是gin+vue搭建的(中)后台系统框架,适合有一定编程基础的编程爱好者实践,也适合已经工作的 Go 工程师学习

2、aceld/zinx

github.com/aceld/zinx

基于Golang轻量级TCP并发服务器框架,适合具有一定基础的Go 语言学习者

3、awesome-go

github.com/avelino/awe…

从名字就可以看出它也是awesome 系列的一员,这个仓库涵盖的项目非常全面,涵盖认证授权、持续集成、电子邮件、游戏开发,图形界面开发、命令行......。非常的全面!

实战方面博客推荐

1、Go内存泄漏?不是那么简单!

2、深入golang runtime的调度

3、Go源码:协程栈

4、Golang隐藏技能--访问私有成员

5、大神是如何学习Go语言之浅select的实现原理

6、深度解密Go语言之sync.map

7、Golang源码系列】五:锁的实现原理分析

8、 Go原理之Channel解读

9、 Go原理之上下文Context

10、GO千万级消息推送服务

11、深入golang---goroutine并发控制与通信

12、Go译文之通过context实现并发控制

13、go并发之goroutinechannel,并发控制入门篇

14、golang图像验证码

15、Golang中各种永远阻塞的姿势

16、深入理解go-channelselect的原理

17、GOChan实现原理分享

18、图文结合,白话Go的垃圾回收原理

19、go语言之行--golang核武器goroutine调度原理、channel详解

20、手把手教姐姐写消息队列

三、进阶阶段

进阶阶段主要就是加深自己的知识深度,不仅要强化自己编程高阶技能,比如性能优化、项目选型架构等技能,更要提升自己的编程理论水品。这个阶段更多的就是要追求看书和学习一些比较难度较高的课程和项目。

关于书籍的推荐

1、Go专家编程(豆瓣评分9.0)

本书深入地讲解了Go语言常见特性的内部机制和实现方式,大部分内容源自对Go语言源码的分析,并从中提炼出实现原理。通过阅读本书,读者可以快速、轻松地了解Go语言的内部运作机制。

2、Go语言设计与实现(豆瓣评分8.7)

本书包含调试源代码、编译原理、数据结构、语言特性、常用关键字、并发编程、内存管理、元编程和标准库,几乎涵盖了Go语言从编译到运行的方方面面。通过阅读本书,读者不仅能够深入理解Go语言的实现细节,而且可以深刻认识设计背后的原理,同时提升阅读源代码的技能。

关于课程的推荐

1、深入Go底层原理-重写Redis中间件实战

2、go微服务构建秒杀系统

3、Go语言开发社区网站与高性能架构部署

这三门课程都涉及到了性能能优化方面的知识,对于了解go底层原理有较大的帮助。

关于进阶的博客的推荐

1、Go应用的性能优化

2、一个调度系统的开发与性能优化

3、Go语言性能优化- For Range性能研究

4、字节跳动Go RPC框架KiteX性能优化实践

5、go pprof性能分析

6、Go程序性能分析101

7、golang使用pprofgo-torch做性能分析

8、多维度思考:如何提高项目的开发时间、提高安全性、提高运行速度,从多个维度带来的些思考。| Go主题月

9、GO性能优化小结

10、性能优化实战:百万级WebSocketsGo语言

11、Go调用Java方案和性能优化分享

12、GolangGC性能优化技巧

13、Go在迅雷P2P连通系统中的性能优化实践

14、Go借助PProf的一次性能优化

15、Go语言项目性能优化实例剖析

16、Go语言性能优化-两数之和算法性能研究

17、Golang反射性能优化

18、编写和优化Go代码

19、Go语言之pprof的性能调优”燥起来“

20、Go优化

21、Golang测试与性能调优

最后把我整理的关于go的电子书在这里分享给大家,这些资料用于学习分享,请勿用于商业目的。

链接:pan.baidu.com/s/1W2DXL3in…
提取码:jbqs 

如果链接失效了,请给我留言,我会及时更新