今天看了篇文章:

http://blogoscoped.com/archive/2005-08-24-n14.html

这篇文章是讲为什么好的程序员是既懒有笨的!哈哈!

我记得在看UNIX编程艺术时,里面也有这么段话,说不会偷懒的程序员不是好程序员!

为什么呢!我们可以举些简单的例子:

1.只有懒惰的程序员才会去编写那些可以最终代替自己工作的自动化工具,好的程序员都会有一套自己的代码自动生成工具,有的是用模板语言,有的是用shell.在开发一个新的系统时,系统基础框架设计好后,很多业务层代码基本上都是一个模子出来的,要想让这些代码都是从一个模子里出来,那么就需要在底层下很大的功夫才能做到.所以,每个程序员够应该有,或者会写代码自动生成工具,当然,这个工具并不是一个成功工具!它的前提是你必须在底层有足够的抽象.

2.只有懒惰的程序员才不会去去写大段的冗余重复的代码,他们会想出各种方法来避免这种冗余代码的情况,做的好的,就是在系统的基础架构层来解决大部分这样的问题,通过精致的设计模式,高度抽象的模块,易用的接口,高度可配置的基础平台等等来实现,做的一般的会利用各种开源工具来代替自己想要的代码,做的差些的就是不断利用refactor重构出那些重复代码.

3.好程序员怎么可能"笨"呢!哈哈!俺们可都是天之骄子啊!小心我扔你鸡蛋啊!

很聪明的程序员一般比较自信,难以听进别人的意见,在一个团队中,最怕的并不是怕没有技术好的人,而是怕那些很聪明的人不跟你团队保持一致,举个例子,可能团队里有一套通用的数据存取方法,但聪明的程序员会坚持己见,自己发明出一套新的方法来!聪明的程序员会认为自己更懂客户的需求,而不顾市场人员提出的需求.这也是为什么很多人会说"要对团队中听话的人委以重任",我当然不同意这种看法,但是,既聪明团队意识又好的人,就比较少见了.团队不行的话,一个人再聪明又有什么用?

4.聪明的程序员喜欢自己重新发明轮子!笨的程序员喜欢利用聪明的程序员写出的代码!

5.聪明的程序员一般有自己思维的定势,笨的程序员因为什么都不懂,所以他的眼里什么都是可能,什么都是不可能!查找代码问题的时候,聪明的程序员首先会说:这是系统的bug,笨的程序员会看看自己的代码是不是有拼写错误!笨的程序员跟容易换位思考,下面有个例子:

一段关于web开发问题的程序员和客服人员的对话:

“从昨天开始我们的用户就看不到我们站点上的Logo了。”

“他试过重启浏览器么?”

“是的。”

“他试过重启电脑么?”

“是的。”

“他清空过浏览器Cache么?”

“是的。”

“他的浏览器版本是IE6么?”

“是的。”

“他确信是真的看不到Logo了么?”

“是的。”

“他是在电脑显示器屏幕上看我们的站点么?”

“什么?”

“比如说,它可能是打印出来看不到?”

“不。他是在显示器上看的。”

“除了站点Logo之外,他是不是其他的图片都看不到?”

“什么?哦。我再问问他。”

也许,聪明的程序员遇到这个问题的时候,甚至可能去找个图形算法分析下这个图片是否有问题!

最后,以http://blogoscoped.com/archive/2005-08-24-n14.html中的故事结尾,,以博列为看官一笑^_^

It’s like the story of the centipede(蜈蚣). The centipede was very good at walking with its hundred legs. It never spent a thought on just how it could walk. Until one day, when a big black bug(臭虫) asked the centipede “How can you manage to walk with all those feet? Don’t you find it hard to coordinate their rhythm?” The black bug already left, when the centipede was still sitting down, pondering how it could walk, wondering, and (for the first time in his life) even worrying a little bit. From that day on, the centipede couldn’t walk anymore.

So you better not think too much if you want to achieve something. And of course this is only half the truth, too...

posted on 2008-06-20 11:38 pony 阅读(2091) 评论(4)  编辑  收藏 所属分类: 网站

java没有舞台_不会偷懒的程序员不是好程序员!相关推荐

  1. Java应用编程_常用类库汇总2(日期类正则表达式国际化程序)

    总览[Java SE] 相关文章链接 [Java应用编程_常用类库汇总1(字符串处理类&&对象克隆&数字操作类库&-)] [Java应用编程_常用类库汇总3(开发支持类 ...

  2. java quartz下载_下载、设置和运行Quartz(GUI)图形界面程序----Quartz Web

    一.获取Quartz Web程序(Quartz GUI).早期的 Quartz 框架开发者意识到一个 GUI 对于某类用户群体是必需的.几年前,一个 Web 应用被创立,它可用于管理 Quartz 框 ...

  3. java 分割一个_分割java

    [java]分割字符串工具类,霸气 jdk自带的 java 分割字符串,分割string,可以根据多个条件去分割.比如逗号,分号,逗号或者分号. 比如一个字符串:"abc,def;gh,ij ...

  4. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  5. 东软java的笔试_东软的笔试题

    这是一篇东软的笔试题,希望对打算面东软的各位仁人志士有所帮助. 1.下列变量定义错误的是 D int a; double b=4.5; boolean b=true; float f=9.8; (9. ...

  6. JVM - 结合代码示例彻底搞懂Java内存区域_对象在堆-栈-方法区(元空间)之间的关系

    文章目录 Pre 示例demo 总体关系 代码示例论证 反汇编 Pre JVM - 结合代码示例彻底搞懂Java内存区域_线程栈 | 本地方法栈 | 程序计数器 中我们探讨了线程栈中的内部结构 ,大家 ...

  7. java 异常机制_深入理解Java异常处理机制

    一.引子 try-catch-finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的"教训"告诉我,这个东西可不是想象中 ...

  8. Java计算时间差_传统的SimpleDateFormat类

    Java计算时间差_传统的SimpleDateFormat类 SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd ...

  9. java list拷贝_深入了解浅拷贝与深拷贝

    在学习深拷贝和浅拷贝之前,咱们先来一个例子: import java.util.ArrayList;public class MyBaby implements Cloneable {/*** 私有变 ...

最新文章

  1. BPW-21光电二极管的特性测试
  2. websocket实现方式
  3. 高低压配电系统基础知识,都是非常全面的分享!
  4. for循环运行流程/步骤
  5. onloadsuccess: function获取不到表格数据_R语言输格式技巧系列(二),再精细一点,定制包含亚组的表格...
  6. WPF TreeView IsExpanded 绑定不上的问题
  7. java bufferedreader类_详解java中的BufferedReader类
  8. DOTNET零碎总结---VB.NET修改数据存在多个txtbox时,SQL语句的操作
  9. hdu 2883 kebab 网络流
  10. node.js服务端代码学习
  11. java final一点
  12. 如何从超级用户进入非超级用户
  13. 谷歌换帅 佩奇将接任CEO[转]
  14. 【新书速递】CSO进阶之路首次曝光
  15. 剔除水印软件Inpaint 7.2 中文破解版 微笑一刀作品
  16. 基于AI的恶意软件分类技术(4)
  17. Lead项目中简单分析卡号的编码规则
  18. 计算机MAR代表什么,MAR是什么意思?
  19. c语言diy杀毒程序源代码,c - 源码下载|其它|杀毒|源代码 - 源码中国
  20. mysql的四表联查_数据库四表联查

热门文章

  1. redis之读写分离
  2. 现货黄金实时行情给我们的启示
  3. pgsql:添加注释与查询注释
  4. python time.time()单位是秒不是毫秒
  5. 数据库 | ATACdb:一个全面的人类染色质可开放性数据库
  6. 微软SSIS项目创建
  7. AI-040: Python深度学习3 - 三个Karas实例-2
  8. APP推广助手,自动邀请码技术分享
  9. [第五章] 深入理解计算机系统第三版 家庭作业参考答案
  10. 深度学习-Word Embedding的详细理解(包含one-hot编码和cos余弦相似度)