• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

golang语言初级新手入门指南

武飞扬头像
juejin
帮助75

前言

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

1. Go语言基础

图书

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

视频

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

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

这是UP主的视频地址:

www.bilibili.com/video/BV1s3…

网站资源

1. 菜鸟教程

2. go语言中文网

3. Go By Example 中文版

4. Go 面试题

5. 跟着单元测试学习 Go

Go轻量级开源项目

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

1. starcharts

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

2. gorched

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 编程》。

框架

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

GoFrame相关

Gin相关

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

Go web项目

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

1.gin-vue-admin

2.ferry

3. go-admin

我的经验

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

我的建议是:多动手,可以在本地把项目跑起来,然后断点调试一个 HTTP 请求的整体流程,搞懂了一个接口,其他的大同小异。

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

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

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

3. Go 语言进阶

书籍

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

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

网站资源

1.《Go 语言圣经》

2.《Go 语言高级编程》

3.《Go专家编程》

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

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

我的经验

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

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

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

进阶Go项目

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

1. goframe-shop-v2

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

2. 7DaysGolang

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

3. godis

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中优秀的框架设计思想,微服务确实是未来的趋势

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,消息队列等)

 

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanfbaha
系列文章
更多 icon
同类精品
更多 icon
继续加载