zoukankan      html  css  js  c++  java
  • 为什么优秀的程序员既懒又笨程序员

    们会发现这样一个有悖常理的现象优秀的程序员都是即懒又的。

    因为懒,他才会写出各种各样的工具来替自己干活。因为懒,他才会想办法避免去写无聊重复的代码因此避免代码的冗余,消减了维护的成本,使重构变得容易。最终,这些由于懒惰作用开发出的工具和最佳编程实践方法大大提升了产品的质量。


    懒惰的程序员也因此变成了优秀的程序员。当然,这只是事情的一部分;从一个懒惰的程序员变成一个优秀的程序员,他/她会在学习如何能够永远保持懒惰时表现出惊人的不懒惰——也就是,什么样的软件工具能让自己干活更轻松,什么方法能避免繁冗,如何能让工作变得更容易维护和重构。


    优秀的程序员都是傻的。为什么?因为如果他很聪明,或他知道自己很聪明,他就会:

    A停止学习

    B对自己的工作不再高标准、高要求

    第一点将会导致他不再努力去发现新的技术,让自己工作更快捷。第二点将导致他的代码变得难以 debug,难以重构。在程序员和编译器无休止的战争中,程序员最好一开始就投降并承认是自己的错,而不是责怪编译器的错除非是关于字符编码问题,有些编译器确实有问题

    海量技术文章:http://tieba.yunxunmi.com/
    云搜 http://so.yunxunmi.com/ 让搜索更简单 采用html5完全支持手机和PC

    但是,还有一个优秀的程序员必须的更重要的理由。为了寻找到更好的问题解决方案,他必须保持一谦虚的心态,他必须跳出模式想问题。某种程度上,这会让他们回到小孩的思维模式;因从未经历“no”的打击而极具创造力。

    相反的思维模式就不具有创见性,会认为对现状了如指掌,会接受现状。可是又有谁知道多少你认为的不可能是真正的不可能?知道的越少你就会越激进。你开发的工具越好,你的产品就会因为它们变得质量更高。云贴吧 http://tieba.yunxunmi.com/ 

    我从工作中总结出,一个优秀的程序员,在从经理那里确认一个需求时,他需要以一个笨人的思维模式来操作;他会从最简单的孩子般的问题问起。他不会想当然接受这个问题提供者提供的信息。在 web 开发中一个典型的交谈会是这样:

      “昨天,一个客户说我们网站上的 logo 图片无法显示。”

      “他重启浏览器了吗?”

      “是的。”

      “他重启计算机了吗?”

      “是的。”云贴吧 http://tieba.yunxunmi.com/ 

      “他清空缓存了吗?”

      “是的。”

      “他用的是 IE6 吗?”

      “是的。”

      “他确信是没看见吗?”

      “是的。”

      “他是在电脑屏幕上看我们网站吗?”

      “什么?

      “是这样,他也许把它打印出来了。”

      “不,是盯着屏幕看的。”

      “除了 logo,他能看到网站上的其它图片吗?”

      “什么?哦,我问问。”

    为了说明我们的主题这个故事完全是虚构的,我们假设客户真的关闭了浏览器的图片显示。也许是他儿子干的。不管怎样,如果你用“聪明”的模式思考,你很难找出这样的答案。所以这个程序员问的问题都不需要任何的编程知识。因为这是一个很傻的问题,所以只有傻办法才能解决。

    事情当然有另外一面。太笨也就想不出任何办法,做错事,解决不了任何问题。而太聪明的喜欢坐着计划好问题,但却很少行动。实用主义的程序员取其中。他知道,10 次决策一次错误比起只有五次正确决定而另五次什么都不做要好多。

    这有点像一个关于蜈蚣的故事。蜈蚣很擅长使用它的 100 条腿走路。它从来没有想过它是如何能做到这些的。直到有一天,一个臭虫问他,“你是如何控制这么多腿走路的?你不觉得让它们按一定的节奏配合走路很难吗?”臭虫说完就走了,蜈蚣却仍然坐在那里思考,思考自己时如何走路的。它开始不解,甚至有些担心了。从那天起,这个蜈蚣再也没能走一步。

    所以,如果你想实现某个事情,不要想太多。当然,这也只是事情的一半……

    英文原文:Why Good Programmers Are Lazy and Dumb

    云贴吧 http://tieba.yunxunmi.com/ 


    感谢您关注米鼠网官方云寻觅,如您尚未关注请扫描下方二维码或搜索“米鼠网”关注我们。

    海量技术文章:http://tieba.yunxunmi.com/
    云搜 http://so.yunxunmi.com/ 让搜索更简单 采用html5完全支持手机和PC


    更多请关注:http://tieba.yunxunmi.com/tieba-%25E7%25A8%258B%25E5%25BA%258F%25E5%2591%2598.html

    小白救星 QQ 99923309
  • 相关阅读:
    c#将 1, 2, ..., 9共 9 个数字分成 3 组
    信息学院本科生创新项目总结
    Element-ui的使用
    fastmock接口管理
    mock安装与使用
    开闭原则
    里氏替换原则
    依赖倒置原则
    接口隔离原则
    单一职责原则
  • 原文地址:https://www.cnblogs.com/bdccloudy/p/7665286.html
Copyright © 2011-2022 走看看