当前位置: 首页 > news >正文

【Go语言入门指南】零基础入门 go 语言 | Golang 入门指南

文章目录

  • 写在前面
    • 全部练习项目都在github这个仓库中`https://github.com/CocaineCong/Golang-Learning`
  • 1. 【第一轮】基础部分
    • 1.1 教程
    • 1.2 练习
  • 2. 【第二轮】网络爬虫
    • 2.1 教程
    • 2.2 mod 管理第三方包
    • 2.3 git 机制
  • 3. 【第三轮】备忘录
  • 4. 【第四轮】商城 or 视频网站
  • 5. 【第五轮】IM 即时通信
  • 6. 【第六轮】微服务
  • 7.【第七轮】底层架构

写在前面

这篇文章是我自己亲身经历这样去学go的,本人是从20年的10月份开始入坑go语言的,当时的资料真的少,现在关于go语言的资料已经很多了。
我就在把我自己的学习路线稍微梳理一遍,我个人觉得,学完之后,像深信服,b站,得物什么的应该是没什么问题, 但如果是字节,腾讯,阿里这种就除了一些硬性条件之外,自己再刷多点题,背多点八股了。

全部练习项目都在github这个仓库中https://github.com/CocaineCong/Golang-Learning

适合大一、大二、或是其他语言转go的同学

1. 【第一轮】基础部分

1.1 教程

Go语法这方面一定要注重好基础,比如数组,切片,map,chan这种基础的数据类型。

语法入门可以看这个 入门教程,主要是挺新的这个教程。

在这里插入图片描述

附上我自己做的思维导图
请添加图片描述

1.2 练习

可以选择 PTA 上面的题目来进行练习。

PTA练习

在这里插入图片描述

我的 Go语言入门 60题 专栏。入门60题

在这里插入图片描述

2. 【第二轮】网络爬虫

2.1 教程

用 go 去做爬虫,主要是为了了解http的请求与响应,了解 web中参数的传递,页面的布局,点击逻辑等等… 为之后的web开发奠定基础用的。

同样的,我们也可以学习到并发爬虫,这样也用到了我们go语言天生支持高并发的特性。

这个是我录制的一个关于Go语言爬虫的练习 Go语言爬虫

在这里插入图片描述
对应的案例的代码也放在了github上 GitHub案例

这个是我自己写的关于爬虫的一个思维导图的总结。
请添加图片描述

2.2 mod 管理第三方包

到这里之后,我们可能会用到第三方的工具包,这时候我们就要用go mod去管理我们的第三方包文件了,而go mod如何去理解?

这个视频我觉得讲的很不错了:Go Mod理解

在这里插入图片描述

2.3 git 机制

那么我们之后还需要用到git,像git我们应该怎么学习呢?
我的建议是git一定要自己多用,多记录一些常用的命令。
教程的话,可以看看这个git教程:GIT教程

在这里插入图片描述

一开始用 git,我们可以先用熟 commit、push、pull 啥的,之后再用多一些在项目版本的管理上,之后我们就可以再学去做解决冲突

3. 【第三轮】备忘录

接下来就到我们的后端开发了,前面第一轮打好了基础第二轮懂了一些网站的请求与响应,接下来就可以进行开发了。

这一轮我们重点是放在规范上,比如命名规范,项目结构规范,接口定义规范,返回规范等等…

这一轮其实我们就做一个简单的备忘录而已。在熟悉规范的同时,以练带学,不断通过项目去学习框架,gin、gorm。

跟着敲就好了。

在这里插入图片描述

视频:gin+gorm备忘录 视频教程
Github地址:gin+gorm备忘录 源码

4. 【第四轮】商城 or 视频网站

当我学习完规范之后,我们就开始深入学习业务了,这时候我们就可以开始做一个大一点的项目,比如商城,视频网站之类的。

这个时候我们就可以去接触redis、docker这些比较流行的技术了。

在这里插入图片描述

视频链接

源码地址

5. 【第五轮】IM 即时通信

除了基础业务的处理之外,我们还要了解 websocket 通信,这个也是一个必不可少的技术。
在这里插入图片描述

视频地址
Github源码地址

6. 【第六轮】微服务

在学习完业务处理,ws处理之后,我们再开始微服务框架的学习。理解proto的作用,理解 rpc 的过程,服务发现,服务注册等等…

在这里插入图片描述
视频链接
Github源码地址

7.【第七轮】底层架构

在我们熟悉完上面的技术框架之后,我们有了广度,在我们有了广度的条件下,我们可以往其中一个方向进行深度的专研。

比如说 极客兔兔的手撕框架,可以自己找一个来实现。
这个就很完美了 极客兔兔链接
在这里插入图片描述

这些是提升自己业务能力的一个方法流程,但是如果是要做工作、实习的话,还是另外的流程去学习,不单单是这个,为什么我精通curd ?还找不到工作? 这个我们下一次再总结说说,因为这些其实只是入门而已,只是扩展我们的广度,还没能很好的深入学习。

相关文章:

  • [机缘参悟-82]:企业、HR、管理者激励员工的本质
  • Jekyll 教程——布局
  • 【Java】学JDBC看这篇文章就够了—JDBC保姆级教程
  • 【JavaWeb项目】博客系统
  • FTP和nfs 网络共享存储
  • 【Python】计算机视觉 手掌图片穴位识别
  • JS中script标签defer和async属性的区别
  • 一个基因对应多个探针 多个探针对应同一个基因到底该如何取舍
  • springboot基于微信小程序的宿舍管理系统
  • PIE-engine 教程 ——提取黄河流域/山西省1980—2018年流域降水量并对比分析
  • 【性能测试】Action.c(6): Error -26612
  • ssm药品大全网站的设计与实现毕业设计源码281128
  • 浅谈new
  • 基于小波分析与深度学习的脑电信号分类(matlab)
  • 【通信】基于Matlab模拟16QAM通信下的轨道角动量
  • Android开源项目规范总结
  • gf框架之分页模块(五) - 自定义分页
  • Git学习与使用心得(1)—— 初始化
  • JavaScript新鲜事·第5期
  • Js基础知识(四) - js运行原理与机制
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Next.js之基础概念(二)
  • node学习系列之简单文件上传
  • PAT A1092
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • SQLServer之创建数据库快照
  • TCP拥塞控制
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 用Canvas画一棵二叉树
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​ArcGIS Pro 如何批量删除字段
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #LLM入门|Prompt#3.3_存储_Memory
  • #WEB前端(HTML属性)
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #预处理和函数的对比以及条件编译
  • ()、[]、{}、(())、[[]]命令替换
  • (0)Nginx 功能特性
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (力扣题库)跳跃游戏II(c++)
  • (七)理解angular中的module和injector,即依赖注入
  • (五)Python 垃圾回收机制
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .describe() python_Python-Win32com-Excel
  • .NET Core 中的路径问题
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .sh 的运行
  • /bin/bash^M: bad interpreter: No such file or directory