高效程序员的特征:聪明,懒惰

标签: 批评评论 | 发表时间:2014-06-04 00:18 | 作者:Aqee
出处:http://www.vaikan.com

LazyCat这里我使用了 聪明懒惰程序员这几个词。我说的这几个词的意思是:

  • 程序员:有积极活力的,专注于用代码解决真实世界里的问题
    • 不是指那些梦想家,那些永远只想不做的人
  • 聪明:能够周全的思考问题(不是那些耍小聪明的人)
  • 懒惰:就像是程序中的 lazy-loading,是指延后写代码的时间(而不是无所事事的人)。

正确的软件开发应该是懒惰式开发,也被称作忍耐式开发;这种开发方式的表现是,在真正动手写代码前,程序员要花大量的时间通盘考虑所有可能的解决方案和途径。这可以看作是 延缓写代码,在没有完全理解问题前绝不动手写代码。先把问题理解清楚,确保将要写的代码能真正的解决问题,这将会避免之后写出大量无用的代码。

inspection这里说的 先把问题弄清楚,表现有:

  • 真正的理解需求,让产品部门(业务分析部门)弄清楚他们真正需求的是什么。
    • 这些部门通常不给足够的时间来整理需求
    • 他们经常不是请教问题领域专家,而是顺从领导的意见
    • 他们通常无法提供前后一致或完整的需求意见。
  • 清楚跟团队中的其它程序员或其他团队中的程序员需要那些交互,如何交互,这包括:
    • 使用白板交流
    • 画流程图(UML或Visio)

你需要花大量的时间调研,来确保需求符合实情,来做工作让你和同事的交流有共同的语言语义。然而,程序员都喜欢立刻冲上去编程,喜欢在电脑前不停的敲代码。

instructor-led-computer-training-sm在真正的软件开发中,只有5%的开发时间是有效率的(你可以参考《 程序员开发效率悖论》)。如果你发现一个程序员用100%的时间都在盯着屏幕,那么,你看到的这个程序员是最糟糕的程序员。

如果一个程序员总是在电脑前编码,这绝对是一个不好的信号。

高效的程序员总是不断检查他对需求的理解,确保他们的代码和需求是 同步的。高效的程序员是频繁的和产品经理/业务人员沟通交流,你可以经常看到他们使用白板与同事和架构师交流讨论。程序员的阅历和经验都是用来提高开发效率,这最优秀的程序员:

  • 他们思考代码的时间增加而写代码时间减少
  • 对问题的透彻理解使调试代码的速度更快
  • 深思熟虑后的代码速度更快
  • 代码长度更短

程序员从心理上讲都是喜爱自己的代码的。

Life-Experience烂程序员不喜欢去修改已经写成的烂代码。相比起优化自己的代码,他们更愿意简单的 增加更多的代码,以此来弥补之前的缺陷。更糟糕的是,他们喜欢把责任归咎于他人。最终,一堆不好用的代码上在来另外一堆不好用的代码,整个系统变得到处是bug,极不稳定。

优秀的程序员经常也会写出烂代码,但他们能看到那些代码需要优化,哪些需要重写。优秀的程序员和不优秀的程序员的区别就在于对有问题的代码的态度,优秀的程序员的做法是:

  • 如果代码整体上好的,那就重构代码。
  • 如果代码整体上有问题,那就重新代码

Untitled当代码中有需要优化或需要重写的地方时,时间拖的越久,你就越难回头解决这些问题。因为对这些代码依赖的程序会越来越多,越来越深,当你优化这些代码时,相关的依赖也需要进行相关修改。当积累的问题越来越多时,轻松的优化/重新这些代码已经变得不可能。而使用继续增加代码的方式来弥补之前代码问题,会让系统变得越来越不稳定。

如果脑子里没想清楚,那就懒一些,把写代码的时间往后推。

请阅读全文: 高效程序员的特征:聪明,懒惰

本文由 外刊IT评论网( www.vaikan.com)原创发表
文章地址: 高效程序员的特征:聪明,懒惰
[英文原文: Productive Developers are Smart and Lazy ]

你也许会喜欢这些文章:

  1. 管道工程序员
  2. 一个科技公司受人尊敬的品质
  3. 面向对象编程已死
  4. 大学里做不出好软件
  5. 所有的程序员都是自学成才




相关 [程序员 特征 懒惰] 推荐:

高效程序员的特征:聪明,懒惰

- - 外刊IT评论
这里我使用了 聪明, 懒惰和 程序员这几个词. 程序员:有积极活力的,专注于用代码解决真实世界里的问题. 不是指那些梦想家,那些永远只想不做的人. 聪明:能够周全的思考问题(不是那些耍小聪明的人). 懒惰:就像是程序中的 lazy-loading,是指延后写代码的时间(而不是无所事事的人).

做一个懒惰的程序员

- risent - I'm Albert
本文写给所有可爱的程序员,(我)你们都是一群可爱的,用双手建造世界的思想家. 从今天起,我要做一个懒惰的程序员. 鼠标,是鼠标手的根源,无数的程序员都被鼠标手所困扰,这似乎已经成为了程序人员的专利. 我们养成了一个一个的“恶习”,比如,滥用鼠标右键刷新,看文档的时候,喜欢用鼠标来标记正在阅读的段落等等.

弱爆程序员的特征值

- DayuLu - 酷壳 - CoolShell.cn
【感谢网友sumtec投递此文,很欢乐也有意思,与大家共勉】. 1、以下特征是真实遇到过的,同事犯过的,乃至我自己也犯过的;. 2、为了剧情需要,某些例子进行了一些夸张修饰等演绎创作,如无雷同,请勿生气;. 3、如果你出现过以下症状之一,并不代表你就是弱爆了,但是如果你一直出现,乃至一说到这个大家就能联想到你,那么你就得小心了;.

程序员是懒惰反复无常的伪知识分子,果真如此吗?

- fyits0 - cnBeta.COM
“计算机编程中极少人是真正的艺术家,大多数人充其量不过是房屋粉刷匠而已. 管理顾问 Tim Bryce 不喜欢程序员,而许多程序员也不喜欢他. (注:Tim Bryce 发布过一篇名为《P理论:管理程序员的哲学》的文章.

普通程序员、文艺程序员、2B程序员

- 可可 - 宇宙的心弦
希望能引起广大苦逼的正在学或者已经学过c++人的共鸣和会心一笑吧. 如何辨别自己在现实还是虚拟世界.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

程序员的本质

- Allen - 译言-电脑/网络/数码科技
来源What do programmers really do?.   很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员. 另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题. 甚至不少程序员对他们是做什么的都没有清晰的概念.   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:.

程序员人生之路

- myartings - 博客园-首页原创精华区
   程序员人生之路(强烈推荐,分析的透彻. ),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的.    相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心. 在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人.

程序员装B指南

- Qing-Run - 博客园-首页原创精华区
1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好. 一个用来查资料,一个用来写代码. 总之要显得信息量很大,效率很高. 2.椅子不一定要舒服,但是一定要可以半躺着. 3.大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善. 沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子.