10x 程序员工作法
郑晔
开源项目 Moco 作者
53432 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 63 讲
思考框架 (1讲)
10x 程序员工作法
15
15
1.0x
00:00/00:00
登录|注册

01 | 10x程序员是如何思考的?

回答三个问题
行业最佳实践
本质复杂度
减少偶然复杂度
自动化
沟通反馈
任务分解
以终为始
How can we get there?
Where are we going?
Where are we?
职业发展规划
高效工作
思考原则
思考框架

该思维导图由 AI 生成,仅供参考

你好,我是郑晔。
在开篇词中我们提到,程序员在工作中遇到的很多问题,大多不是程序问题,辛苦而低效的工作,多数是由偶然复杂度导致的。那这个由于偶然复杂度造成的差距会有多大呢?
1975 年,弗雷德里克·布鲁克斯(Frederick Brooks)出版了软件行业的名著《人月神话》,他给出了一个统计结果,优秀程序员的开发效率是普通程序员的 10 倍。40 多年过去了,这个数字得到了行业的普遍认同。
成为 10x 程序员是很多程序员的追求。但工作产出并不只是由写代码的效率决定的,一些不恰当工作方法很大程度上影响着你的产出。
在接下来的这段时间里,我希望通过这个专栏和你一起探讨,作为一个程序员,该如何更高效地工作,怎样才能把时间和精力尽可能地放在处理本质复杂度的事情上,减少在偶然复杂度上的消耗。
作为整个课程第一讲,我就从我常用的一个思考框架开始。

一个思考框架

我曾经组织过针对应届毕业生的培训,第一堂课我往往亲自操刀,其中有一个头脑风暴的环节“畅想未来”,我会让大家思考三个问题:
我现在是个什么水平?
我想达到一个什么水平?
我将怎样到达那个目标?
大家会围绕着这三个问题,从各种角度展开讨论。这是一个有趣的练习,你会发现大家“最擅长”的是回答第一个问题:我现在处于什么水平?和有经验的人相比,他们大多自认为比较“菜”。但对于后两个问题的讨论,却可以切实看出人和人之间处理问题的能力差异。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

如何成为一名高效的10倍程序员?本文介绍了程序员在工作中遇到的问题往往不是程序问题,而是由偶然复杂度导致的。文章提到了优秀程序员的开发效率是普通程序员的10倍,分享了一个思考框架,即确定现状、目标和实现路径,来帮助读者更高效地工作和做好软件。四个思考原则包括以终为始、任务分解、沟通反馈和自动化,这些原则帮助程序员更好地理解工作、提高工作效率。文章内容简洁明了,为读者提供了实用的工作方法和思考工具。通过运用思考框架和四个思考原则,读者可以更好地应用于自己的工作中,提高工作效率,减少偶然复杂度的消耗。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《10x 程序员工作法》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(89)

  • 最新
  • 精选
  • 此方彼方Francis
    这个方法论恐怕要建立在开发和产品双方地位比较平等的基础上。 以我们目前的现状,很多时候产品要做这需求的理由就一个:老板要的!

    作者回复: 后面还真有一篇怎么对付顶着老板名义做事的产品经理,敬请期待。

    2018-12-26
    5
    128
  • 张维元
    思考框架是道,原则是演化下的术,我们从 A → B,有无穷无尽的路径,最有效的唯有那条直线。本质上,各个维度、原则(不限于作者提到的四项原则)都是帮助我们更好地定位 A 在哪里,B 在哪里,那条直线在哪里。 这个思考工具算是吸收了,四项原则也是有借鉴意义,谢谢

    作者回复: 这个理解真棒!

    2019-01-03
    3
    57
  • Xunqf
    我们的产品经理的回答是:“你是在拷问我吗?这个你不需要知道,做出来就好了。”或者:“先做出来上线看看用户的反馈,不行了再下掉。”又或者:“这个是老板提的需求,优先级最高”

    作者回复: 不靠谱的产品经理,总拿老板说事,刚好是后面的两个主题,欢迎关注! 补充一点,不允许问问题的产品经理一看就是虚的,如果他不让提问,那就把问题带到老板面前,让老板判断一下,自己问的问题是不是合理,扩大上下文是解决问题的一个好办法,对,这也是后面的一个主题,敬请期待!

    2019-01-05
    4
    36
  • pony
    想起吴军老师讲的三条边,组成的“工”,上面是目标或者行业边界,下面是自己的现状,中间的边就是实现路径,人生主要就是要找到这条路径,下面的一条边代表基础和能力,越粗越好

    作者回复: 同是吴军老师的读者 🤝

    2020-07-16
    20
  • codeparser
    以终为始的理念还是非常有启发的,具体工作中往往会陷入细节中而看不到目标或者忽视目标,例如把实现路径当成了目标。同时,有了目标还需要不断的反思,孔子日三省吾身,我们起码按季度需要重新总结和考虑一下目标和路径的合理性。另外,文中讲到的沟通和自动化如果更加深入些就好了

    编辑回复: 后续内容会针对这四项原则进行深入探讨的,加油💪

    2018-12-26
    12
  • 磉盘
    说真的,真羡慕年轻人更早得到看到这些文章,本人马上进入不惑之年,已是走在讨探的边缘。因为过于平凡没有走出人生华丽的线条,学专栏是希望给职业续续命。 在职业中如果能持续地解决几个问题,会有不错的机会,正如人生走对几个关键点。此专栏分享的一套行之有效的方法论,职场中是很少有人提点的。 人的思想很难改变的,文中提到的原则都听过,缺少有系统地使用过。希望接下来的学习可以深化成自己的行事原则,和思考模式。 这个思考框架很有意思,像极了哲学的三个终极问题:我是谁?我从哪里来?我要到哪里去? 思考模型不局限于特定问题,而是通过这套模型去解决现实中的实际问题。作者说这套框架只是工具箱里的一件,不知道还有哪些好用的工具,期待分享。 不说了去看下一遍了

    作者回复: 学习是容易的,应用是困难的。

    2019-09-15
    3
    11
  • 布衣骇客
    老师的建议和指导都是非常有效,而且“感觉非常可行”,可是实际现实的情况,却有太多意外,我个人曾经在某银行的外包团队中,协同开发一个商户-收银以及集成了各种第三方的团队的接口等等,这个大项目大概有300人以上,由此我得leader不在,我代表开会,足足开了3-4个小时(约30个leader)。杂乱无章,从我个人开发角度无法去高屋建瓴的把握全局应用场景,使用价值之类的。但是每个模块之间互相调用联系,系统升级需要协作。首先,这里沟通成本很高,最要命的是需求变动,无法预测,有的时候新增需求,技术leader直接告诉我在什么地方写一个action,调用一个方法之类的。基本就是码农搬砖之类的,我想提的建议是:希望老师在有丰富理论知识,能给我们有一些实践中的例子,或者列举一些举一反三的例子,理论+实践,我觉得才是最佳法则(没有说老师只是有实际,没有实践,莫怪),第一次这么长的留言,望采纳,谢谢您了

    作者回复: 你的情况就是工作的上下文不足,这种情况你会很纠结,需要扩大自己的工作上下文,了解更多东西。这个话题后面会讲到。

    2018-12-26
    8
  • 业余爱好者
    解决问题的思考框架的四大要点。以终为始,任务分解,沟通反馈,自动化。 (其实我觉得自己当前在哪里有时并不明晰,人总是存在各种偏见傲慢不理性。) x-y问题描述的就是错把手段当目的的没有以终为始的一个典型反例。 解决问题第一步就是定义问题,知道自己要解决的问题的实质。爱因斯坦的名言说要解决问题的大部分时间应该拿来弄清问题本质。不过他指的解决问题应该只包含找到解决方案这部分,不包含具体实施。知道了问题的实质之后开始拆解问题,进行任务分解。通常,弄清问题本质和任务拆解是一体的,分不太开。 关于任务分解,也就是找出解决方案,学问就大了。其中涉及各种思考框架,包括通用的如金字塔原理,各种领域套路,4c3p。这部分就需要学习工作中常常总结了。 沟通反馈透露出控制论的思想。在行动中根据反馈不断调整自己的行动。 自动化,在程序员这一职业中更加长见,程序员本身做的事情就是在帮助别人自动化。而自己的工作也不能忘了自动化。从软件的整个生命周期中,大量存在各种使用的工具。不过不能停留在学习这些工具的使用上,而是应该追问这些工具出现的原因,而自己的工作中有哪些工作是可以使用工具帮忙完成的。

    作者回复: 这个总结角度很不错!

    2020-03-04
    7
  • Geek_fe0336
    很多团队的问题是人的问题,那些小公司的团队,收入不高,生活压力大,本身就生活在焦虑和恐惧中,哪有心情讨论需求的背景,要解决的问题,解决方案,非功能需求......。最后就是程序员看需求人员2,需求看程序员无法进行人类沟通。

    作者回复: 这就是大多数人连1x 程序员都算不上的原因。

    2019-03-21
    6
  • 红糖白糖
    这让我想起了金字塔原理。在解决问题领域可能是这样的: 1. 目标导向,在这里也就是以始为终。思考自己的目标 2. 分类,也就是思考从当前位置到目标有哪些影响因子 3. 优先级,在这里其实是选择适合的方法 4. 解决问题 解决问题的具体方法那就该是: 1. 任务分解 2. 自动化 3. 沟通反馈

    作者回复: 用金字塔原理解释是个很恰当的角度,后面我也会讲到。

    2019-03-02
    5
收起评论
显示
设置
留言
89
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部