最新《Go学习路线图》及就业准备

前言

下面是Go学习路线思维导图,我将整个roadmap分成了七个部分,由浅入深分别是:语法、日常开发、web、

分布式、其他组件、项目、就业进阶。

Go语法

和其他语言一样,Go也需要从基础开始,它的关键字比起其他语言的关键字少很多,一共只有23个。在接触完变量声明、流程控制、循环控制、各类数据容器之后就掌握了Go语言的基础。

之后可以从函数、方法、结构体开始深入学习,在接触标准库之后进行并发编程和网络编程的学习,尤其是并发编程需要深入理解与学习,因为Go本身就以并发方便著称,只需要一个go关键字就能开启一个goroutine。再学习Go的包管理以及测试相关的内容作为补充,整个学习路线就算是完成了。

就业还需要学习Go底层相关的内容,比如常问的各类包:反射、unsafesync、锁、slicemapwaitgroupchannelcontextgc、内存分配等等内容,一定要深入底层,深入源码级别的学习。

日常开发工具

  • Linux常用命令:因为后台开发人员通常都是使用的Linux服务器,所以常见命令必须得熟悉,学有余力的话还可以了解一下Linux的设计与实现,比如Linux中的进程线程调度、内存管理等等。
  • Git:分布式代码管理工具,多人协作开发通常都会使用到Git。
  • Markdown:一种简单明了的文本编辑语法,通常我们可以使用简单的工具例如Typora、语雀来编写Markdown文档。
  • 环境:一个方便的Go开发环境,推荐Goland

Web

首先要了解HTTP协议相关内容,比如几种HTTP请求类型,RESTFUL API风格、HTTP HeaderHTTP Body相关内容。然后通过原生的net/http编写简单的服务端代码。

完成以上步骤之后可以学习用途比较广泛的web框架:gin或者hertz,以及常用的orm框架:gorm,其他的常见第三方库可以按需学习,例如日志库zap,配置文件库viper等等。

分布式与微服务

Go语言以并发简单著称,所以面试中问及分布式的概率会比其他语言更多一点。入门分布式首先推荐了解一些分布式理论,如:CAP理论,PACELC理论,NWR理论,多数派理论等等,在了解完基础理论之后阅读Raft算法论文以及Gossip协议等分布式一致性算法,除此之外还可以学习MIT 6.824课程,这也是入门分布式最经典的课程之一。

分布式领域内容非常繁多,如分布式事务,RPC,分布式组件等等。推荐大家先从原生的net/rpc入手,了解什么样的方法才是Go语言中的一个合规的RPC处理方法。然后继续学习gRPC协议以及protobuf数据格式、以及Go的微服务库go-zerogo-micro等,相比之下go-zero使用的更多一点,它也不仅仅是一个微服务库,更像是一个工具库,内容庞大,功能繁多。

各类组件

存储

关系型数据库和非关系型数据库都必须了解,其中最具代表性的当属MysqlRedis,除此之外,根据需要还可以选学其他的数据库,如搜索数据库ES、文档型数据库MongoDB等等。

MQ

当前市面上也有着各种各样的MQ,用的最多的应该是Kafka,同时Pulsar作为新一代云原生消息队列,也具备自己的优势,例如数据冷热存储,死信队列等等机制。NSQ是一个由Go语言开发的轻量级消息队列,有需要的同学也可以进行学习。具体情况按需学习。

云原生组件

Docker:容器领域龙头,提到容器我们第一时间都会想到Docker

Prometheus:监控领域龙头,性能非常强大,能够支持各类常用指标以及自定义指标,通常配合Grafana看板进行使用,方便查看项目状态。

Kubernetes:容器编排领域龙头,用于管理成千上万的容器实例。

最关键的是这些云原生组件都是使用Go语言编写,Gopher能很轻松的看懂这些组件的源码,这也是Go语言被称为新时代云原生语言的原因,几乎所有的CNCF(云原生基金会)的项目都是由Go进行开发的。

项目

在校生推荐简历上放三个项目,web、分布式\微服务、轮子。

其中微服务项目可以是重构自己的web项目,然后加上上述提到的组件,比如MQDockerPrometheus等等,成为一个比较有竞争力的项目。

这部分之后我会在掘金同步自己最近做的项目,并且之后会使用微服务进行重构+接入DockerPromtheusKubernetes等等,想要跟做的朋友欢迎关注,每周大概两到三次更新。

项目预览

项目概述

本任务管理应用的目标是实现一个简单计划表(todo-list),使用户能够有效地管理他们的任务。

通过采用前后端分离进行开发,后端使用Gin+Gorm+MySQL的方式实现,前端通过Vue进行实现。

项目的主要面向对象是Go初学者以及其他语言转Go的开发者,以及想要往全栈发展的小伙伴们。

后续会使用微服务重构该项目,并加上Prometheus、Kubernetes等常见云原生组件,成为一个竞争力满满,可以写进简历里的项目,敬请期待,欢迎点击关注

功能描述

  1. 用户管理接口:
  2. 任务管理接口:
  3. 任务排序和分组:
  4. Markdown编辑器:

技术栈

学习收获

通过参与这个项目,学习者将获得以下技能和经验

  • Go语言的后端开发经验,包括API构建、认证和数据库集成。
  • 使用Vue构建灵活、响应迅速的前端应用。
  • Docker、Prometheus、Kuberentes相关知识,熟悉对应的云原生组件开发。
  • 配置管理和日志记录的实践经验,提高对生产环境的应用监控和维护能力。

这个项目将帮助学习者全面掌握前后端开发的基础知识,并为实际应用提供了一个完整的综合项目经验。

就业进阶

上述内容都是偏向工程、开发与实战的,即干活能力;但是就业不止要求这些能力,对底层知识的了解(八股文)也有要求。

数据结构与算法

算法在面试中的比例也在逐年提高,现在面试如果做不出算法,除非是表现的非常优秀,不然都是直接挂。这里推荐首先了解一下常见的数据结构,然后手动实现一遍,之后刷常见题库就行了,推荐力扣 hot 100codeTop

计算机基础

四大金刚:计组、计网、数据结构、操作系统。这些里面的知识最好是自己先学一遍,有自己的理解,在面试之前再刷一遍面试题,问题就不会很大。不推荐背八股,这样无法和其他候选人区分开,一定要有自己的理解

其他底层

简历中写到的组件的底层都得了解,比如简历上有MySQLRedisPulsar相关内容,那么这些组件的特性、底层实现都要进行了解,如果只知道皮毛不如不写到简历上。

结语

本文向大家介绍了Go语言学习路线与就业准备,后面会持续分享项目相关内容,感兴趣的朋友欢迎点赞、评论、收藏、订阅,您的支持就是我最大的动力。

#面试#
全部评论
mark
点赞 回复 分享
发布于 2024-12-06 20:50 北京
哇,谢谢大佬
点赞 回复 分享
发布于 2024-02-10 16:30 广东
牛客还有内容运营呢
点赞 回复 分享
发布于 2024-02-05 23:38 北京
🐮
点赞 回复 分享
发布于 2024-02-03 01:04 福建
大佬真的好强
点赞 回复 分享
发布于 2024-01-30 02:08 江苏

相关推荐

02-27 13:44
吉林大学 Java
浅谈一下,个人理解跑路互联网几大岗位学习路径🎇非技术岗产品+运营:业务八股,主要是实习,办公软件使用,软实力更多一点,学历和实习其中产品需要:prd,原型图,sql入门就行,主要是查询语句,几个小时的速成即可,excel的vlookup等,从0-1入门产品经理的网课,运营需要:主要还是偏软实力的运营相关课程数分:sql(黑马,python,bi画图工具+业务八股,ab实验之类的,也是主要是实习,学历和实习 40hAi产品:python,pytorch,机器学习,深度学习理论与实战,大模型相关基础知识,transform架构和知识,业务知识 学历和实习 60h风控策略:s数分的技能点还要对应的信贷的业务知识背景 学历和实习🔧技术岗:学习门槛比较少的搜广推,python,pytorch,spark,机器学习+深度学习,小土堆,李沐,吴恩达,李宏毅,王树森推荐系统,kaggle项目, 学历和实习 80h风控算法,python,机器学习和深度学习,相关业务知识和项目 80h数开数仓:java,python,linux,sql,这些是基础的,进阶的:hadoop,hive,spark,kafka,flink,zookeep,数仓建模理论,阿里大数据,bi,tb可视化,几个项目,尚硅谷或者黑马,可选的:redis,hbase,monggodb 200h大模型应用开发:python,java,机器学习深度学习,rag,mcp,agent,langchain,langgraph,大模型微调 150h大模型算法:学历实习论文,python,机器学习和深度学习,nlp,损失函数、数据处理,预训练,大模型结果评估,监督微调sft,人类偏好对齐rlhf,高效微调lora等,强化学习,经典的大模型架构,例如gpt,qwen,创新的架构,框架应用,性能优化deepseed,模型量化,检索增强rag,agent,其他:模型压缩,技术报告 300h (校招故事会)核心精简版:python,机器学习和深度学习,llm的前置知识和理论,transformer,预训练的知识,tokenization,rope,归一化,flashattention,后训练,sft,lora微调,rlhf,rag,agent数据科学数据挖掘:低配版算法,sql,python,机器学习和深度学习,业务知识开发大类(含前后端测试):暂未整理全部都是:一两个项目,学历,专业尽量对口,跨专业也可以,主要看实习,大模型这一块还看论文,八股,有代码的还要准备手搓代码,力扣hot100,然后刷实习
掌握什么AI技能,会为你...
点赞 评论 收藏
分享
评论
42
235
分享

创作者周榜

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