Go 语言三周(18 天)速成学习计划

大家好,我是老周。最近老周整理了一份golang的速成学习路线,这个速成计划呢,主要针对两类急需掌握实用开发语言以解决就业问题的人群:

  1. 在校大四学生:秋招未通过,无熟练掌握的开发语言,对职业方向感到迷茫。
  2. 已毕业人群:无稳定工作,未明确职业发展方向,希望快速掌握一门语言进入开发领域。

老周整理这篇帖子同时整理了相关的学习资源,想要详细了解此篇内容或者需要资料的同学可以关注小破站:老周聊golang。老周也会在上面持续分享相关稿件,内容包括300+大厂面试系列(附相应资料PDF),GO保姆教程系列等(附相应资料PDF),如果有职业规划、面试中遇到的问题也可以找老周解答。

Go 语言三周(18 天)速成学习计划:

Go 语言优势与适配方向

(一)与其他语言对比

  • Go 语言:应用领域更广泛(含云计算、Web 后台、数据库、存储等),开发效率更高,适配业务开发场景。
  • Java/PHP:应用领域相对局限,多用于 Web 开发,开发效率中等,适配 Web 业务开发场景。
  • C/C++:侧重底层开发(如操作系统、驱动等),开发效率较低,适配底层功能开发场景。

(二)语言选择建议

  1. 若目标是 Java/PHP 开发:Go 与二者同属业务开发方向,且应用范围和效率更优,可优先考虑 Go。
  2. 若目标是 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 个常用标准库的核心用途及简单方法。
  • 学习方法:优先看能看懂的方法,看不懂的暂不研究。
  • 重点库示例:
  1. context:用于上下文传递
  2. encoding/json:实现 JSON 编码与反编码
  3. errors:负责错误信息的创建与输出
  4. fmt:处理字符串格式化
  5. 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#
全部评论

相关推荐

一面(60min 9.26)- 2个人,2v1面试(面试官年轻小帅人挺好,精神状态饱满)- 说一下你对MySQL索引的理解,如何减少回表- MySQL查询一个数据都经过哪些过程,查询过程中有其他事务修改了数据会不会受到影响。MVCC怎样实现的- undo log, redo log, binlog各是做什么的- TCP三次握手的过程,有这样场景:已有链接无异常,但新的连接都失败可能是出现什么异常?- 浏览器输入www.baidu.com到返回页面的整个过程- redis的持久化机制,缓存问题和解决方法- redis和DB的数据一致性,先更新缓存再更新DB的顺序会出现什么问题呢?- 什么时候用redis,什么时候直接用内存,这个技术选型你怎么理解?- 场景:使用redis维护一个用户访问频率前50的商品,选用什么数据类型- 了解一些MQ基础嘛- 实习成果怎么样,有没有转正?- 你在实习中做项目有哪些难点以及怎样解决的- 如果项目的用户数量增加了很多倍,你认为你的系统瓶颈和优化的点在哪里?- 实习过程中给你一个需求,让你逐步拆解需求你是怎样做的?- 实习工作中从提出需求到最后交付是大概怎样的一个流程?- 如何学习一项新技术的?比如你不会MQ但项目中要用到MQ你会怎么学习?- 你回过头来认为哪些东西可以做的更好?- 实习中有没有碰到沟通不融洽的情况,如何解决的- 看你还有三个项目经历,这三个都是做什么的能介绍一下嘛?- 讲一下常见限流策略和桶令牌限流吧- 讲一下singleflight,讲一下一致性哈希算法- 你的职业规划是什么,看你实习工作属于做中台开发。我说无倾向,在互联网行业做开发就行- 反问:业务。base地。二面(40min,9.29)- 无八股,无算法,全程项目讨论。整体体验令人不爽- 让共享屏幕边画流程图边讨论项目(讲的详细了就打断,讲的笼统了也不行,事贼多)- 实习中除了mentor交代的任务有没有自己提出的认为应该做的需求?- 工作中对大模型的了解程度- 反问:是不是hc非常少?- 回答:只有1个hc
查看22道真题和解析
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务