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

29 | “懒惰”应该是所有程序员的骄傲

控制设计的可变性
设计与实现的区别
学习Go的程序员
前端领域的框架
开源之前流行
看不上别人做的东西
阻止客户的浪费
写出(或维护)别人挑不出毛病的程序
促使写出超越预期的程序
写出完善的文档
写出节省体力的程序
规避过度的精力消耗
谨慎地将工作自动化
优秀程序员的美德
软件设计的重要性
增量部署的自动化
日常工作的自动化
谨慎地将工作自动化
小心NIH综合症
项目成功的案例
傲慢
急躁
懒惰
总结
做好自动化
不要自动化
Larry Wall的三大美德
自动化

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

你好,我是郑晔。
经过前面几个模块的学习,我们的专栏终于进入到程序员看上去最熟悉的一个主题:自动化。
每每提及自动化,我就会想起 Perl 语言的发明人 Larry Wall 一个经典叙述:优秀程序员应该有三大美德:懒惰、急躁和傲慢(Laziness, Impatience and hubris)。
有人甚至为此专门打造了一个三大美德的网站,阐释这个初看起来匪夷所思的说法。
懒惰,是一种品质,它会使你花很大力气去规避过度的精力消耗,敦促你写出节省体力的程序,别人也能很好地利用,你还会为此写出完善的文档,以免别人来问问题。
急躁,是计算机偷懒时,你会感到的一种愤怒。它会促使你写出超越预期的程序,而不只是响应需求。
傲慢,极度自信,写出(或维护)别人挑不出毛病的程序。
不知道你是否感受到,程序员独有的幽默和透露出的那种骄傲:我做的东西就应该是最好的。
之所以要从 Larry Wall 的这段话开启“自动化”这个模块,因为只要一说到自动化,我就会情不自禁地联想到“偷懒”这个词。是的,我们程序员的工作,本质上就是打造各种自动化的工具,让人们从各种繁复的工作中解脱出来,让人有机会“偷懒”。
不过,我也知道,从机器那里偷来的“懒”很快就被更多的工作填满了。但 Larry Wall 的这段话却可以鼓励我们不断地打造出更好的工具。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

程序员应该以“懒惰”为骄傲,因为懒惰会促使他们创造节省时间和成本的自动化工具。然而,有时候“不要自动化”也是重要的,例如通过取消不划算的项目来节省资源。此外,程序员要小心“NIH综合症”,避免不必要地重复造轮子。在写代码之前,要问自己是否真的需要做,遵循Larry Wall的理念,即懒惰地规避精力消耗。另一方面,程序员也应该关注自己的工作是否足够自动化,例如通过自动化增量部署来简化开发过程。文章强调了自动化的重要性,同时提醒程序员要懂得何时不要自动化,以及如何避免重复造轮子。软件设计是程序员的本职工作,它能帮助程序员更好地理解自动化工具的设计和实现。Larry Wall曾说,优秀程序员应该有三大美德:懒惰、急躁和傲慢。要成为优秀程序员,就要让机器为自己很好地工作,而这需要对自动化有着很好地理解。文章强调了自动化的重要性,同时提醒程序员要懂得何时不要自动化,以及如何避免重复造轮子。

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

全部留言(26)

  • 最新
  • 精选
  • Sudouble
    最近确实感觉追随快速迭代技术追得自己挺迷茫的,也一直在思考到我究竟缺了什么。之前偶然看了软件工程相关的,才意识到算法、分析、设计等基础重要性,看到郑老师这一篇,让我更加坚信了这一点!

    作者回复: 追变的东西,永远追不完,追不变的东西,就那么点东西。

    2019-03-20
    36
  • zapup
    “你讨论的是设计,他讨论的是实现”,提到软件设计那一段真的是直戳心窝啊!

    作者回复: 能分清设计与实现的,都是好同志!

    2019-03-28
    2
    27
  • Jxin
    从老师这学到一个很喜欢的思想。有价值的事并不局限性于事情本身。做自动化很重要,写代码很重要。但根据根据现有情况判断是否需要自动化,是否需要写代码也很重要。有的放矢,任务分解。权衡跟设计是件很艺术的事情,令人着迷。

    作者回复: 以现在大家的努力程度,少做点事是需要锻炼的技能。

    2019-03-18
    18
  • 西西弗与卡夫卡
    面试的时候,常常听到应聘者提起换工作的原因之一是手头任务重复性高,都是增删查改,代码粘帖复制。我就会问,你有没有想过把工作变得不那么重复,不要粘帖复制代码。有不少人就没什么话说了。 其实还是有很多可做的。比如自动生成增删查改的管理功能和页面,集成好缓存、搜索等服务。 懒惰真的是程序员的优秀品质,只是有些人理解成思想上的懒惰了

    作者回复: 动手的人多,动脑的人少。

    2019-03-18
    2
    16
  • 大力
    懒惰的美德,指的是可以不做什么,是行动上的“懒惰”,但思想上还是得下功夫的,需要去思考可以怎么懒。

    作者回复: 很多人都搞错了懒惰的方向。

    2019-03-24
    9
  • enjoylearning
    做值得做的事确实很重要,否则你忙活半天项目失败了,可能你也能赚一部分钱,或者技术得到了提升,但对客户却是损失,明知不可为还要去干就是不职业了。另外就是变中求不变,注重软件设计很重要,就像有些公司面试只考算法,根本不关注你用什么框架和语言,因为技术很多都是想通的,所有的Orm框架不能说完全相同,但设计思想总是想通的吧。可是国内有些单位在筛选人简历时就是看你用过的框架和语言,我招的是java,你简历中项目用的c#,所以不合适直接过滤掉。其实一个合格的程序员又怎么会被语言和框架固化住呢,只不过是不同的场景选择最适合的就是最好的。

    作者回复: 大环境的事,是个人没办法解决的,自己能解决的只是不断地提高自己。

    2019-03-27
    3
    8
  • Y024
    郑老师提到的那个问题,其实还有另外种解决方案:远程调试。当然这也无法避免部署的活,但是可以大幅减少部署的次数。有次出现了开发环境无法复现,只有测试环境才能复现的问题,就是通过远程调试解决的,当初使用的中间件是 WebSphere(估计很多童鞋都不知道了)。

    作者回复: 远程调试,是一种重量级的工具,能不用就不用。

    2019-03-18
    5
  • 三生
    记得前段时间,有一个很有趣的事情。在火车站碰到一个自称自己钱包掉了的中年男子,说想借点钱回家,还是支付宝收款,当时着急就直接给他转了钱。 具体问题应该是找到钱包?而不是借钱回家,如果当时冷静分析一下就不会被骗了,哈哈哈哈

    作者回复: 就当做好人好事了。

    2020-09-09
    2
    3
  • 111
    老师推荐几本软件设计的书

    作者回复: 别急,软件设计的话题很快就到了!

    2019-03-24
    2
  • hua168
    老师,有什么好的软件设计的书推荐吗?目前没学过软件设计,后面有没有相关章节介绍的?

    作者回复: 在这个模块的后半部分,我会讲到一些设计的话题,到时候如果还有问题,欢迎提出!

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