后端开发工程师的生命周期
- 1 职业发展方向:
- 标准:需要不断学习、主动思考、不断锻炼、多提问
- 技术专家:三年、五年、八年的时间节点
- 2 后端学习成长路线
- 2.1 后端技术图谱
- 2.2 Go语言技术图谱
- 3 个人精进的思路
- 1、计算机基础 + 算法(持续积累刷题刷思维)
- 2、语言基础
- 3、数据库
- 4、第三方组件
- 5、单机———多机,存在一个分布式的问题
- 6、高并发高可用微服务
1 职业发展方向:
大体确定职业路线:技术管理、技术专家、项目/客户经理、技术转测试
标准:需要不断学习、主动思考、不断锻炼、多提问
- 经验总结、笔记积累,最好是把自己的总结整理好————>参考建立一个网站,类似https://pdai.tech/
- 知其然知其所以然,即便当下用到的只是简单的东西,但简单也能思考很多,避免只做CRUD,毫无不可替代性
- gin框架,如何实现router的绑定、整体框架结构是怎么样的
- xorm框架框架结构是什么,代码结构如何,如何实现字段的识别绑定,如果字段重复如何应对,要设计一个类似的框架,需要考虑哪些要点?从哪些方面进行实现?同类的框架有哪些?之间的差异是什么?优势劣势比较,实现方式差别
- mysql的事务是如何实现的?不同数据库的使用是否掌握、熟悉?
- 技术基础能力
- 除了整体的开发逻辑,还有里面的具体实现细节需要不断积累
- 考虑前后端的数据关联,识别唯一性防止重复提交
- 什么时候需要开启事务
- 什么时候需要异步操作,http的超时时间是60秒,超过就会报超时错误,肯定需要尽快的返回结果给前端
- 日志的合理使用,debug的调试
- 快捷键的使用,提高code效率
- 实现方案需要多考虑可能会出现的情况,不能只是实现单纯的实现需求,5W2H法
- 学习go语言的技术栈,工作内容安排、时间安排、学习安排,有意识的去分配
- 平常工作时间的调剂,抽空出来学习
- 周末时间的安排,至少抽出一天时间用来个人学习,
- 极客时间课程学习,保证每天的学习
- 刚出来工作需要多学习,越往后人越懈怠
技术专家:三年、五年、八年的时间节点
- 三年:
- 能仿造现有开源框架,自己开发类似框架
- 开发能力独当一面,能独立承担一个中小项目的开发,需求对接、开发、上线、维护…
- 开发技术的广度,对go语言相关的技术栈都有广泛的了解,能熟练的使用,对某些内容有较深入的研究
- 尤其是分布式、微服务这部分的内容,要多了解
- 五年:
- 技术不仅要有广度,也需要有深度。深入的去了解实现原理,内部结构,相关技术的对比
- 对某一些内容有非常深入的了解
- 八年:
- 架构师
2 后端学习成长路线
2.1 后端技术图谱
2.2 Go语言技术图谱
3 个人精进的思路
应对要学的东西太多,解决无处下手
1、计算机基础 + 算法(持续积累刷题刷思维)
2、语言基础
- 基本语法
- 集合类:数组、切片、map
- 锁
- 协程
- 内存
3、数据库
- 基本数据库:mysql
- 涉及缓存:redis
- 消息队列 :kafka
4、第三方组件
- 网络组件:gin,设计思想、源码实现,手撕实现简易框架
- 数据库组件:xorm、gorm,比较区别、内部实现
- GRPC
- apollo,实现原理
- 会用只是最低级的,要多问为什么
- 一个一个组件看内部的原理、实现
5、单机———多机,存在一个分布式的问题
- 分布式锁
- 跨服务调用
- 数据同步
6、高并发高可用微服务