技术学习 Roadmap
September 4, 2022 · View on GitHub
计算机基础知识
包括:
- 计算机网络:《计算机网络:自顶向下方法》
- 操作系统
- Linux操作系统原理,内核设计与实现
- 面向对象,设计模式:极客时间-《设计模式之美》;Golang设计模式
- 数据结构与算法:leetcode,《算法》,UCB网课CS 61B
- 分布式系统:MIT 6.824、MIT 6.824中文笔记、《分布式系统:概念与设计》
这些知识,不需要专门去学了,工作中也用不到,而社招面试的时候再用快速备战的方式去补就行了。
工具类
你不得不掌握的一些技术知识,掌握了会对你的生产力有极大提升,但是也不需要深入掌握。能够在需要的时候直接拿来用,快速上手写出来就行。
- 脚本语言:python,包括:文件处理、系统操作、爬虫,等等
- SQL:一些比较复杂的sql写法,hive-sql
- git
- vim
- Linux shell:常用shell命令
开发语言
Golang需要掌握的地方稍微多一些,可能需要比上述工具要深入一些,做到 effective go:
- 基础语法、常用标准库、包管理
- for、slice、map底层原理
- defer、panic、recover
- interface
- 并发编程:Goroutines,Channels,锁
- gc
- 性能优化专项
存储
MySQL
掘金专栏: https://juejin.cn/user/2418581312906087/books?type=bought
《高性能MySQL》
以及不懂的地方看MySQL官方文档
Redis
《Redis设计与实现》
更多存储
- MongoDB:了解 MongoDB 看这一篇就够了;Mongo官方中文手册
- hive/flink
- Elastic Search
进阶
系统设计
其实这部分的内容感觉都可以放到面试前再看,效率最大。一亩三分地上的系统设计神贴(已排序):
- https://www.1point3acres.com/bbs/thread-683982-1-1.html
- https://www.1point3acres.com/bbs/thread-692488-1-1.html
- https://www.1point3acres.com/bbs/thread-559285-1-1.html
- https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=771667&ctid=233194
DDIA:https://vonng.gitbooks.io/ddia-cn/content/ 《System Design Interview - An Insider's Guide: Volume 2》
编程哲学
- 《代码大全》《重构》《代码整洁之道》
- 《编程珠玑》
- 《程序员的职业素养》
- 《程序员修炼之道》
- The Passionate Programmer: Creating a Remarkable Career in Software Development
- The Pragmatic Programmer - your journey to mastery(20th Anniversary Edition)
- ...
零碎topic
- Raft
- MapReduce
- service mesh;dapr?
源码
先选一个深入就行:
- 消息队列
- golang源码:调度器、map、context......
gRpc,kitexgin- golang的缓存/友好的开源项目;7days-golang
- 可以从大佬书单获得一些灵感
Kafka
Zookeeper
文章:
专栏:极客时间