前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >可能是最用心的「Go学习建议」

可能是最用心的「Go学习建议」

作者头像
王中阳Go
发布于 2023-01-08 06:12:42
发布于 2023-01-08 06:12:42
1.1K0
举报
文章被收录于专栏:Go语言学习专栏Go语言学习专栏

前言

最近群里又加入了不少好友,和我聊的最多的问题就是“如何高效学Go?要学什么?怎么学好?”。

我觉得这个问题要看每个人的目标是什么?

是想快速学习之后找到一份工作就可以?还是本来有其他语言的基础,想通过学Go提高自己,进而找到一份更好的工作。

同样也要结合自己的过往经历,比如你是在校生,还是刚工作不久的朋友,还是混迹职场多年朋友。

或者你是运维转Go,还是Java转Go,PHP或者Python转Go等等。

我都是在充分了解大家过往的经历后,给每位星友提建议的。

聊得人多了也就有了能“抽象”出来的东西,整理一篇文章,分享给大家。

我之前给大家分享的《Go学习路线图》https://juejin.cn/post/7119123646471208968,是结合我的经历,适合于有一定基础,想快速学习Go,尽快找到工作的朋友。

如果你有充足的时间去学习(或者你想谋求一个更好的工作),建议大家按照这篇文章的顺序,夯实自己的基础,多做项目,进而实现自己的目标。

1. Go语言基础

图书

入门看这个:《Go语言学习笔记》,跟着书籍多敲敲代码,Go语言相对C++,Java来说,简单很多。

视频

入门阶段我非常推荐这套免费教程:

不管是内容,还是讲解方式,还是深入浅出的讲解风格都深得我心,也是我学习的榜样。

这是UP主的视频地址:

https://www.bilibili.com/video/BV1s341147US

网站资源

1. 菜鸟教程

  • 网址:https://www.runoob.com/go/go-tutorial.html
  • 简介:如果你觉得看视频很浪费时间,强烈建议你跟着菜鸟教程动手实践。

2. go语言中文网

  • 网址:https://studygolang.com/articles
  • 简介:这个就不多说了,学Go的应该都知道

3. Go By Example 中文版

  • 网址:https://gobyexample-cn.github.io
  • 简介:使用代码示例来学习 Go 语言。

4. Go 面试题

  • 网址:http://www.topgoer.cn/docs/gomianshiti/mianshiti,
  • 简介:也是使用代码示例来讲解 Go,非常适合用来准备面试。

5. 跟着单元测试学习 Go

  • 网址:https://github.com/quii/learn-go-with-tests
  • 简介:非常见名知意了,也有中文版的哦~

Go轻量级开源项目

学完基础,建议你上手几个基础项目:

1. starcharts

  • GitHub:https://github.com/caarlos0/starcharts
  • 简介:项目的功能是生成 Github 上面的项目的 star 趋势图,核心代码不多,用来练手很合适。

2. gorched

  • GitHub:https://github.com/zladovan/gorched
  • 简介:使用 Go 写的一个小游戏。

3. pacgo

  • GitHub:https://github.com/danicat/pacgo
  • 简介:也是使用 Go 写的一个小游戏,每一步都有详细的描述和代码实现。

4. wechat-go

  • GitHub:https://github.com/songtianyi/wechat-go
  • 简介:微信 web 版 API 的 Go 实现,模拟微信网页版的登录/联系人/消息收发等功能。

我准备脱敏之前用Go开发的类似支付宝集五福项目,开源出来,欢迎大家催更。

2. Web 开发

书籍

基础知识掌握之后,可以上手做一些 web 应用,进一步了解更多的 Go 语言相关框架以及生产环境中的常用中间件,推荐书籍《Go Web 编程》。

框架

了解了web基础知识后可以学习下 web 框架 Gin、GoFrame:两个框架都比较的流行,选择其中一个其实就可以了。

GoFrame相关

  • 官方文档:https://goframe.org/pages/viewpage.action?pageId=1114119
  • 掘金GoFrame学习专栏:https://juejin.cn/column/7146133427706658847

Gin相关

  • geektutu Gin 简明教程:https://geektutu.com/post/quick-go-gin.html
  • Gorm指南:https://gorm.io/zh_CN/docs/index.html

关于学习框架这件事,都首先推荐看官方文档。不用去找其他的书籍,没有比官方文档更有价值的资料了。

Go web项目

推荐几个使用 Go 构建的基础 web 项目:

1.gin-vue-admin

  • GitHub:https://github.com/flipped-aurora/gin-vue-admin
  • 简介:使用 Gin 框架构建的后台管理系统。

2.ferry

  • GitHub:https://github.com/lanyulei/ferry
  • 简介:基于 Gin + Vue + Element UI 前后端分离的工单系统。

3. go-admin

  • GitHub:https://github.com/go-admin-team/go-admin
  • 简介:Gin + Vue + Element UI 的前后端分离权限管理系统。

我的经验

对于 web 项目的学习,有些朋友觉得很复杂,有畏难心理,不知道怎么下手。

我的建议是:多动手,可以在本地把项目跑起来,不要胡子眼睛一把抓,先去搞懂一个接口的请求响应流程,其他的大同小异。

编程是实践科学,要有工匠精神,不要畏难畏烦,动手实践才是王道。

这里推荐一下我的视频教程:用敏捷开发和“抄作业”的思想,快速上手Go实战项目

视频地址:https://www.bilibili.com/video/BV1bt4y1K7Lj/

3. Go 语言进阶

书籍

基础知识掌握后需要了解一下Go的底层原理和高级用法啦(面试造火箭必备)

这里推荐书籍《Go 程序设计语言》(号称 Go 圣经)、《Go 语言高级编程》、《Go并发编程实战》。

网站资源

1.《Go 语言圣经》

  • 地址:https://books.studygolang.com/gopl-zh/
  • 简介:go圣经是值得反复阅读的

2.《Go 语言高级编程》

  • 地址:https://chai2010.cn/advanced-go-programming-book - 简介:Go语言专家曹大的书,深入到了Go的汇编和很多高级用法

3.《Go专家编程》

  • 地址:https://books.studygolang.com/GoExpertProgramming/
  • 简介:理解Go中常见数据结构的底层,建议大家重点去看Channel,Mutex,Map

4.《Go语言设计与实现》

  • 地址:https://draveness.me/golang/
  • 简介:了解go的编译机制,goroutine调度机制,垃圾回收机制
  • PS:某否技术平台最近送了我这本书,正在拜读中,看了前几篇,已经被作者的严谨折服了。

我的经验

因为工作太忙的原因,已经很长时间没有看纸质书了,只是根据自己的需求去查官方文档,查免费教程。

当我最近阅读了一段时间纸质书之后,发现读书的体验真的很好,读进去就不会浮躁,理解问题可以深入好多。

所以这篇文章都是先给大家推荐书籍、再推荐学习网站、再推荐项目。

进阶Go项目

想要进一步巩固所学知识,这里推荐几个比较进阶的项目

1. goframe-shop-v2

  • GitHub:https://github.com/wangzhongyang007/goframe-shop-v2
  • 简介:这是基于goframe框架最新版开发的电商实战项目,做业务开发的同学可以看下

2. 7DaysGolang

  • GitHub:https://github.com/geektutu/7days-golang
  • 简介:这是星球里不少星友推荐的项目:7 天使用 Go 从零实现 web 框架、分布式缓存、ORM 框架、RPC 框架,代码量不多,但是质量挺不错

3. godis

  • GitHub:https://github.com/hdt3213/godis
  • 简介:用golang实现一个redis服务器

gochat

  • GitHub:https://github.com/LockGit/gochat
  • 简介:一个 Go 语言实现的轻量级 im 系统,对网络方面熟悉或者感兴趣的可以看看。

4. Go微服务云原生

目前 Go 在微服务中的应用非常广泛,微服务云原生是一个太庞大的话题,你不可能把每一个核心的问题都能够搞清楚。

或许只能在公司的具体的微服务生产环境中,才能够对相关的概念有更加深刻的体会,闭门造车是学不会微服务云原生的。

正如前段时间帮知识星球中大三星友答疑一样,老师留的毕设是Go微服务云原生相关,他不知道从何学起。

我们给的建议是:首先要明确是基于云原生体系做应用开发,还是做云原生的基础建设,然后有针对性的去学习,感兴趣的朋友可以加入星球查看我们的总结。

框架

推荐 Go 语言的微服务框架 GoKit、GoMicro、go-zero、kratos,可以随便选择一个,理解其基本的用法、设计等等。

其中 go-zero 和 kratos 是国内开源的,因此都有比较详细的中文文档。

我个人建议学习go-zero,跟着快速上手和简单例子写一遍,不仅可以熟悉CRUD,还能了解Go中优秀的框架设计思想,微服务确实是未来的趋势

  • GitHub地址:https://github.com/zeromicro/go-zero
  • 官方地址:https://go-zero.dev/cn/

5.面向就业编程

如果你上面都掌握的不错了,就可以着手准备找一份「好工作」了。

如果需要简历优化和求职指导可以微信私信我。

尽快找到工作

如果你想尽快找到工作,对薪资和企业规模要求没有那么高,基本掌握下面这些就可以去约面试了:

  • Go语言基础 : 了解golang的基本语法和语言特性
  • 算法题 :用golang来练习写算法题,熟练掌握golang的基本语法和常用库函数,同时刷好算法题也是进入中大厂的必要条件,力扣、牛客都可以去刷一刷
  • web相关:《Go Web编程》看了,深入理解golang如何处理request,标准库中的包如何应对各种常见的web场景;Gin和Goframe两个web框架二选一即可,去做一个实战项目
  • 基础知识:网络,操作系统Linux数据库MySQL、pgsql,缓存redis、mongoDb 面试的重中之重,一定要看,理解着去背知识点。
  • Go底层原理:面试造火箭必备,具体看上面Go语言进阶部分。面试重点:map,slice,channel底层实现原理,goroutine调度,GMP模型,内存分配,垃圾回收,逃逸分析等
  • web项目 :至少选择一个web项目作为自己的项目(见上面web项目推荐),项目需要用到数据库,和至少一种中间件(如redis,消息队列等)

找到好工作

上面提到的这些,我认为能实现「尽快找到工作」的目标。

但是要实现找到好工作的目标,除了技术本身,还需要结合你过往的经历,把你过往的经历转化成自己的优势、做更多的商业项目、有针对性的准备意向公司面试等等。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员升级打怪之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go学习 该如何入门
http://mpvideo.qpic.cn/0b2efuaacaaapiabgz7znvrfalodaewqaaia.f10002.mp4?dis_k=b720a91e1747133dc7917aa
兔云小新LM
2022/11/21
5180
Go学习 该如何入门
适合普通大学生的 Java 后端开发学习路线
接下来的一段时间,帅地会总结各种技术栈的学习路线,例如 Java 开发,C++ 开发,python 开发,前端开发等等,假如你没有明确的目标,或许可以按照我说的学习路线来学习一波,我写的每一份学习路线,不会很全面,因为我认为,东西列的太多,反而不利于新手的学习,所以我列举的,都是比较必要的知识,当你把这些知识学了的时候,我相信你不需要别人的学习路线,也能知道自己接下来需要学啥了。
帅地
2021/04/14
6650
PHP转Go,框架选什么?
http://mpvideo.qpic.cn/0b2e5qaaoaaasmadvi4eavrvb3gda7waabya.f10002.mp4? 这是一期会引起广泛讨论的内容, 不亚于“PHP是世界上最
王中阳Go
2023/01/06
9740
PHP转Go,框架选什么?
Go语言技巧 - 14.【浅析微服务框架】go-zero概览
go-zero是当前处于CNCF孵化中的一个Goz语言框架项目,在Github上的star数目前达到14.3K。
junedayday
2022/03/29
3.5K0
Go语言技巧 - 14.【浅析微服务框架】go-zero概览
Go 学习路线(2022)
Go 语言的发展越来越好了,很多大厂使用 Go 作为主要开发语言,也有很多人开始学习 Go,准备转 Go 开发。
AlwaysBeta
2022/02/07
1.5K0
Go 学习路线(2022)
推荐几个可以写到简历上的Go方向优质开源项目(需花点心思研究)
哈喽,大家好,我是asong。最近总有读者问我有没有Go语言方向优质的开源项目,可以写在简历上那种,一时还真想不起来,花了两天时间调研了一下,针对有无工作经验的分别推荐几个开源项目,下面我们一起来看一下。
Golang梦工厂
2022/07/11
2.1K0
GoFrame框架学习之旅:第一天 - 初识GoFrame,搭建开发环境
Hello, 各位开发者伙伴们!欢迎来到我的GoFrame框架的系列学习之旅。GoFrame(简称gf)是一个由Go语言编写的模块化、高性能、企业级的开发框架,它旨在简化Go语言应用的开发过程,提升开发效率。今天,我将从搭建GoFrame的开发环境开始,为接下来的学习之旅做好准备。
china马斯克
2024/09/21
6130
Go 语言学习路线来啦
时不时的有人问我一些关于 Go 语言学习路线、学习资源方面的问题,这篇文章就来详细说一说。借此希望给那些正在学习,或是想学习 Go 语言的朋友一些帮助。
roseduan
2021/07/28
1.1K0
Go 语言学习路线来啦
一顿烤羊腿换来的Golang学习路线
这篇学习路线写完其实很久了,不过前段时间又请组内的Go后端资深研发工程师吃了一顿烤羊腿。
拓跋阿秀
2021/12/09
1.3K0
一顿烤羊腿换来的Golang学习路线
Golang入门开发常用组件汇总
go语言做我新的一门后端语言,最近两年在也是在飞速的发展。现在很多公司招聘,也开始招聘go开发者。很多做Java、PHP的开发者都已经转向go语言开发。
兔云小新LM
2022/03/22
7800
Golang入门开发常用组件汇总
微服务开发不再烦恼,Simple Adim全都给你!
前期我们基于vue+gin的模式开发了一个简单的后台运维开发管理系统,不过主要面向入门级开发,熟悉整个开发流程,并且没有涉及数据库的使用。而根据我的运维开发写作计划来看,我们的目的就是在六月底之前开发一款属于咱们自己的开源项目,主要是运维开发的管理平台,虽然不求大而全,但是基础的功能设计必须有,这样的项目对于自己和其他开发者才算是有价值的,那么如何做到,除了有自己的想法之外,也要学习他人优秀的项目,避免一些功能重复造轮子,从中也能学习到优秀的开发思想以及规范,对于后期的维护扩展或重构也是及其有益的。
希里安
2023/10/30
3950
微服务开发不再烦恼,Simple Adim全都给你!
适用于快速开发应用的Golang二次框架
1.这是一个基于go语言gin框架的web项目骨架,专注于前后端分离的业务场景,其目的主要在于将web项目主线逻辑梳理清晰,最基础的东西封装完善,开发者更多关注属于自己的的业务即可。
兔云小新LM
2022/03/22
1.3K0
适用于快速开发应用的Golang二次框架
github上非常适合go语言新手的项目推荐
波哥公司已经全面从Python框架转向了Go语言,这反映了Go在业界的日益受欢迎。我利用工作之余的时间,在GitHub上比较了几个Go语言的开源项目,并愿意与大家分享。对于那些希望学习Go的人来说,从理解开源项目开始是个不错的选择。
IT运维技术圈
2024/03/14
3.5K0
github上非常适合go语言新手的项目推荐
Gophers如何准备面试?
当前互联网环境人尽皆知,不少公司都在降本增效,所以招人的公司并不多,除了宇宙条、砍一砍公司从未停止过招人,其他公司基本都停止了招聘,所以这个时候找工作真的难,如果有朋友想跳槽,我劝你最好冷静一下,骑驴找马最好。
Golang梦工厂
2022/12/08
8860
01.GO基础知识(幼儿园级别教程 )
关键词:GO语言教程;Go语言;Go;Go语言初级教程 幼儿园级别教程之 01.GO基础知识
读懂原理
2024/01/16
2492
01.GO基础知识(幼儿园级别教程 )
Go优秀开源项目推荐
  本文主要是收集Go语言开发的一些优秀项目和框架,个人见识有限肯定还有很多优秀的项目没有收录的,假如大家有好的Go项目可以在文末留言。
追逐时光者
2021/08/31
4.3K0
Go优秀开源项目推荐
为什么我建议你学习一下 Go 语言?
你好,我是 leoay, 这是我鸽了无数天之后开始写的又一篇文章,我保证,这是最后一次鸽......(不骗人!!!)
leoay
2021/07/12
1.4K0
为什么我建议你学习一下 Go 语言?
JAVA试练塔之试炼技能图
1.计算机基础: 1.1数据机构基础: 主要学习: 1.向量,链表,栈,队列和堆,词典。熟悉 2.树,二叉搜索树。熟悉 3.图,有向图,无向图,基本概念 4.二叉搜索A,B,C类熟练,9大排序熟悉。 5.树的前中后,层次,之字,最短路。 6.KMP等字符串算法。 1.2操作系统: 主要学习: 1.进程,线程,进程线程区别。进程间通信 2.进程调度算法理解 3.存储,虚拟内存,分页分段,内存调度算法 4.文件系统,链式,索引 5.死锁:原因,避免,解除k 6.Linux基本操作命令,会一门脚本编程:shel
hbbliyong
2018/03/06
1K0
Golang学习资料大全
Go学习教程 《Go入门指南》是《The Way to Go》的中文译本,内容很详细,零基础开始的。 链接:https://learnku.com/docs/the-way-to-go 《Go Web编程》主要涉及Web开发相关内容,如何使用go开发web项目,包括:Web基础、表单、数据库、Session等。 链接:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/preface.md 《Golang
公号:咻咻ing
2019/12/03
1.5K2
2021最新Java学习路线!助力BAT offer
本人211非科班,大学学的物理,大三开始自学JAVA,并成功拿到了几个中大厂的offer。在这里分享一下自己整理的Java学习路线,供初学者参考。
程序员大彬
2022/07/08
3890
2021最新Java学习路线!助力BAT offer
相关推荐
Go学习 该如何入门
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文