Golang不难,入门更简单!可不要被它神秘的外衣给唬住了。

只要你接下来认真听完我的讲解,虽然保证不了你能成为大神,但就算你学习能力再差那也能达到入门级别。

零、简单了解Golang

Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,它用批判吸收的眼光,融合C语言、Java等众家之长,将简洁、高效演绎得淋漓尽致。

Go语言起源于2007年,当时Google的技术大神们备受C++越来越臃肿的困扰,决心开发一种新的语言来取代C++。他们认为:与其在臃肿的语言上不断增加新的特性,不如简化编程语言。于是,Golang这门新语言应运而生。

在十年多的时间里,Go语言发展势头强劲,凭借其简洁、高效的特性,在竞争激烈的编程语言市场中占据了一席之地。Google、腾讯、阿里等大公司纷纷选择使用Go语言来开发服务应用项目。

GO语言的优点

1、性能

GO 语言天生支持协程,协程的优点是资源占用少,这一特点使 GO 能处理更多的并发请求。

2、跨平台

GO 能很方便的编译成不同平台的运行环境,而且不像 JAVA 那样需要通过 runtime 来损耗部分性能来支持跨平台。

3、运维

GO 能直接编译成可执行文件,直接打开运行就能完成部署,这是一个运维工作人员喜欢的不要不要的部署方式。

不像 PHP 和 JAVA 那样,需要安装一堆软件才可把应用部署起来。

4、学习成本

GO 语言的知识体系掌握起来要比 JAVA 友好些,新手入门相对容易。

5、就业情况

现在越来越多的企业开始使用 GO 语言,而且待遇也相应其它语言有优势,所以掌握 GO 语言是一个不错的就业技能。

一、自学Golang目标:
  • 掌握Linux系统管理及Shell脚本编程
  • 掌握Golang编程基本功
  • 掌握Golang面向对象编程方法
  • 掌握Golang 并发编程及并发编程进阶
  • 掌握程序测试与性能压测
  • 掌握Golang 网络编程基础
  • 掌握Golang Web应用前端开发
  • 掌握Beego框架项目创建及模块应用
  • 掌握Gin 框架项目创建及深度应用
  • 掌握Echo 框架项目创建及深度应用 
  • 了解 Iris 框架项目创建及应用
  • 掌握Golang 应用测试方法(单元测试、接口测试、集成测试等)
  • 掌握Golang Web应用框架日志管理方法
  • 掌握 MySQL应用深度实战
  • 掌握GORM框架(jinzhu、gorm、xorm)
  • 掌握Golang Web应用中NoSQL缓存系统应用
二、Golang就业方向
  • Golang后端开发工程师
  • Golang Web应用后端开发工程师
  • 云原生应用工程师
  • 云原生平台运维工程师
  • 云原生平台架构师 
  • 云原生平台运维开发工程师
  • 云原生平台技术解决方案工程师
  • 云原生平台中间件开发工程师
  • 智能物联网云原生应用开发工程师

三、第一阶段:基础板块

阶段概述:本阶段讲解计算机组成原理、计算机操作系统、计算机网络基础、Linux操作系统、Linux shell编程。

达成目标:通过本阶段的学生,同学们能够掌握和计算机相关的一些基础知识,明白计算机的工作原理,掌握操作系统理论基础,对于操作系统任务调度、内存管理等有深刻的理解。掌握计算机网络卢纶基础。掌握Linux操作系统的一些基本操作命令、配置文件的修改以及shell编程等。这些前置课程的掌握将十分有利于同学们对于后面课程的学习。

①Golang学习路线(文中提到的)

②20份Golang电子书

③Golang实战357页笔记

④50份Golang面试指南

⑤大厂内部视频教程资源

⑥Golang项目源码笔记

3.1 计算机组成原理

  1. 计算机系统概述

  2. 数据的表示与运算

  3. 存储系统

  4. 指令系统

  5. 中央处理器

  6. 总线

  7. 输入和输出系统

3.2 计算机操作系统

  1. 操作系统特征

  2. 中断

  3. 操作系统结构

  4. 进程管理

  5. 内存管理

  6. 文件管理

  7. 输入输出管理

3.3计算机网络基础

  1. 因特网概述

  2. 网络性能指标

  3. 计算机网络体系结构

  4. TCP/IP模型

  5. OSI模型

  6. TCP传输协议

  7. UDP传输协议

  8. wireshark过滤器

  9. HTTP协议

3.4 Linux操作系统

  1. Linux概述与安装

  2. Linux基本命令

  3. Linux软件安装与配置

3.5 Linux shell编程

  1. 变量

  2. 数学运算与条件

  3. 分支结构

  4. 循环结构

  5. 自定义函数

  6. cut命令

  7. awk命令工具

  8. sort命令

阶段概述:本阶段主要学习Go编程基础核心实战和并发编程。

Go语言是谷歌推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。派克表示,和今天的C++或C一样,Go是一种系统语言。他解释道,"使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。" 

如下原因都是我们学习使用Golang的原因:

  1. 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。

  2. 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言

  3. 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列的困扰需要解决。

达成目标:通过本阶段的学习能够掌握Go编程基础语法和并发编程的知识,为Go开发打下坚实的基础。

四、GO开发编程实战

阶段概述:本阶段主要学习Go编程基础核心实战和并发编程。

Go语言是谷歌推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。派克表示,和今天的C++或C一样,Go是一种系统语言。他解释道,"使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。" 

如下原因都是我们学习使用Golang的原因:

  1. 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。

  2. 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言

  3. 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列的困扰需要解决。

达成目标:通过本阶段的学习能够掌握Go编程基础语法和并发编程的知识,为Go开发打下坚实的基础。

4.1 Go编程基础核心实战

  1. 走进Golang

  2. 变量与数据类型

  3. 运算符

    1. 算术运算符

    2. 赋值运算符

    3. 关系运算符

    4. 逻辑运算符

    5. 位运算符

    6. 其他运算符

    7. 运算符的优先级别

    8. 获取用户终端输入

  1. 流程控制

    1. 分支结构

    2. 循环结构

  1. 函数

    1. 函数细节    

    2. 包的使用

    3. init函数

    4. 匿名函数

    5. 闭包

    6. defer关键字

    7. 系统函数

  1. 错误处理

    1. defer+recover机制处理错误

    2. 自定义错误

  1. 数组

    1. 数组的引入

    2. 内存分析

    3. 数组的遍历

    4. 数组的初始化方式

    5. 二维数组

8)切片

    内存分析

    切片的定义

    切片的遍历

    切片注意事项

  1. 映射

    1. map的3种创建方式

    2. map的操作

  1. 面向对象

    1. 结构体

    2. 内存分析

    3. 结构体实例创建方式

    4. 结构体之间的转换

    5. 结构体和map之间的转换

    6. 方法的注意事项

    7. 方法和函数的区别

    8. 创建结构体实例时指定字段值

    9. 跨包创建结构体实例

    10. 封装

    11. 继承注意事项

    12. 接口的引入

    13. 接口注意事项

    14. 多态

    15. 断言

  1. 文件的操作

    1. io的引入

    2. 读取文件(—次性)

    3. 读取文件(带缓冲区)

    4. 写入文件

    5. csv文件

    6. Json

    7. 配置文件

    8. Cobra

    9. 案例:文件复制操作

12)反射

13)协程和管道

14)Go Module

    

4.2 GoLang网络通信

  1. 网络编程基础

  2. 内置库net

  3. 服务端客户端数据通信

  4. http内置库web

  5. get请求

  6. json数据处理

  7. post请求

  8. 标准库Template模本

  9. _Mux多路复用器

  10. httprouter路由包

  11. 网络模型原理

  12. MPG与epoll源码关联

4.3 GoLang进阶-并发编程

  1. 协程goroutine

  2. 互斥锁

  3. 读写锁

  4. 协程的循环与关闭

  5. 管道的基本应用

  6. 管道的综合应用

  7. defer

  8. 生产者和消费者模型

  9. 任务

  10. 循环时钟的原理及源码分析

  11. 循环时钟的代码实现WaitGroup实现原理及源码流程图

  12. WaitGroup源码分析

  13. CAS算法

  14. 计算机底层了解MPG

  15. MPG核心流程

  16. runtime源码解读

五、Go Web开发之前端技术实战

阶段概述:本阶段主要学习前端开发必备知识HTML、CSS、JS、JQuery、VUE等课程。本阶段十分注重实战,因此在学习的过程中同学们需要进行大量的编程练习。

达成目标:通过本阶段几门课程的学习,同学们能够掌握前端开发核心知识,能够自主开发web项目的前端页面,具备一名中级前端开发人员水平。

5.1 HTML

  1. HTML和CSS的引入

  2.     网络传输三大基石

  3.     什么是HTML

  4.     HTML的标准结构

  5.     HBuilder的使用

  6.     html_head_body标签

  7.     head中可用标签

  8.     文本标签

  9.     多媒体标签

  10.     超链接标签

  11.     超链接设置锚点

  12.     列表标签

  13.     表格标签

  14.     内嵌框架

  15.     内嵌框架练习 

  16.     框架集合

  17.     form表单的作用

  18.     form表单练习模拟百度搜索

  19.     表单元素

  20.     24.HTML5新增属性

5.2 CSS

  1. CSS的引入

  2. CSS的三种书写方式

  3. 选择器_基本选择器

  4. 选择器关系选择器

  5. 选择器_属性选择器

  6. 选择器_伪类选择器

  7. 练习百度导航栏

  8. 浮动的原理

  9. 消除浮动影响

  10. 定位_静态定位相对定位

  11. 定位绝对定位

  12. 定位_固定定位

  13. 盒子模型引入

  14. 盒子模型代码演示

  15. 盒子模型练习题

5.3 JS

  1. 数据类型

  2. 运算符

  3. 流程控制

  4. 函数

  5. 数组

  6. String的使用

  7. Number的使用

  8. Math的使用

  9. Data的使用

  10. 自定义的方式

  11. 查看原型

  12. 操作原型

  13. 原型链

  14. 事件的绑定与触发

  15. 鼠标事件

  16. 按键事件

  17. 表单事件

  18. 页面加载事件

  19. window对象

  20. localtion对象

  21. history对象

  22. document对象

  23. 案例开发

5.4 JQuery

  1. jQuery的介绍和使用

    1. jQuery简介

    2. jQuery的下载和引入

  1. jQuery选择器的使用

    1. 基本选择器

    2. 属性选择器

    3. 位置选择器

    4. 表单选择器

  1. jQuery替代Js实现DOM编程

    1. jQuery操作属性和样式

    2. jQuery操作文本和增删元素

    3. jQuery绑定和触发事件

    4. jQuery和原生DOM对象转换

    5. jQuery迭代遍历方式

  1. 了解jQuery的动画

    1. 显示和隐藏

    2. 滑动和淡入淡出

  1. 重点操作form表单校验

    1. 使用jQuery对表单校验

    2. 使用正则表达式

    3. 表单校验案例开发及完善

  1. BootStrap入门

    1. BootStrap简介

    2. BootStrap项目搭建

    3. 流容器和固定容器

    4. 栅格系统的使用

    5. 导航栏案例开发

    6. 轮播图案例开发

5.5 VUE

Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。

  1. Vue的指令

    1. Vue的基本使用

    2. Vue的插值语法

    3. v-if指令

    4. v-for指令

    5. v-html和v-text指令

    6. v-cloak指令

    7. v-once指令

    8. v-pre指令

    9. v-on指令

    10. v-bind指令

    11. v-model指令

    12. 案例-选项卡

    13. 案例-调色板

    14. 案例-微博发布框

  1. Vue-cli脚手架

    1. 事件修饰符

    2. 按键修饰符

    3. 系统修饰符

    4. exact修饰符

    5. 鼠标按键修饰符

    6. 表单修饰符

    7. vue-cli介绍

    8. vue-cli 目录结构

    9. vue-cli文件的编译过程

    10. vue-cli起步文件

    11. 组件

    12. 父子组件传值

  1. 计算属性和监听

    1.  watch监听

    2.  案例-百度搜索引擎跳转导航

    3.  computed计算属性

    4.  案例-商城购物车

    5.  vue实例属性$attr

    6.  vue实例属性$listeners

    7.  Vue实例属性$refs

    8.  Vue实例属性$el

    9.  Vue的混入

  1. 生命周期

    1. 生命周期beforeCreateDate

    2. 生命周期created

    3. 生命周期beforeMount

    4. 生命周期mounted

    5. 生命周期beforeUpdate

    6. 生命周期 updated

    7. 生命周期beforeDestroy

    8. 生命周期destroyed

    9. 插槽

    10. 过滤器

    11. 自定义插件

    12. 自定义指令

    13. 过渡于动画

  1. Vuex

    1. Vuex的介绍和基本使用

    2. Vuex的计数器

    3. 案例-明星图集

    4. Vue属性getters

    5. 案例TodoList

    6. Vuex的action

    7.  module

    8. 局部参数

5.6 UI框架

  - 6-1 element ui的基本使用

  - 6-2 element ui的Form表单

  - 6-3 element ui的表格

  - 6-4 iviewui的介绍和基本使用

  - 6-5 iviewui的表格

  - 6-6 vue-i18n国际化

  - 6-7 grid栅格系统的使用

  - 6-8 封装属于自己的栅格组件

  1. Vue-router路由

    1. VueRouer的介绍和基本使用

    2. 声明式导航

    3. 路由参数

    4. 路由懒加载

    5. 编程式导航

    6. hash和history模式

    7. $route和$router

    8. go,back和forward

    9. 路由重复点击报错的问题

    10. 路由的嵌套

    11. 导航守卫

    12. 路由重定向

  1. 组件封装和CSS预处理器

    1. 封装属于自己的table组件

    2. CSS预处理-less

  1. Vue源码分析

    1. 双向数据绑定机理介绍

    2. Object.defineProperty方法

    3. 发布-订阅模式

    4. 双向数据绑定实现过程

    5. render函数

    6. createElement源码分析

    7. 自己配置vue脚手架

    8. diff算法和虚拟dom

  1. PC端项目-二手车管理系统

11)移动端项目 网易云音乐

 因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关文献也可以找我要,我的网盘里一大堆都在吃灰呢。
最后,感谢大家的支持和关注了