29 | “懒惰”应该是所有程序员的骄傲
郑晔
该思维导图由 AI 生成,仅供参考
你好,我是郑晔。
经过前面几个模块的学习,我们的专栏终于进入到程序员看上去最熟悉的一个主题:自动化。
每每提及自动化,我就会想起 Perl 语言的发明人 Larry Wall 一个经典叙述:优秀程序员应该有三大美德:懒惰、急躁和傲慢(Laziness, Impatience and hubris)。
有人甚至为此专门打造了一个三大美德的网站,阐释这个初看起来匪夷所思的说法。
懒惰,是一种品质,它会使你花很大力气去规避过度的精力消耗,敦促你写出节省体力的程序,别人也能很好地利用,你还会为此写出完善的文档,以免别人来问问题。
急躁,是计算机偷懒时,你会感到的一种愤怒。它会促使你写出超越预期的程序,而不只是响应需求。
傲慢,极度自信,写出(或维护)别人挑不出毛病的程序。
不知道你是否感受到,程序员独有的幽默和透露出的那种骄傲:我做的东西就应该是最好的。
之所以要从 Larry Wall 的这段话开启“自动化”这个模块,因为只要一说到自动化,我就会情不自禁地联想到“偷懒”这个词。是的,我们程序员的工作,本质上就是打造各种自动化的工具,让人们从各种繁复的工作中解脱出来,让人有机会“偷懒”。
不过,我也知道,从机器那里偷来的“懒”很快就被更多的工作填满了。但 Larry Wall 的这段话却可以鼓励我们不断地打造出更好的工具。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
程序员应该以“懒惰”为骄傲,因为懒惰会促使他们创造节省时间和成本的自动化工具。然而,有时候“不要自动化”也是重要的,例如通过取消不划算的项目来节省资源。此外,程序员要小心“NIH综合症”,避免不必要地重复造轮子。在写代码之前,要问自己是否真的需要做,遵循Larry Wall的理念,即懒惰地规避精力消耗。另一方面,程序员也应该关注自己的工作是否足够自动化,例如通过自动化增量部署来简化开发过程。文章强调了自动化的重要性,同时提醒程序员要懂得何时不要自动化,以及如何避免重复造轮子。软件设计是程序员的本职工作,它能帮助程序员更好地理解自动化工具的设计和实现。Larry Wall曾说,优秀程序员应该有三大美德:懒惰、急躁和傲慢。要成为优秀程序员,就要让机器为自己很好地工作,而这需要对自动化有着很好地理解。文章强调了自动化的重要性,同时提醒程序员要懂得何时不要自动化,以及如何避免重复造轮子。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《10x 程序员工作法》,新⼈⾸单¥68
《10x 程序员工作法》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(26)
- 最新
- 精选
- Sudouble最近确实感觉追随快速迭代技术追得自己挺迷茫的,也一直在思考到我究竟缺了什么。之前偶然看了软件工程相关的,才意识到算法、分析、设计等基础重要性,看到郑老师这一篇,让我更加坚信了这一点!
作者回复: 追变的东西,永远追不完,追不变的东西,就那么点东西。
2019-03-2036 - zapup“你讨论的是设计,他讨论的是实现”,提到软件设计那一段真的是直戳心窝啊!
作者回复: 能分清设计与实现的,都是好同志!
2019-03-28227 - Jxin从老师这学到一个很喜欢的思想。有价值的事并不局限性于事情本身。做自动化很重要,写代码很重要。但根据根据现有情况判断是否需要自动化,是否需要写代码也很重要。有的放矢,任务分解。权衡跟设计是件很艺术的事情,令人着迷。
作者回复: 以现在大家的努力程度,少做点事是需要锻炼的技能。
2019-03-1818 - 西西弗与卡夫卡面试的时候,常常听到应聘者提起换工作的原因之一是手头任务重复性高,都是增删查改,代码粘帖复制。我就会问,你有没有想过把工作变得不那么重复,不要粘帖复制代码。有不少人就没什么话说了。 其实还是有很多可做的。比如自动生成增删查改的管理功能和页面,集成好缓存、搜索等服务。 懒惰真的是程序员的优秀品质,只是有些人理解成思想上的懒惰了
作者回复: 动手的人多,动脑的人少。
2019-03-18216 - 大力懒惰的美德,指的是可以不做什么,是行动上的“懒惰”,但思想上还是得下功夫的,需要去思考可以怎么懒。
作者回复: 很多人都搞错了懒惰的方向。
2019-03-249 - enjoylearning做值得做的事确实很重要,否则你忙活半天项目失败了,可能你也能赚一部分钱,或者技术得到了提升,但对客户却是损失,明知不可为还要去干就是不职业了。另外就是变中求不变,注重软件设计很重要,就像有些公司面试只考算法,根本不关注你用什么框架和语言,因为技术很多都是想通的,所有的Orm框架不能说完全相同,但设计思想总是想通的吧。可是国内有些单位在筛选人简历时就是看你用过的框架和语言,我招的是java,你简历中项目用的c#,所以不合适直接过滤掉。其实一个合格的程序员又怎么会被语言和框架固化住呢,只不过是不同的场景选择最适合的就是最好的。
作者回复: 大环境的事,是个人没办法解决的,自己能解决的只是不断地提高自己。
2019-03-2738 - Y024郑老师提到的那个问题,其实还有另外种解决方案:远程调试。当然这也无法避免部署的活,但是可以大幅减少部署的次数。有次出现了开发环境无法复现,只有测试环境才能复现的问题,就是通过远程调试解决的,当初使用的中间件是 WebSphere(估计很多童鞋都不知道了)。
作者回复: 远程调试,是一种重量级的工具,能不用就不用。
2019-03-185 - 三生记得前段时间,有一个很有趣的事情。在火车站碰到一个自称自己钱包掉了的中年男子,说想借点钱回家,还是支付宝收款,当时着急就直接给他转了钱。 具体问题应该是找到钱包?而不是借钱回家,如果当时冷静分析一下就不会被骗了,哈哈哈哈
作者回复: 就当做好人好事了。
2020-09-0923 - 111老师推荐几本软件设计的书
作者回复: 别急,软件设计的话题很快就到了!
2019-03-242 - hua168老师,有什么好的软件设计的书推荐吗?目前没学过软件设计,后面有没有相关章节介绍的?
作者回复: 在这个模块的后半部分,我会讲到一些设计的话题,到时候如果还有问题,欢迎提出!
2019-03-182
收起评论