针对Go语言的学习,不同阶段应采取不同的学习方式,以达到最佳效果.本文将Go的学习分为入门、实战、进阶三个阶段,下面分别详细介绍
一、社区
- Go语言中文网
作为专注于Go语言学习与推广的平台,Go语言中文网为开发者提供了丰富的中文文档和教程资源,是获取Go语言学习资料的重要渠道。
2、CSDN
这个综合性的IT技术社区,拥有海量的技术博客和问答资源,适合Go语言开发者在这里获取各类编程资源与经验分享,与其他开发者交流学习心得。
3、掘金
稀土掘金是一个鼓励高质量技术分享的社区,汇聚了众多Go语言开发者,便于大家在这里交流前沿技术与实战经验,共同进步。
二、入门阶段
入门阶段的目标是掌握Go的基本语法和知识,能够使用Go解决一些简单的问题.在这一阶段,不建议通过阅读书籍来学习,因为效率较慢;也不追求知识的广度,而是要求能够快速上手.建议直接观看一些介绍Go基础知识的视频课程,以下是一些推荐的课程。
- 387集通俗易懂的Go语言教程
- Go开发工程师零从入门到就业班
- 大佬带你21周搞定Go语言
- go语言教程零基础入门到精通史上最全go教程
入门系列博客
- go-ElasticSearch入门看这一篇就够了
- 女朋友问我:小松子,你知道Go语言参数传递是传值还是传引用吗?
- Golang开发新手常犯的50个错误
- 使用go-swagger为golang API自动生成swagger文档
- go module 使用教程
- Go-kit微服务实战(1)- 搭建基本的三层架构
- Go 日常开发常备第三方库和工具
- golang源码阅读之定时器以及避坑指南
- Golang 需要避免踩的 50 个坑
- Go 语言实现 WebSocket 推送
- GO 语言学习资源整理
- 为什么很多公司都转型go语言开发?Go语言能做什么
- Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库
- Go 和 Rust 我都要!
- Go 语言内存管理(二):Go 内存管理
- machinery入门看这一篇
- 深入理解Go-垃圾回收机制
三、实战阶段
实战阶段的核心任务是增加知识广度,通过多读书、多做项目,将理论与实践相结合,从而提升理论水平和实战经验。
关于书籍方面,推荐如下基本
1、Go语言精进之路(豆瓣评分9.0)
这是一本经典之作,书中不仅包含大量编程指导和实践经验,还从Go语言设计者的视角对Go背后的设计哲学和编程思想进行了深入梳理和分析,非常适合刚入门的读者。
2、Go语言编程之旅:一起用Go做项目(豆瓣评分8.6)
本书对项目开发、细节分析、运行时分析等核心内容进行了较为深入的剖析,提供了相对完整的项目实践经验,对项目实战有相当大的帮助。
3、Go Web 编程(豆瓣评分8.1)
本书以一个网络论坛为例,教授读者如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件构建Go Web应用,并在此基础上构建相应的Web服务。
关于教学课程方面的推荐
- Go语言实战开发企业级分布式云存储系统
- Go 实战训练营全体系课程
- Go从入门到进阶,大厂案例全流程实践
- 码神之路Go语言挺进大厂实战营
- Go语言区块链从入门到深度实战
这几个视频课程都是关于项目实战方面的,没什么好介绍的,跟着课程把里面的项目实战都实践一遍,对提升编程技能很有帮助。
关于项目方面的推荐
1、flipped-aurora/gin-vue-admin
这个开源项目是gin+vue搭建的(中)后台系统框架,适合有一定编程基础的编程爱好者实践,也适合已经工作的 Go 工程师学习
2、awesome-go
从名字就可以看出它也是 awesome 系列的一员,这个仓库涵盖的项目非常全面,涵盖认证授权、持续集成、电子邮件、游戏开发,图形界面开发、命令行......。非常的全面!
3、aceld/zinx
基于Golang轻量级TCP并发服务器框架,适合具有一定基础的 Go 语言学习者
实战方面博客推荐
- go语言之行--golang核武器goroutine调度原理、channel详解
- Go内存泄漏?不是那么简单!
- 手把手教姐姐写消息队列
- 大神是如何学习 Go 语言之浅谈 select 的实现原理
- Golang 隐藏技能 -- 访问私有成员
- 深入golang runtime的调度
- 深度解密Go语言之sync.map
- Go源码:协程栈
- Go原理之上下文 Context
- golang 图像验证码
- go并发之goroutine和channel,并发控制入门篇
- GO千万级消息推送服务
- 【Golang源码系列】五:锁的实现原理分析
- 深入golang之---goroutine并发控制与通信
- Go原理之Channel解读
- GO 中 Chan 实现原理分享
- 深入理解go-channel和select的原理
- Go 译文之通过 context 实现并发控制
- 图文结合,白话Go的垃圾回收原理
- 在Golang中各种永远阻塞的姿势
四、进阶阶段
进阶阶段的目标是加深知识深度,不仅要强化编程高阶技能,如性能优化、项目选型架构等,更要提升编程理论水平.这一阶段需要更多地通过阅读书籍和学习难度较高的课程、项目来实现。
关于书籍的推荐
1、Go专家编程(豆瓣评分9.0)
本书深入讲解了Go语言常见特性的内部机制和实现方式,大部分内容源自对Go语言源码的分析,并从中提炼出实现原理,帮助读者快速、轻松地了解Go语言的内部运作机制。
2、Go语言设计与实现(豆瓣评分8.7)
本书内容全面,涵盖调试源代码、编译原理、数据结构、语言特性、常用关键字、并发编程、内存管理、元编程和标准库等多个方面,几乎囊括了Go语言从编译到运行的全过程.通过阅读本书,读者不仅能够深入理解Go语言的实现细节,还能深刻认识设计背后的原理,同时提升阅读源代码的技能。
关于课程的推荐
- GO语言构建高性能高并发的大型企业抽奖系统
- 深入Go底层原理-重写Redis中间件实战
- go微服务构建秒杀系统
- Go语言开发社区网站与高性能架构部署
- 海量数据高并发场景 构建Go+ES8企业级搜索微服务
- Go构建分布式高并发爬虫系统
这些课程都涉及性能优化方面的知识,对于深入了解Go底层原理和提升性能优化能力有很大帮助。
关于进阶的博客的推荐
- 编写和优化Go代码
- Go 应用的性能优化
- Go语言之pprof的性能调优”燥起来“
- Golang测试与性能调优
- Go优化
- 深入golang之---goroutine并发控制与通信
- 一个调度系统的开发与性能优化
- Go 译文之通过 context 实现并发控制
- Go 程序性能分析 101
- Go语言性能优化- For Range 性能研究
- golang 使用pprof和go-torch做性能分析
- Go 调用 Java 方案和性能优化分享
- 性能优化实战:百万级WebSockets和Go语言
- 字节跳动 Go RPC 框架 KiteX 性能优化实践
- 多维度思考:如何提高项目的开发时间、提高安全性、提高运行速度,从多个维度带来的一些思考。 | Go主题月
- go pprof 性能分析
- GO性能优化小结
- Go语言项目性能优化实例剖析
- Go语言性能优化-两数之和算法性能研究
- Go借助PProf的一次性能优化
- Golang 反射性能优化
- Go在迅雷P2P连通系统中的性能优化实践
- Golang的GC性能优化技巧