10x程序员工作法
郑晔
火币网首席架构师,前ThoughtWorks首席咨询师 ,TGO鲲鹏会会员
立即订阅
7972 人已学习
课程目录
已完结 56 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 程序员解决的问题,大多不是程序问题
免费
思考框架 (1讲)
01 | 10x程序员是如何思考的?
以终为始 (11讲)
02 | 以终为始:如何让你的努力不白费?
03 | DoD的价值:你完成了工作,为什么他们还不满意?
04 | 接到需求任务,你要先做哪件事?
05 | 持续集成:集成本身就是写代码的一个环节
06 | 精益创业:产品经理不靠谱,你该怎么办?
07 | 解决了很多技术问题,为什么你依然在“坑”里?
08 | 为什么说做事之前要先进行推演?
09 | 你的工作可以用数字衡量吗?
10 | 迭代0: 启动开发之前,你应该准备什么?
答疑解惑 | 如何管理你的上级?
划重点 | 关于“以终为始”,你要记住的9句话
任务分解 (11讲)
11 | 向埃隆·马斯克学习任务分解
12 | 测试也是程序员的事吗?
13 | 先写测试,就是测试驱动开发吗?
14 | 大师级程序员的工作秘笈
15 | 一起练习:手把手带你分解任务
16 | 为什么你的测试不够好?
17 | 程序员也可以“砍”需求吗?
18 | 需求管理:太多人给你安排任务,怎么办?
19 | 如何用最小的代价做产品?
答疑解惑 | 如何分解一个你不了解的技术任务?
划重点 | 关于“任务分解”,你要重点掌握哪些事?
沟通反馈 (12讲)
20 | 为什么世界和你的理解不一样
21 | 你的代码为谁而写?
22 | 轻量级沟通:你总是在开会吗?
23 | 可视化:一种更为直观的沟通方式
24 | 快速反馈:为什么你们公司总是做不好持续集成?
25 | 开发中的问题一再出现,应该怎么办?
26 | 作为程序员,你也应该聆听用户声音
用户故事 | 站在前人的肩膀上,领取属于你的高效工作秘籍
27 | 尽早暴露问题: 为什么被指责的总是你?
28 | 结构化:写文档也是一种学习方式
答疑解惑 | 持续集成,一条贯穿诸多实践的主线
划重点 | 一次关于“沟通反馈”主题内容的复盘
自动化 (12讲)
加餐 | 你真的了解重构吗?
29 | “懒惰”应该是所有程序员的骄傲
30 | 一个好的项目自动化应该是什么样子的?
31 | 程序员怎么学习运维知识?
32 | 持续交付:有持续集成就够了吗?
33 | 如何做好验收测试?
34 | 你的代码是怎么变混乱的?
35 | 总是在说MVC分层架构,但你真的理解分层吗?
36 | 为什么总有人觉得5万块钱可以做一个淘宝?
37 | 先做好DDD再谈微服务吧,那只是一种部署形式
答疑解惑 | 持续集成、持续交付,然后呢?
划重点 | “自动化”主题的重点内容回顾汇总
综合运用 (7讲)
38 | 新入职一家公司,怎么快速进入工作状态?
39 | 面对遗留系统,你应该这样做
40 | 我们应该如何保持竞争力?
答疑解惑 | 如何在实际工作中推行新观念?
划重点 | “综合运用”主题内容的全盘回顾
总复习 | 重新审视“最佳实践”
总复习 | 重新来“看书”
结束语 (1讲)
结束语 | 少做事,才能更有效地工作
10x程序员工作法
登录|注册

结束语 | 少做事,才能更有效地工作

郑晔 2019-04-29
在这个专栏里,我讲过很多东西,几乎涉及到软件开发的方方面面,但有一个重要的方面,我却从来没有说过,那就是算法。
因为我一直把它当做不言而喻的基本功,认为每个程序员都应该掌握。在我们专栏的结束语中,我就用这个没有涉及过的话题来开篇吧!

算法的差异

排序算法是每个程序员都会学到的内容,大家对各种算法也是如数家珍:插入排序、冒泡排序、归并排序、堆排序、快速排序等等。我们也知道各个算法的复杂度,比如,插入排序是 O(n^2),快速排序平均情况下是 O(nlogn)等等。
你有没有想过一个问题,不同算法的复杂度本质差别到底是什么呢?我们就以插入排序和快速排序为例,为什么快速排序要比插入排序快呢?
我不打算做算法分析,直接公布答案:因为做比较的次数少。为什么同样的排序,比较次数会有差异呢?因为插入排序每次循环只关注当前的目标,循环之间没有关系,而快速排序在做不同划分时,上一次的结果对下一次有助力,因此它省下了不少的比较次数。
明白了这个道理,再来看所谓的算法优化,其实就是尽可能利用已知的信息,少做不必要的事。
再来看一个常见的面试题,给你一堆数,找出前 100 个。很多人直觉就会想到排序,然后选出前 100 个。这种做法固然可行,但一定是做多了,因为这里需要的是找出前 100 个数,而不是要 100 个有序的数字,更不是要所有的数都有序。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《10x程序员工作法》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(45)

  • 西西弗与卡夫卡
    真正的效率,来自少做乃至不做无价值的事。感谢郑老师

    作者回复: 感谢你一路以来的补充!

    2019-04-29
    14
  • W.T
    👍
    2019-04-29
    9
  • 侯永强
    感谢郑老师。郑老师是天才;每个程序员都应该订阅该课程

    作者回复: 过誉了,欢迎把它推荐给更多的同事和朋友。

    2019-06-25
    3
  • 初心
    感谢老师,受益颇多,虽然没有持续学习,但是还是不断,反复学习。特别期待老师接下来的大作
    2019-04-29
    3
  • 公号-代码荣耀
    期待老师开辟DDD的专栏!期待est!
    2019-05-03
    2
  • 风翱
    谢谢郑老师。 一段历程结束也是另一段历程的开始。最近又完成了typescript协议生成,提高了客户端的开发效率,自动化算是又进了一步。
    2019-04-29
    2
  • 风羽星泉
    感谢老师,期待再见
    2019-04-29
    2
  • toosheep
    受益颇多,谢谢老师,也谢谢极客时间,期待老师的下一个专栏!
    2019-04-29
    2
  • AlanP
    感谢郑老师,一直追到了最后,收获良多。结束语中您关于算法本质让我耳目一新,仔细一想确实如此,除了排序算法,字符串匹配中的KMP也是这样的。目前在疯狂补算法知识、刷题,期待秋招能拿到好offer,等正式工作后再深刻践行这些最佳实践,期望着能快速成长。
    2019-04-29
    2
  • 极客不落🐒
    感谢老师,练功房见:)
    2019-04-29
    2
  • Robic
    非常感谢老师,这是我第一门在极客时间学完的课程。虽然看了一遍,还需要多学几遍,非常感谢老师写出这么优秀的专栏。
    2019-04-29
    2
  • 小柒
    感谢老师!
    2019-11-28
    1
  • 书木子谢明
    郑老师,您好。我是一个刚入行的菜鸟,请教您一个问题,当前云计算越来越成熟,云服务商提供了更好用的软件基础设施,可以预见这个行业对普通程序员的需求会越来越少,那么我们应该如何应对云计算带来的冲击呢?

    作者回复: 云计算是简化了业务开发的过程,让程序员更多的把注意力放在业务上,这是好事情,未来的工作机会会增多。

    再者,回顾一下我在40那篇文章中提到的观点,先别焦虑,多考虑一下怎么让自己成长。

    2019-05-29
    1
  • hungki
    断断续续全部听完了,很多没吸收,立个flag,再听一遍。
    同时期待新的专栏

    作者回复: 期待你再次学完!

    2019-05-19
    1
  • 谭鹏
    总认为自己的工作就是实现业务,学了专栏才意识到自己的眼界 太窄 ,工作上下文 需要扩大

    作者回复: 认识到不足,是进步的前提。

    2019-04-29
    1
  • Vackine
    有效工作,高效学习,以后入职了这个专栏肯定会常回来继续学习!
    2019-04-29
    1
  • 丁丁历险记
    讲个笑话,在作者压缩完知识密度后,我的整体感觉是知识密度偏低,可能是没代码的缘故吧……
    但胜在内容接地气,套路好上手,一套可习得的的知识体系,就这么一篇一篇娓娓道来。
    2019-11-19
  • 右耳朵猫咪
    过一段时间要给各部门分享程序员的工作相关的东西,其中有不是计算机部门的,请教一下老师我该讲什么能让不是计算机部门的那些员工也能听懂?
    2019-09-24
  • 磉盘
    算法是每个程序员的基本功(快去练基本功)。
    一语点透算法复杂度本质,同样适用于开发功能的代码。
    专栏的主题是有效工作,(职业素养,高效工作也是可以延伸的方向)。
    有了藏经阁的目录,还需自己参悟。旁人只能指点,不能代劳。
    2019-09-15
  • 极客时间工程师
    谢谢老师,您辛苦了
    2019-09-07
收起评论
45
返回
顶部