学习与职业生涯规划
本文取材自《The missing readme》-- Chapter 10/14
学习如何学习
- 编写、调试代码
- 阅读: 团队文档、设计文档、代码、积压的Jira任务、书籍、论文和技术网站。
- 观看讲座:YouTube、教程、技术讲座和阅读会议简报(conference presentations)。做笔记帮助记忆、并学习任何不熟悉的概念或术语。
- 结对编程
- 用副业项目实践:从事副业项目会让你接触新的技术和想法。当你只有自己工作时,你可以跳过那些被称为“软件工程”的环节(测试、运维、代码评审等)。忽略这些方面可以让你快速地学习新技术。最好基于兴趣选择具体项目。
Hacker News
提出问题
所有的工程师都应该提出问题,这是学习的一个重要部分。在“万事都求人”和“独行侠”之间取得平衡.
1/ 动手调查一下
首先尝试自己寻找答案。如果你的问题是关于代码的,试着把它变成一个可以演示的单元测试。如果你找不到任何线索,试着自己通过实验来解决它。
记录下你在哪里寻找过,你做了什么,为什么这么做,发生了什么,以及你学到了什么。
2/ 设置一个时间限制
再开始研究一个问题时预期花费的时间。时间到了还没解决就及时寻求帮助。
3/ 写下全过程
提问前描述你已经知道的情况,总结一下你的尝试与发现,表明你已经花了很多时间去试图自己解决这个问题。
4/ 别打扰别人
注意观察别人的请勿打扰标识:耳机、耳塞或耳罩。多用异步的沟通方式。
5/ 多用非打扰式交流
在网络通信中,组播(multicast)是指将消息发送到一个组而不是个人目标;异步(asynchronous)是指可以稍后处理的消息,而不需要立即响应。这些概念也适用于人们之间的通信。
简单来说,把问题发在公群里。
6/ 批量处理你的同步请求
整理问题清单,约会议解决。
克服成长的障碍
成长过程中常见的两种心理障碍:
1/ 冒充者综合征。冒充者综合征会自我强化。每一个错误都会被看作能力匮乏的证明,而每一项成功都是优秀“冒充者”冒充的证据。一旦某个人进入了这个循环,就很难摆脱它。
2/ 邓宁克鲁格效应。这是一种认知偏见,人们认为自己比实际情况更有能力。(比如屎山从不离口,总是到处批判公司的技术栈,抱怨代码的质量,贬低设计。他们确信自己的想法是正确的。他们的默认模式是直接回绝或无视反馈)
职业生涯建议
1/ 做 T 型人才
T 型人才指的是:即是通才(在一系列广泛的有价值的事情上有很高的技能),也是专家(在某个垂直领域中成为佼佼者)。
从构建基本盘开始,需找设涉及其他团队的项目,诸如数据科学、运维、前端等。使用并贡献其他团队的代码。当你遇到激起兴趣的主题和问题是,深入研究以获得胜读。
2/ 参加工程师训练营
包括不限于:招聘、面试、午餐会、研讨会、聚会、阅读小组、开源项目、学徒和导师计划... ...
3/ 主导你自己的晋升
了解晋升的流程,提早做准备,确保你的工作是有价值和可见的,当你认为自己接近下一个级别时,要大声说出来。
4/ 换工作要谨慎
- 资深工程师需要利用过去的经验来指导决策,你需要时间去看到你的决定是如何长期发挥作用的以培养直觉;
- 害怕错过?如果你担心错过机会,可以在聚会和会议上接触新的想法。开源项目和副业项目也是保持新鲜感的好方法。你也可以考虑留在同一家公司,但更换团队。
- 看到团队、公司和软件随着时间的推移而不断发展是非常有价值的;
- 但需要警惕成为“历史学家”,如果你的价值更多的来自过去的工作而不是现在的贡献,那么它就会阻碍你的成长。
5/ 自我调节
不要让自己过度劳累。研究表明一晚上的睡眠不足会导致代码实现的质量下降 50%。长时间工作和睡眠不足是不可持续的。
你的职业生涯是一场马拉松,而不是短跑冲刺。
不是很同意这句话,职业生涯应该是短跑冲刺,从精力管理的角度来看,普通人不可能一直保持创造力,一定是通过稀疏的短跑冲刺有节奏的消耗和更新精力。
另外更重要的是,时机也不是均匀分布的。