# GolangStudy
本项目旨在指导程序员们如何从基础开始系统的学习 Go 语言,并学习开发时所需知识点。
Go 是一门非常容易上手的语言,语法简洁,代码易读,如果你有常用语言的基础,那看一本[Go 语言圣经](https://docs.hacknode.org/gopl-zh/index.html)后便可上手开发业务代码。
本项目不是博客,一个问题不会讲的特别细致,如果想要更加深入的了解某个知识点的话,建议使用搜索引擎去搜索经典博客加深理解,项目中也会推荐一些好的文章供参考。
本项目更加看重的是对于知识点系统的一个总结,能够通过一句话,一张思维导图来把一类知识进行讲解,这样在面试前把所有的思维导图都过一遍就快的吸收知识点,平时空余的时候拿出思维导图进行复习也能加深理解。
作者通过该学习笔记,拿到过腾讯云,金山办公,青藤云,神州数码等云相关企业 offer,工作岗位是 Golang 服务端开发。
## 如何利用思维导图学习
对于一个新的知识点,我一般是这样结合思维导图来学习的:
1. 找到一个比较详细的资料,例如博客,书籍等,如果在 baidu 上面搜不到易读的内容(可能性较大),可以尝试用 bing 看看英文的资料,能够翻墙的可以使用 google。
2. 通读全文,将每一个陌生的专业词汇记录下来,用于更进一步的学习,逐步发散,逐渐扩充自己的知识库。
3. 捋清文章脉络,找到每个章节的核心概要,将概要记录到思维导图子标题上。
4. 遍历每个概要,逐步下沉概要里的各个关键知识点,记录到思维导图。
5. 比对文章内容和思维导图,确认没有遗漏的知识点。
6. 经常回顾记录的思维导图,用于加深知识点的记忆。
7. 用持续进步的角度审视所记录的思维导图,思维导图不是标准答案,只是你对一个知识点的总结,不一定是绝对正确的,可以持续优化,持续总结出更好的内容。
8. 思维是抽象的,网状的,不是线性的,很多较难的知识点如果用一句线性的语句来描述会非常的难以理解,所以要将重难点内容解析成思维导图,要习惯这种思维模式,这样才算真正的理解了思维导图的作用。
## Golang 学习路线
[GolangStudy系列|学习方法|Golang学习路线](https://mp.weixin.qq.com/s/o1KxHuHyr32F7pQyKNLedw)
![Golang-学习路线.png](https://cnymw.github.io/GolangStudy/docs/Golang-学习路线/Golang-学习路线.png)
## Golang 学习目录
<!-- ALL-TOPICS-LIST:START -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<center>
<table>
<tr>
<td align="center"><a href="#Golang语言"><img src="docs/img/Go.png" width="75px;" height="75px;" alt="go"/><br /><b>Golang</b></a></td>
<td align="center"><a href="#linux"><img src="docs/img/linux.png" width="75px;" height="75px;" alt="Linux"/><br /><b>Linux</b></a></td>
<td align="center"><a href="#数据结构"><img src="docs/img/data-structure.png" width="75px;" height="75px;" alt="数据结构"/><br /><b>数据结构</b></a></td>
<td align="center"><a href="#算法"><img src="docs/img/algorithm.jpeg" width="75px;" height="75px;" alt="算法"/><br /><b>算法</b></a></td>
<td align="center"><a href="#设计模式"><img src="docs/img/design-pattern.jpeg" width="75px;" height="75px;" alt="设计模式"/><br /><b>设计模式</b></a></td>
</tr>
<tr>
<td align="center"><a href="#网络"><img src="docs/img/network.png" width="75px;" height="75px;" alt="Network"/><br /><b>网络</b></a></td>
<td align="center"><a href="#Kubernetes"><img src="docs/img/kubernetes.png" width="75px;" height="75px;" alt="kubernetes"/><br /><b>Kubernetes</b></a></td>
<td align="center"><a href="#Docker"><img src="docs/img/docker.png" width="75px;" height="75px;" alt="Docker"/><br /><b>Docker</b></a></td>
<td align="center"><a href="#leetcode"><img src="docs/img/leetcode.png" width="75px;" height="75px;" alt="leetcode"/><br /><b>leetcode</b></a></td>
<td align="center"><a href="#kafka"><img src="docs/img/kafka.png" width="85px;" height="80px;" alt="Kafka"/><br /><b>Kafka</b></a></td>
</tr>
<tr>
<td align="center"><a href="#redis"><img src="docs/img/redis.png" width="75px;" height="75px;" alt="redis"/><br /><b>redis</b></a></td>
<td align="center"><a href="#mysql"><img src="docs/img/databases.png" width="75px;" height="75px;" alt="Databases"/><br /><b>mysql</b></a></td>
<td align="center"><a href="#elasticsearch"><img src="docs/img/elastic.png" width="75px;" height="75px;" alt="ElasticSearch"/><br /><b>Elastic</b></a></td>
</tr>
</table>
</center>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-TOPICS-LIST:END -->
---
## Golang语言
Golang 语言的学习可以分为以下方向:
- 基础:开发核心能力
- 高级机制:线程调度,垃圾回收等,进阶的面试经常会考
- 源码解读:对 Golang 加深理解,进阶开发有帮助
- 常用框架:对生产开发有帮助,可以简单了解下,在技术选型的时候可以快速做出判断
学习目录如下:
- 基础
- [GolangStudy系列|Golang学习|Golang入门](https://mp.weixin.qq.com/s/q0Cyucw02GQQAF898oPsqg)
- [GolangStudy系列|Golang学习|Golang程序结构](https://mp.weixin.qq.com/s/Gj6WJe_I1io1Dnxy7uEuXg)
- [GolangStudy系列|Golang学习|Golang基础数据类型](https://mp.weixin.qq.com/s/9bQ4a0YOm62GaUe6nQYPhA)
- [Golang 并发](/docs/go-并发.md)
- [Golang 接口](/docs/go-接口.md)
- [Golang 检测竞态条件](/docs/go-检测竞态条件.md)
- 进阶
- [Golang 调度](/docs/go-调度.md)
- [Golang 垃圾回收](/docs/go-垃圾回收.md)
- [Golang channel](/docs/go-channel/go-channel.md)
- [Golang 性能分析:pprof实战](https://blog.wolfogre.com/posts/go-ppof-practice/)
- 深入 Golang sdk 源码
- [Golang 源码解读 标识符](/docs/go-源码解读-标识符/go-源码解读-标识符.md)
- [Golang 源码解读 双向链表 list](/docs/go-源码解读-双向链表list/go-源码解读-双向链表list.md)
- [Golang 源码解读 程序分析pprof](/docs/go-源码解读-程序分析pprof.md)
- [Golang 源码解读 同步模块sync mutex](/docs/go-源码解读-同步sync-mutex.md)
- [Golang 源码解读 同步模块sync once](/docs/go-源码解读-同步sync-once.md)
- [Golang 源码解读 垃圾回收](/docs/go-源码解读-垃圾回收/go-源码解读-垃圾回收.md)
- [Golang 源码解读 channel](/docs/go-源码解读-channel/go-源码解读-channel.md)
- 拓展 zap
- [Golang 源码解读 高性能日志库 zap](/docs/go-zap.md)
- 拓展 grpool
- [Golang 源码解读 轻量级线程池 grpool](/docs/go-grpool.md)
- 面试题
- [Golang 有几种连接字符串的方法?](/docs/go-面试题-连接字符串方法/go-面试题-连接字符串方法.md)
---
## Kubernetes
Golang 常用在微服务,分布式场景,不经常用于较大的业务场景中。
常见的如开发一个微服务,部署到阿里/腾讯/华为云中,或者云原生自建的 Kubernetes 里,这个时候就需要学习并精通 Kubernetes 相关的知识。
很多企业在自建云,或者做云原生的转型,部署服务会逐渐的使用 Kubernetes,而放弃之前的物理机,虚拟机部署模式。所以面试的时候问到 Kubernetes 是比较常见的。
学习目录如下:
- [kubernetes.io 官方文档](https://kubernetes.io/zh-cn/)
- [Kubernetes 概述|视频学习|完整版](/docs/Kubernetes-概述/Kubernetes-概述.md)
- [Kubernetes 组件|视频学习|完整版](/docs/Kubernetes-组件/Kubernetes-组件.md)
- [Kubernetes 理解对象|视频学习|完整版](/docs/Kubernetes-理解对象/Kubernetes-理解对象.md)
- [Kubernetes 标签|视频学习|完整版](/docs/Kubernetes-标签/Kubernetes-标
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
数据结构是计算机存储、组织数据的方式,它涉及到数据的逻辑结构、物理结构以及对数据的基本操作。数据结构的选择会影响到程序的效率、可读性和可维护性。常见的数据结构有数组、链表、栈、队列、树、图等。 算法则是解决特定问题的步骤,是对数据运算和操作的详细描述。算法的设计和选择会直接影响到程序的效率,因此,在设计和选择算法时,需要考虑到时间复杂度、空间复杂度等因素。 在实际应用中,数据结构和算法常常是密不可分的。通过对数据结构的理解和运用,以及对算法的学习和研究,可以帮助我们更有效地解决实际问题,提升编程能力。
资源推荐
资源详情
资源评论
收起资源包目录
《GolangStudy》:从简单到难最全总结,go基础,数据结构,算法,设计模式.zip (429个子文件)
Golang-学习路线.eddx 66KB
Kubernetes-组件-思维导图.emmx 939KB
算法-排序算法-思维导图.emmx 680KB
Golang-程序结构-思维导图.emmx 537KB
Golang-基础数据类型-思维导图.emmx 530KB
Kubernetes-工作负载-思维导图.emmx 489KB
go-源码解读-标识符.emmx 467KB
go-源码解读-双向链表list.emmx 415KB
Kubernetes-标签-思维导图.emmx 414KB
go-面试题-连接字符串有几种方法.emmx 395KB
Kubernetes-节点-思维导图.emmx 378KB
redis-面试题-redis为什么这么快.emmx 350KB
数据结构-链表-思维导图.emmx 350KB
Kubernetes-理解对象-思维导图.emmx 350KB
Kubernetes-网络模型-思维导图.emmx 326KB
Kubernetes-namespace-思维导图.emmx 303KB
Kubernetes-概述-思维导图.emmx 274KB
index.html 472B
go-go调度-章节1-指令指针.jpeg 100KB
design-pattern.jpeg 11KB
algorithm.jpeg 7KB
docker-docker基础-操作参数解读.jpg 1.59MB
docker-docker基础-容器技术生态系统.jpg 635KB
首页-空白.jpg 121KB
首页-小程序.jpg 46KB
网络-http-http版本区别-二进制分帧.jpg 40KB
数据结构-面试题-B树和B+树的区别-B+树.jpg 37KB
redis-面试题-redis为什么这么快-多路复用.jpg 32KB
leetcode-61-旋转链表-示例1.jpg 31KB
算法-雪花算法-bit分布图.jpg 29KB
首页-wechat.jpg 26KB
算法-广度优先搜索-遍历示例图.jpg 24KB
分布式-一致性协议.md 18KB
README.md 16KB
go-源码解读-channel.md 16KB
go-源码解读-标识符.md 16KB
redis-集群.md 15KB
Kubernetes-基本概念和术语.md 15KB
linux-文件操作.md 15KB
linux-curl命令.md 13KB
docker-docker基础.md 12KB
Elasticsearch-倒排索引.md 12KB
go-源码解读-同步sync-mutex.md 11KB
数据库-mysql-InnoDB内存结构.md 11KB
数据库-mysql-Innodb锁机制.md 11KB
go-源码解读-垃圾回收.md 10KB
go-源码解读-程序分析pprof.md 10KB
go-源码解读-双向链表list.md 10KB
Kubernetes-kubectl命令.md 9KB
linux-抓包命令tcpdump.md 9KB
go-grpool.md 9KB
linux-监测系统.md 9KB
go-检测竞态条件.md 8KB
分布式-分布式架构.md 8KB
Golang-程序结构.md 7KB
分布式-断路器模式.md 7KB
redis-实现分布式锁.md 7KB
算法-前中后缀表达式.md 7KB
Golang-学习路线.md 7KB
Elasticsearch-概览.md 7KB
Golang-入门.md 7KB
网络-TCP-IP详解-IP.md 6KB
网络-TCP-IP详解-链路层.md 6KB
go-zap.md 6KB
redis-sentinel.md 6KB
数据结构-哈希表.md 6KB
数据库-mysql-InnoDB磁盘结构.md 6KB
redis-持久化.md 6KB
Kubernetes-节点.md 5KB
数据结构-二叉搜索树.md 5KB
Kubernetes-组件.md 5KB
linux-tcp分析命令ss.md 5KB
Kubernetes-工作负载.md 5KB
Kubernetes-标签.md 5KB
算法-排序算法.md 5KB
数据结构-红黑树.md 5KB
设计模式-观察者模式.md 5KB
go-并发.md 5KB
算法-归并排序.md 4KB
算法-堆排序.md 4KB
数据结构-二叉树.md 4KB
go-源码解读-堆heap.md 4KB
go-接口.md 4KB
Kubernetes-namespace.md 4KB
leetcode-225-用队列实现栈.md 4KB
Golang-基础数据类型.md 4KB
Elasticsearch-集群.md 4KB
数据库-mysql-InnoDB锁定读.md 4KB
go-源码解读-同步sync-once.md 4KB
网络-http-http版本区别.md 4KB
leetcode-224-基本计算器.md 4KB
redis-面试题-redis有什么作用.md 4KB
算法-快速排序.md 4KB
数据结构-队列.md 4KB
leetcode-19-删除链表的倒数第N个结点.md 4KB
数据结构-B树.md 4KB
Golang-复合数据类型.md 4KB
算法-滑动窗口.md 4KB
Kubernetes-理解对象.md 4KB
leetcode-3-无重复字符的最长子串.md 4KB
共 429 条
- 1
- 2
- 3
- 4
- 5
资源评论
极致人生-010
- 粉丝: 3256
- 资源: 3077
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功