来源:毛剑b站技术总监
1.如何完成自我升级
-
每一个艺术家都是从学徒做起
-
通读专业知识的官方文档 先从官方文档开始
- go的官方文档 一节一节通读 规范、类库
- 专业书籍
-
知识的组织结构
- 方法论 细节、原理、末梢的东西 系统的整理、总结
- 参考优秀公司的做法
- 形成自己的方法论
-
有效的思考
- 遇到困难 问题 独立的思考解决方法, 不要遇到问题就丢弃 尝试解决和总结
- 空闲的时候 也想想看
-
实践、踩坑、重视、反思、改进
2. 核心技能
-
go 关键的几个特性 goroutine channel error context
- channel
- goroutine
- error 错误处理 堆栈上下文保留 打印 业务的hint
- context go生命周期的管理
- oom 生命周期管理问题
- 显示的从上到下传递
-
runtime核心类型 chan、 slice、 map
-
go toolchain 工具链,生产力工具 从生产的角度设计
- gomod
-
内存模型
- 堆栈
- memory model, 内存逃逸、gc问题
-
网络开发
-
并发语义
-
大规模项目的工程化实践
-
kernel综合知识对工程师代码的反向要求
- 减少syscall 成本
- 批量发包 减少syscall
- 内核运维
- 内核诊断
- 软中断 网卡、队列、绑定
3. 建立知识体系
- 系统性的阅读官方文档/blog
- 系统性阅读官方类库
- 姿势要对
- netrpc tpc链接复用 链接池,http2.0单链接复用
- 按需去看
- 阅读大量优秀开源项目
- 包设计的设计方法 初始化new传参数/对象?, 参考开源项目的做法
- 持续实践并改进
- 行业内的优秀文章
- 各种go群 公众号
- 持续阅读
- 知识的组织关联 形成神经末梢
- 一致性hash
- rpc框架负载均衡
- 大数据hdfs namenode选择策略
- yarn调度
- 形成一套方法论
4. 学会学习
- 问题调研方式和积累
- 遇到问题和苦难 心里有答案, 但是会先看大厂的解决方案和分享,海外的优秀的公司
- 行业内的解决方案
- 尽量不要从自己掌握的知识域 从上帝视角/全局视角看待问题
- 不一定是纯技术角度解决问题
- 遇到问题和苦难 心里有答案, 但是会先看大厂的解决方案和分享,海外的优秀的公司
- 独立思考
- 不能一直看地 留些时间给自己 对现状 未来 当下的总结
-
系统学习
- 持续学习
- 技术行业 变化非常快 很容易被淘汰
- 持续的关注和学习 论文研读
- todo list
- 社交 外界知识的获取
- 可能你遇到的困难 别人的做法可以借鉴
- 不要闷头搞
- 多出去走走 论坛
5.成长之路
- 机会与选择
- 3年工作 不能频繁跳槽 不要为了2 3千
- 一万小时定律
- 多关注自己的成长 少些游戏时间
- 比身边的同龄人 解决问题能力强一点点 懂得多一点点
- 团队管理 向上管理
- 工具化 流程化操作
- 远期目标 战略规划, 不能以不好实现等技术问题违背老大的意志, 从老大的角度思考问题 换位思考
- 向上沟通
- 自我认知和修行
- 知道自己的优点和缺点 要在团队中找一个和自己补位的人 补充自己的短板
- 说的话 思考清楚再说 一句话就代表自己的观点 不能随意
- 关注成长
- 突破自己 不能太在乎一些得失
- 尽早的切入厚积薄发的阶段
- 分享和社交
- 演讲的时候要一些ppt 做到的东西、学到的东西、总结的经验 以一种很简单的方式讲清楚
- 过去一年的总结 哪些是重要的事情 工作思考(反思)、结果
- 更多的和同行业中的人 同团队的人在做什么 能学到别人的经验、错误、技术
6.时间管理
- 碎片化时间
- 看一些公众号、微信群 值得留意的信息 对有用的信息记录到笔记中
- 积少成多
- 学习别人总结的精华
- 完整时间
- 晚上下班后可以系统的学习知识
- 周末系统性的学习
- 工作时间
- 工作高效一点, 思考充分一点 多动脑子 出一个设计文档 想清楚收益和目标 和产品充分的了解需求
- 避免糟糕的代码 返工的成本太高了
- 尽量异步沟通 别人不会及时回复你, 你在忙的时候也异步回复别人
- 不打断别人 也不要被别人打断
- 业余时间
- 不要每天都是紧绷的状态, work hard play hard
信息获取
- 微信技术群
- 公众号 收藏 打tag
- 读好书
- Paper 引用的一些论文
- MIT之类的视频
- MeetUp 峰会
- 和讲师交流一下 问一下问题
- 感兴趣的topic 把时间错开
- 短视频学习
- 知识付费