Go 语言三周(18 天)速成学习计划
大家好,我是老周。最近老周整理了一份golang的速成学习路线,这个速成计划呢,主要针对两类急需掌握实用开发语言以解决就业问题的人群:
- 在校大四学生:秋招未通过,无熟练掌握的开发语言,对职业方向感到迷茫。
- 已毕业人群:无稳定工作,未明确职业发展方向,希望快速掌握一门语言进入开发领域。
老周整理这篇帖子同时整理了相关的学习资源,想要详细了解此篇内容或者需要资料的同学可以关注小破站:老周聊golang。老周也会在上面持续分享相关稿件,内容包括300+大厂面试系列(附相应资料PDF),GO保姆教程系列等(附相应资料PDF),如果有职业规划、面试中遇到的问题也可以找老周解答。
Go 语言三周(18 天)速成学习计划:
Go 语言优势与适配方向
(一)与其他语言对比
- Go 语言:应用领域更广泛(含云计算、Web 后台、数据库、存储等),开发效率更高,适配业务开发场景。
- Java/PHP:应用领域相对局限,多用于 Web 开发,开发效率中等,适配 Web 业务开发场景。
- C/C++:侧重底层开发(如操作系统、驱动等),开发效率较低,适配底层功能开发场景。
(二)语言选择建议
- 若目标是 Java/PHP 开发:Go 与二者同属业务开发方向,且应用范围和效率更优,可优先考虑 Go。
- 若目标是 C/C++ 开发:目前水平不足且急需工作,建议先学 Go。二者不冲突,C/C++ 负责底层开发,Go 负责业务开发,可相辅相成(支持通过 CGO 调用 C 代码),后续工作中可灵活切换。
18 天详细学习计划(每周 6 天,1 天休息)
第 1 天:环境配置与命令行基础(约 3 小时)
- SDK 安装:下载安装包并完成安装,配置 GOROOT、GOPATH、GOBIN 3 个环境变量,时长建议 1 小时。
- IDE 安装与基础操作:下载安装 IDE(如 GoLand、VS Code),掌握文件 / 文件夹创建、保存、删除,熟悉不同扩展名文件操作,时长建议 1 小时。
- 调试与命令行:调试仅需掌握打印输出(本地)和日志输出(生产环境),无需学习源码调试、附加进程、远程调试;命令行需掌握编译(含跨平台编译)、依赖管理(go get、go mod)、插件安装(go install),时长建议 1 小时。
第 2 天:Go 基础语法(约 10 小时)
- 语言结构:明确包声明(package)、包导入(import)位置,掌握函数、变量定义格式及注释写法,时长建议 1 小时。
- 基础语法:掌握函数定义(形参、返回值、调用),熟悉 25 个关键字 / 保留字的基本作用(无需精通,能写简单 Demo 即可),了解常用预定义标识符(无需掌握全部 36 个,重点关注 append、len 等常用标识,知道用途即可),时长建议 9 小时。
第 3 天:数据类型(约 6 小时)
- 基础类型:掌握布尔类型、数值类型(int、float 等),学会定义常量和变量,暂不学习 iota(枚举模拟工具),时长建议 3 小时。
- 派生类型:了解切片、结构体、接口的基本概念(接口类似 “所有类型的根”),暂不学习通道、函数、数组、泛型类型,时长建议 3 小时。
第 4 天:常用标准库(约 3 小时)
- 学习目标:掌握 13 个常用标准库的核心用途及简单方法。
- 学习方法:优先看能看懂的方法,看不懂的暂不研究。
- 重点库示例:
- context:用于上下文传递
- encoding/json:实现 JSON 编码与反编码
- errors:负责错误信息的创建与输出
- fmt:处理字符串格式化
- io:实现文件读写操作
第 5 天:Go 语言特性功能(约 5 小时)
- 异常处理:掌握 Go 中异常处理的常用方式
- 接口实现:理解接口的定义与实现逻辑
- Channel 使用:单独练习通道(演示类型)的使用方法,掌握通过通讯管理内存的方式
- 说明:函数和 B 包暂不学习,非当前阶段重点需求
第 6 天:并发编程(约 6 小时)
- 协程使用:掌握协程的创建与使用方法
- 锁的应用:区分互斥锁与读写锁的适用场景,学会正确使用
- 上下文(context):明确 context 的使用时机与方法
- 说明:对象值、原子操作暂不学习,非速成阶段重点
第 7 天:网络编程(约 4 小时)
- 学习范围:仅聚焦 Web 方向(速成以解决就业、胜任基础工作为目标,暂不涉及云计算、存储等复杂领域)
- 重点内容:掌握 HTTP 相关编程(工作中使用频率最高)
- 可选内容:有兴趣可了解 WebSocket,无兴趣可暂不学习
第 8 天:设计模式(约 3 小时)
- 学习重点:仅掌握工厂模式(两种案例模式)
- 说明:工厂模式是工作中使用最多的设计模式,且基础易懂,其他模式暂不学习(基础未掌握时,复杂模式难以理解应用)
第 9-10 天:数据结构与算法(共 7 小时)
- 算法学习(4 小时):掌握常用排序算法(如冒泡排序、快速排序)、查找算法(如二分查找)
- 数据结构学习(3 小时):了解常用数据结构(如数组、链表、栈、队列、哈希表)的基本概念与应用场景
第 11 天:版本控制(约 3 小时)
- 分支管理:学会创建、删除分支,掌握分支的推送与拉取操作
- Tag 管理:掌握 Tag 的创建与删除方法
- 远程仓库管理:了解在远程仓库创建个人代码仓库的流程
- 代码检查与对比:学会对比提交代码与历史版本的差异
第 12 天:Web 框架(约 4 小时)
- API 设计:掌握接口设计的基本逻辑与规范
- 模型绑定与参数验证:学会模型绑定方法,掌握参数验证的实现方式
- 中间件应用:理解中间件的作用,学会通过中间件解决跨域、权限验证等问题
第 13-14 天:非关系型数据库(Redis)(共 6 小时)
- 重点应用:优先掌握字符串、有序集合的使用(工作中最常用)
- 命令行操作:学习 Redis 基本命令行操作,辅助理解 Redis 逻辑
- 说明:其他数据类型暂不深入,以满足基础工作需求为主
第 15 天:关系型数据库(MySQL)(约 5 小时)
- 数据库设计:掌握符合三范式的数据库设计方法
- 基础操作:学会增删改查、表操作、索引操作
- 进阶操作:了解分组、排序、分页的实现逻辑
第 16-18 天:项目实战(共 10 小时)
- 项目内容:实现 “图片上传存储并返回短链接” 的 Mini 项目(解决具体业务需求,巩固前期所学)
- 学习目标:通过实战梳理知识点,提升代码应用能力
以上就是今天分享的内容了,老周整理这篇帖子同时整理了相关的学习资源,想要详细了解此篇内容或者需要资料的同学可以关注小破站:老周聊golang。老周也会在上面持续分享相关稿件,内容包括300+大厂面试系列(附相应资料PDF),GO保姆教程系列等(附相应资料PDF),如果有职业规划、面试中遇到的问题也可以找老周解答。
#计算机##it##程序员##goland#