Press "Enter" to skip to content

Golang 入门到精通教程

快速入门

数据类型篇

流程控制篇

函数式编程篇

面向对象篇

错误处理篇

数据结构和算法篇

线性表

排序算法

查找算法

哈希表

二叉树

  • 图的基本概念
  • 广度优先搜索
  • 深度优先搜索

算法面试题篇

数组/链表

字符串

  • 替换字符串中的空格
  • 字符串的排列组合
  • 第一个只出现一次的字符

二叉树

  • 重建二叉树(前序遍历、中序遍历)
  • 树的子结构
  • 二叉树的镜像
  • 从上往下打印二叉树(按层遍历)
  • 二叉搜索树的后序遍历序列(后序遍历)
  • 二叉树中和为某一值的路径(前序遍历)
  • 二叉搜索树和双向链表的转换(中序遍历)
  • 二叉树的深度
  • 判断一棵树是否是平衡二叉树

排序算法

  • 对公司员工年龄进行排序(快速排序)
  • 数组中出现次数超过一半的数字(快速排序)
  • 最小的k个数(快速排序、堆排序、红黑树)
  • 把数组元素排成最小的数(快速排序、大数问题)
  • 丑数(空间换时间)
  • 数组中的逆序对(借助归并排序的流程统计)

查找算法

  • 旋转数组的最小数字(二分查找)
  • 数字在排序数组中出现的次数(二分查找的变形版本)

递归

  • 递归应用:斐波那契数列
  • 斐波那契数列应用:青蛙跳台阶算法
  • 数值的整数次方
  • 从 1 到整数 n 中 1 出现的次数(结合排列组合知识)

位运算

  • Excel 中字母编码列对应的整数值
  • 二进制整数中 1 的个数
  • 数组中只出现一次的数字

动态规划

  • 连续子数组的最大和

设计模式篇

  • 单例模式
  • 建造者模式
  • 工厂模式
  • 原型模式
  • 组合模式
  • 适配器模式
  • 桥梁模式
  • 代理模式
  • 装饰器模式
  • 门面模式
  • 享元模式
  • 策略模式
  • 责任链模式
  • 命令模式
  • 模板模式
  • 备忘录模式
  • 解释器模式
  • 访问者模式
  • 状态模式
  • 中介者模式
  • 观察者模式

常用 Go 标准库

  • 字符串处理
  • 正则表达式
  • 文本处理:JSON/XML/Gob
  • 标准输入与输出
  • 日志记录

并发编程篇

  • 多进程、多线程与协程的引入
  • Go 协程实现原理和使用示例
  • 协程间通信(上):共享内存
  • 协程间通信(下):通过channel进行消息传递
  • 通道类型篇(一):基本语法和缓冲通道
  • 通道类型篇(二):单向通道及其使用
  • 通道类型篇(三):通过 select 语句等待通道就绪
  • 通道类型篇(四):错误和异常处理
  • 利用多核 CPU 实现并行计算
  • sync 包(一):sync.Mutex 和 sync.RWMutex
  • sync 包(二):条件变量 sync.Cond
  • sync 包(三):原子操作
  • sync 包(四):sync.WaitGroup 和 sync.Once
  • 通过 context 包实现多协程之间的协作
  • sync 包(五):sync.Pool
  • 通道与锁的选择

并发模式篇

  • Barrier 模式
  • Future 模式
  • Pipeline 模式
  • Worker 模式
  • Publish/Subscriber 模式

底层原理篇

  • Go 程序编译与构建
  • 垃圾回收机制解析
  • goroutine 底层调度原理
  • 接口实现的底层原理

系统编程篇

  • Unix 概述
  • 内存管理
  • 文件系统
  • 进程模型
  • 用户权限
  • 信号和管道
  • CGO

网络编程篇

  • Socket 编程入门:Dial 函数及其使用
  • Socket 编程入门:Dial 函数的底层实现及超时处理
  • HTTP 编程(一):客户端如何发起 HTTP 请求
  • HTTP 编程(二):http.Client 底层实现剖析
  • HTTP 编程(三):HTTP/HTTPS 请求处理
  • RPC 编程(一):客户端与服务端 RPC 调用的简单实现
  • RPC 编程(二):默认的编解码工具 Gob 使用介绍
  • RPC 编程(三):引入 jsonrpc 包通过 JSON 对 RPC 传输数据进行编解码
  • JSON 处理篇(上):JSON 编解码基本使用入门
  • JSON 处理篇(下):未知结构 JSON 数据解码和 JSON 流式读写实现

测试优化篇

  • 代码测试
  • 基准测试
  • 生成文档
  • 代码优化

Web 编程篇

  • 路由处理器
  • 数据库操作
  • 用户认证
  • REST API
  • 单页面应用

微服务开发篇

  • RPC 框架
  • 注册中心
  • 服务发现
  • 服务治理
  • 负载测试
  • 服务部署

项目实战篇

  • 在线论坛
  • 博客教程
  • 前后端分离应用
  • 聊天室项目
  • 爬虫项目
  • 微服务项目

公众号 & 学习社群

本系列文章会同步到以下微信公众号,欢迎订阅:

学院君公众号

你还以加入「Go 语言研习社」与更多同仁一起探讨 Go 语言的学习和使用:

太烂了有点差凑活看还不错太棒了 (17 人打了分, 平均分: 4.76)
Loading...

6 条评论

  1. shunzi250
    shunzi250 2021年4月29日

    君哥,这套教程预计什么时候更新完成呢,跟laravel学院里面的教程会有不同么

    • 学院君
      学院君 2021年4月29日

      可以看作是2.0版本,基于最新版本 Go,并扩充了很多内容,基本算是重构了原来的教程,争取今年更新完吧

  2. Jason
    Jason 2021年7月15日

    学院君,什么时候更新新的教程内容,一直在等

发表评论