0%

golang学习路线,所需知识

计算机基础

1. 操作系统

  • 了解进程、线程、协程的区别
  • 了解进程间常用的通信方式
    1. 管道
    2. 命名管道(FIFO)
    3. 消息队列
    4. 信号量
    5. 共享内存
    6. 套接字(Socket)
  • 了解5种网络IO模型
    1. 阻塞 IO(blocking IO)
    2. 非阻塞 IO(non-blocking IO)
    3. 多路复用 IO(IO multiplexing)
    4. 异步 IO(Asynchronous I/O)
    5. 信号驱动 IO(signal driven I/O, SIGIO)
  • 了解并发与并行的区别
    1. 并发是指一个处理器同时处理多个任务。
    2. 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
    3. 并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。
    4. 并行在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在,
    5. 并发能够在单处理器系统中存在是因为并发是并行的假象,并行要求程序能够同时执行多个操作,而并发只是要求程序假装同时执行多个操作(每个小时间片执行一个操作,多个操作快速切换执行)。
  • 了解同步与异步的区别
    1. 同步:同步是指一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下去。
    2. 异步:异步是指进程不需要一直等待下去,而是继续执行下面的操作,不管其他进程的状态,当有信息返回的时候会通知进程进行处理,这样就可以提高执行的效率了,即异步是我们发出的一个请求,该请求会在后台自动发出并获取数据,然后对数据进行处理,在此过程中,我们可以继续做其他操作,不管它怎么发出请求,不关心它怎么处理数据。
    3. 以上总结起来,通俗地讲,也就是说,同步需要按部就班地走完一整个流程,完成一整个动作,打个比方:同步的时候,你在写程序,然后你妈妈叫你马上拖地,你就必须停止写程序然后拖地,没法同时进行。而异步则不需要按部就班,可以在等待那个动作的时候同时做别的动作,
  • 了解阻塞与非阻塞的区别
  • 了解常见缓存淘汰算法:
    1. LRU(Least Recently Used)最近最少使用算法
    2. LFU(Least Frequently Used)最近频次最少算法
    3. FIFO(First In First Out)先入先出算法
    4. ARC(Adjustable Replacement Cache)自适应缓存替换算法

2. 计算机网络

  • 了解网络协议
  • 了解序列化协议
  • 了解七层体系结构
  • 了解四层体系结构

3. 计算机组成原理(冯诺依曼体系)[了解]

4. 数据结构与算法

  • 了解时间/空间复杂度
  • 熟悉常用数据结构

    字符串
    数组
    链表
    队列
    二叉树

  • 熟悉常用算法

    双指针
    左右指针
    排序
    二叉查找
    递归
    回溯
    贪心
    动态规划

5. 互联网(Internet)

  • 互联网是如何工作的
  • HTTP是什么
  • 浏览器以及浏览器如何运作
  • 域名是什么
  • hosting是什么

6. 数据库

  • 关系型数据库

    Mysql

  • NoSQL

    Redis

Golang编程基础

  • 字符串
  • 常量
  • 变量
  • 类型
  • 操作符
  • 表达式
  • 语句
  • 错误处理

1. 代码组织

2. 标准库

  • 功能性

    net
    errors
    os
    sync
    time

  • 输入输出型

    io
    fmt
    log

3. 版本控制

  • Git

Go编程进阶

原理

  • map
  • channel
  • goroutine
  • slice
  • runtime

GMP

GC

CGO

反射

测试

  • 单元测试
  • 压力测试
  • 覆盖测试
  • 性能测试

并发编程

  • goroutine调度

  • channel调度

  • waitGroup

  • context

  • sync

  • atomic

操作系统

image-20220805143702043

数据结构与算法(熟练掌握)

计算机原理与网络

image-20220805143827008

缓存

image-20220805143839926

数据库

image-20220805143854645

设计模式

image-20220805143913401

image-20220805143922828

Linux

image-20220805143950466

工程化

微服务

image-20220805144025693

Web框架

image-20220805144030069

中间件

image-20220805144116432

-------------本文结束感谢您的阅读-------------
打赏一瓶矿泉水