普通程序员如何成长?
程序员容易焦虑,普遍的原因是:技术、社会在发展,害怕自己的“成长”速度赶不上。那么如何有效成长呢,尤其是对于普通程序员来说?目前我们看到的文章多是从“技术”的角度分析程序员成长路径。
分析问题
JTBD(工作待完成)是一种有效的问题分析方法,核心在于明确用户在特定情境中需要解决的任务。在“普通程序员如何成长”这个问题上,成长是明确的任务,但目标用户的定义和用户场景尚不清晰。因此,需要进一步界定普通程序员是谁以及他们所处的具体情境。
普通程序员是谁?
这里采用的方法是“典型用户”,用一个人来描述一群人,就像用中间值(median)描述一组数一样。不同点是典型用户在现实世界上不存在,只是为了理解和交流的方便故意把描述写得很真实。
从用户场景找“矛盾”
假设小明早上9:30到公司,处理邮件后参加会议,紧急修复Bug,下午继续开会,直到晚上7点才开始写代码,忙碌到深夜。这个场景揭示了用户的诉求与现状之间的矛盾:小明希望成长,但日常工作的繁忙让他难以抽出时间来提升自己。关键在于如何在紧张的工作安排中“挤出”时间,专注于有助于个人成长的任务。
有逻辑地解决问题
逻辑框架有助于系统思考和解决问题。在“程序员如何成长”这一问题上,可以这样分析:首先,问题在于繁琐的日常工作占据大量时间,导致成长受限;假设是通过成长可以承担更具挑战性的工作,从而摆脱低水平的重复劳动并获得组织认可;度量方面,可以将成长目标细化为阶段性目标,如掌握DDD、提高提问能力或达到特定职业层级;在整个过程中,需要不断总结经验和原因,进行相应调整。
用影响地图寻找解法
影响地图是一种有效的结构化方法,用于拆解目标达成的路径。在“普通程序员如何成长”这个问题上,可以这样构建影响地图:
- 目标(Why) :明确成长的目的,例如提升技术能力和职业发展。
- 参与者(Who):识别需要影响的人,包括自己、团队成员、上级和 mentors。
- 行动(What):确定需要采取的行动,如参与培训、寻求反馈、设定个人学习计划等。
- 影响方式(How):制定策略影响这些人,比如定期交流、分享学习成果、寻求指导和建议。
通过这种结构化拆解,程序员可以更清晰地规划成长路径。
持续学习
了解“普通程序员”的成长路径后,关键在于如何实现具体事项。有效提升效率的方法包括时间管理和工具使用,而快速提高判断能力则需要丰富的实践经验。学习是最有效的成长方式,推荐使用学习三步法:
- 学:设定明确的学习目标,系统地收集和学习资料。
- 练:通过反复练习,熟悉并掌握技能。
- 教:将所学内容教给他人,这不仅检查学习效果,还能获取反馈,发现不足。
持续学习和提升认知水平是摆脱焦虑、实现成长的关键。
你们学会了吗?