程序员如何快速成长?

发布时间:2022-02-21 / 作者:清心寡欲


程序员容易焦虑,普遍的原因是:技术、社会在发展,害怕自己的“成长”速度赶不上。那么如何有效成长呢,尤其是对于普通程序员来说?

目前我们看到的文章多是从“技术”的角度分析程序员成长路径,最近阿里巴巴技术专家李建(甫田)在“技术琐话(ID:TheoryPractice)”发文,尝试用逻辑分析“普通程序员如何成长”,以下是他的方法

分析问题

JTBD(Job to be done)是一个非常好的用于分析问题的方法。需要明确用户在特定场景下必须解决的问题或完成的任务,也就是目标用户(Who)、在什么场景(Job context)以及完成什么任务(Jobs)。回到“普通程序员如何成长”的问题:任务很清楚,就是“成长”;而目标用户呢,普通程序员是谁?还有用户场景也不清晰。

普通程序员是谁?

这里采用的方法是“典型用户”,用一个人来描述一群人,就像用中间值(median)描述一组数一样。不同点是典型用户在现实世界上不存在,只是为了理解和交流的方便故意把描述写得很真实。

普通程序员的典型用户是:

小明,大学毕业,在 IT 企业上班。小明每天工作很忙碌,朝九晚十,像很多在一线城市奋斗的年轻人一样,小明面临着房贷、养家糊口等压力。IT 技术发展很快,已有经验过时也很快,小明很困扰,每天瞎忙碌,成长却不多。如何才能摆脱眼前的苟且,获得理想的成长?

从用户场景找“矛盾”

假设小明 9:30 到公司,打开电脑,处理邮件;10:00 开会汇报进度或是其他会议;11:00 线上出现紧急事故,需要修复 Bug;15:00 继续开会,到了 19:00 开始写代码,做需求;忙到第二天 0 点才睡觉。从场景中发现用户诉求和现状间的矛盾:成长的诉求与“瞎”忙的现状之间的矛盾。具体来说就是:朝九晚十,日常工作已经占满了小明的时间,如何才能“挤”出时间,做能让自己“成长”的事情?

有逻辑地解决问题

逻辑框架能帮助我们系统地思考问题,寻找解决方案。这里使用的逻辑框架是:从“问题”出发,提出假设,明确度量目标,过程中不断总结、迭代,解决问题。

回到“程序员如何成长”的问题:

  • 问题:繁琐的日常工作占用大量时间,却没有获得想要的成长;
  • 假设:如果成长了,可以承担更有挑战的工作,摆脱低水平的重复,也能获得组织认可;
  • 度量:度量和目标相关,成长的目标可拆解成各个阶段性目标,例如:掌握 DDD、提升提问水平、某个时间内达到目标职业层级等;
  • 认知:在过程中不断总结原因 / 经验,进行相应调整。

用影响地图寻找解法

影响地图是一种结构化拆解目标达成路径的有效方法:需要明确目标是什么(Why)、为了达成目标需要哪些人(Who)、为此需要做什么(What)去(How)影响这些人。使用影响地图拆解“普通程序员如何成长”的达成路径:

用户故事地图组织优先级

用户故事地图就是通过组织写有“用户故事”的卡片,帮助分析需求核心价值和成本,从整体视角规划需求优先级。用一句话描述用户故事就是:某角色,通过完成用户需求,实现了什么价值。基于影响地图梳理出来的用户需求,根据价值进行分类:

  • 效率是第一优先级,提高效率才能挤出时间。
  • 做正确的事情是第二优先级,方向对了才可能成功。这需要提高判断能力,有正确的思考方法等。
  • 正确做事情是第三优先级,学习并掌握正确的流程和方法,结果才能保证。

持续学习

了解了“普通程序员”如何成长的达成路径和优先级,可是要怎样实现具体的事项?

例如:有哪些提升效率的方法?怎样才能快速提高判断正确与否的能力?回答这些问题,需要不断学习,提升认知水平,因为学习是最高效的成长方法。

推荐使用学习三步法:

  • 学:明确学习目标,收集资料,坚持“系统”学习;
  • 练:熟能生巧,掌握一门技艺需要反复练习;
  • 教:通过把自己所学内容教给他人,既是检查学习熟练度的标准,也能获得反馈发现不足进行弥补。

此外,唯有持续学习,多学多知,不断提升认知水平,才能获得成长,摆脱焦虑。以上就是今天的内容,希望对你有所帮助。


声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。

猜您喜欢