前语

最近不少读者私信我学Go的问题,根本都是“怎样学Go快?有哪些教程主张看?学到什么程度能去找作业?”。

我觉得这个问题的关键要看你的方针是什么?

是想快速学习之后找到一份作业就能够?仍是本来有其他言语的根底,想通过学Go进步自己,进而找到一份更好的作业。

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

或许你是运维转Go,仍是Java转Go,PHP或许Python转Go等等。

我都是在充沛了解咱们过往的阅历后,给每位读者提主张的。

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

我之前给咱们共享的《Go学习路线图》,是结合我的阅历,合适于有必定根底,想快速学习Go,赶快找到作业的朋友。

假如你有充足的时刻去学习(或许你想谋求一个更好的作业),主张咱们依照这篇文章的次序,夯实自己的根底,多做项目,进而完成自己的方针。

1. Go言语根底

图书

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

最全的Go资料汇总和最走心的学Go建议

视频

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

最全的Go资料汇总和最走心的学Go建议

不管是内容,仍是解说方式,仍是深化浅出的解说风格都深得我心,也是我学习的典范。

这是UP主的视频地址:

www.bilibili.com/video/BV1s3…

网站资源

1. 菜鸟教程

  • 网址:www.runoob.com/go/go-tutor…
  • 简介:假如你觉得看视频很浪费时刻,强烈主张你跟着菜鸟教程着手实践。

2. go言语中文网

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

3. Go By Example 中文版

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

4. Go 面试题

  • 网址:www.topgoer.cn/docs/gomian…,
  • 简介:也是运用代码示例来解说 Go,非常合适用来预备面试。

5. 跟着单元测试学习 Go

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

Go轻量级开源项目

学完根底,主张你上手几个根底项目:

1. starcharts

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

2. gorched

  • GitHub:github.com/zladovan/go…
  • 简介:运用 Go 写的一个小游戏。

3. pacgo

  • GitHub:github.com/danicat/pac…
  • 简介:也是运用 Go 写的一个小游戏,每一步都有具体的描绘和代码完成。

4. wechat-go

  • GitHub:github.com/songtianyi/…
  • 简介:微信 web 版 API 的 Go 完成,模拟微信网页版的登录/联系人/音讯收发等功用。

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

2. Web 开发

书本

根底常识掌握之后,能够上手做一些 web 使用,进一步了解更多的 Go 言语相关结构以及出产环境中的常用中间件,引荐书本《Go Web 编程》。

最全的Go资料汇总和最走心的学Go建议

结构

了解了web根底常识后能够学习下 web 结构 Gin、GoFrame:两个结构都比较的盛行,挑选其中一个其实就能够了。

GoFrame相关

  • 官方文档: goframe.org/pages/viewp…
  • GoFrame学习专栏:/column/7146…

Gin相关

  • geektutu Gin 简明教程:geektutu.com/post/quick-…
  • Gorm攻略:gorm.io/zh_CN/docs/…

关于学习结构这件事,都首要引荐看官方文档。不必去找其他的书本,没有比官方文档更有价值的资料了。

Go web项目

引荐几个运用 Go 构建的根底 web 项目:

1.gin-vue-admin

  • GitHub:github.com/flipped-aur…
  • 简介:运用 Gin 结构构建的后台办理体系。

2.ferry

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

3. go-admin

  • GitHub:github.com/go-admin-te…
  • 简介:Gin + Vue + Element UI 的前后端分离权限办理体系。

我的经历

关于 web 项目的学习,有些朋友觉得很杂乱,有畏难心思,不知道怎样下手。

我的主张是:多着手,能够在本地把项目跑起来,然后断点调试一个 HTTP 请求的全体流程,搞懂了一个接口,其他的迥然不同。

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

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

最全的Go资料汇总和最走心的学Go建议

视频地址:www.bilibili.com/video/BV1bt…

3. Go 言语进阶

书本

根底常识掌握后需求了解一下Go的底层原理和高档用法啦(面试造火箭必备)

这儿引荐书本《Go 程序规划言语》(号称 Go 圣经)、《Go 言语高档编程》、《Go并发编程实战》。

最全的Go资料汇总和最走心的学Go建议

网站资源

1.《Go 言语圣经》

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

2.《Go 言语高档编程》

  • 地址:chai2010.cn/advanced-go… – 简介:Go言语专家曹大的书,深化到了Go的汇编和许多高档用法

3.《Go专家编程》

  • 地址:books.studygolang.com/GoExpertPro…
  • 简介:了解Go中常见数据结构的底层,主张咱们要点去看Channel,Mutex,Map

4.《Go言语规划与完成》

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

最全的Go资料汇总和最走心的学Go建议

我的经历

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

当我最近阅览了一段时刻纸质书之后,发现读书的领会真的很好,读进去就不会浮躁,了解问题能够深化很多。

所以这篇文章都是先给咱们引荐书本、再引荐学习网站、再引荐项目。

进阶Go项目

想要进一步稳固所学常识,这儿引荐几个比较进阶的项目

1. goframe-shop-v2

  • GitHub:github.com/wangzhongya…
  • 简介:这是基于goframe结构最新版开发的电商实战项目,做业务开发的同学能够看下

2. 7DaysGolang

  • GitHub:github.com/geektutu/7d…
  • 简介:这是星球里不少星友引荐的项目:7 天运用 Go 从零完成 web 结构、分布式缓存、ORM 结构、RPC 结构,代码量不多,但是质量挺不错

3. godis

  • GitHub:github.com/hdt3213/god…
  • 简介:用golang完成一个redis服务器

gochat

  • GitHub:github.com/LockGit/goc…
  • 简介:一个 Go 言语完成的轻量级 im 体系,对网络方面了解或许感兴趣的能够看看。

4. Go微服务云原生

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

或许只能在公司的具体的微服务出产环境中,才能够对相关的概念有更加深化的领会,凭空捏造是学不会微服务云原生的。

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

咱们给的主张是:首要要明确是基于云原生体系做使用开发,仍是做云原生的根底建设,然后有针对性的去学习,感兴趣的朋友能够加入星球查看咱们的总结。

结构

引荐 Go 言语的微服务结构 GoKit、GoMicro、go-zero、kratos,能够随意挑选一个,了解其根本的用法、规划等等。

其中 go-zero 和 kratos 是国内开源的,因而都有比较具体的中文文档。

我个人主张学习go-zero,跟着快速上手和简略比如写一遍,不只能够了解CRUD,还能了解Go中优异的结构规划思维,微服务确实是未来的趋势

  • GitHub地址:github.com/zeromicro/g…
  • 官方地址: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,音讯行列等)

找到好作业

上面提到的这些,我认为能完成「赶快找到作业」的方针。

但是要完成找到好作业的方针,除了技能自身,还需求结合你过往的阅历,把你过往的阅历转化成自己的优势、做更多的商业项目、有针对性的预备意向公司面试等等。

怎么找到好作业,也是我最近考虑的问题,欢迎有这方面考虑的朋友私信我,交流评论。

最终

最终,假如你觉得这期内容不错的话,你必定要“点赞”、“保藏”、“转发”。

转发给更多需求的人,让更多的人看到,就是对我最大的鼓舞。

一同学习

欢迎和我一同学习进步:引荐在私信我

假如回复不及时,能够加我微信号:wangzhongyang1993公众号:程序员升职加薪之旅B站视频:王中阳Go

本文正在参加「金石计划 . 瓜分6万现金大奖」