`
阅读更多

 来源:酷壳   酷勤网 收集 2010-09-05

<script type="text/javascript">&lt;!-- google_ad_client = &quot;pub-9317413389774415&quot;; /* 连接单元120x90, 创建于 08-11-9 */ google_ad_slot = &quot;8760144591&quot;; google_ad_width = 120; google_ad_height = 90; //--&gt; </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
<script type="text/javascript">&lt;!-- google_ad_client = &quot;pub-9317413389774415&quot;; /* 468x60, 文章页顶部 */ google_ad_slot = &quot;8304920352&quot;; google_ad_width = 468; google_ad_height = 60; //--&gt; </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

我的程序员经历让我明白了一些关于软件开发的事情。下面是一些在编程中可能会让人感到诧异的事情:

  • 一个程序员用了大约只用了10%-20%的时间来编码,而且大多数程序员,无论他的水平如何,其平均每天只有10-12行的代码 最终会进入最终的软件产品中。这是因为,优秀的程序员 会花费90%的时间来思考、调查、研究最佳的设计。而糟糕的程序员 则会花费90%的时间来调试代码,并随意地改动代码并尝试让代码工作起来。

“A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer.” –Bill Gates

“一个优秀的车工其工资是一个普通车工的好几倍,但是一个优秀程序员写出来的代码比一个普通程序员要值钱一万倍。——比尔盖茨”

  • 一个好的程序员比一个普通的程序员多十倍的生产率。而一个优秀的程序员的生产率则比普通程序员多20-100倍。这并不是夸张 (自从上世纪60年代的研究一直表明这是一个事实)。一个糟糕的程序员并不只是没有产出的——他们并不仅是完成不不工作,而且还会制造出大量的让别人头痛并要去解决的麻烦。

 

  • 优秀的程序员花少量的时间写代码——那些代码都会出现在最终的产品中。那些花大量的时间写代码的程序员其实是很懒惰、很无 知,或是很自大的,以至于不能使用已经存在了的解决方案来解决已有的问题。优秀的程序员精通于对通用的模式的识别和重用。好的程序员并不害怕持续地重构/ 重写自己的代码,直到达到最理想的方案。糟糕的程序员的代码基本上都缺少概念一致性,代码冗长,缺少层次和模式,所以,也就很难被重构。所以,重写他们的 代码要比重构他们的代码要容易得多。
  • 软件和其它一切事物一样,都遵循着一致性规则。持续得更改只会让软件变成一潭烂泥,其破坏了原始设计的概念一致性。软件产品 变成泥沼是不可避免的事情,但是因为程序员不考虑软件概念一致性而导致软件产品更为快速地成为泥沼,这种速度快得可能 会在软件产品还没有完成时,软件产品已经变得没有价值。设计概念一致性的失败通常都会导致软件项目的失败(而第二大导致软件项目失败的原因则是发布的软件 并不是用户想要的)。软件变成烂泥的速度正在呈指数级下降,太多的项目在被完结前都面临着激增的时间和成本。
  • 一个 2004 研究报告 指出,大多数的软件项目 (51%) 都会在关键环节出问题。而15%的项目则是完全失败,当然,这比1994年有了很大的进步,当时完全失败的项目是是31%。
  • 虽然,几乎所有的软件产品都有些开发团队,但其并不是民主的。通常,只有一个人负责设计,而剩下的人去实现细节。
  • 编程是一个辛苦的工作。其是一个巨烈的脑力劳动。好的程序员24×7地在思考他们的工作,他们一般都在在洗澡和梦中编写软件中最重要的代码。因为最重要的工作只能在键盘之外完成,软件项目不可能因为加班或是加人 来加快进度。

(全文完)

分享到:
评论

相关推荐

    3d打印 硬盘架STL文件夹123d源文件

    标题中的“3d打印硬盘架STL文件夹123d源文件”表明这是一个与3D打印相关的项目,其中包含了硬盘支架的设计文件。3D打印是一种利用数字模型逐层制造物体的技术,它在制造业和DIY领域有着广泛的应用。STL(Stereo ...

    数字转换成大写,例如:123 转换后:一百二十三

    在编程领域,尤其是在Java语言中,将数字转换为大写汉字是常见的需求,尤其是在财务、会计等场景下,为了满足规范和格式要求。这个过程通常称为数字汉字转换,它涉及到字符编码、字符串处理以及数学运算等多个方面的...

    java将数字转换成大写字母

    Java 中实现数字金额到中文大写字符的转换 Java 中实现数字金额到中文大写字符的转换是指将阿拉伯数字转换成中文大写的过程。本文将详细介绍 Java 实现数字金额到中文大写字符的转换的知识点。...

    《华为企业数字化转型之道.pdf》

    为此,华为提出五个转变的要点:转意识、转组织、转文化、转方法和转模式。 四、ICT基础设施在数字化转型中的作用 ICT基础设施发挥“五机”协同的优势,提供场景化解决方案,助力转型成功。ICT基础设施包括五个...

    芒果在线咸鱼转转交易猫聊天客服源码

    芒果在线咸鱼转转交易猫聊天客服源码是一款为咸鱼转转定制的客服系统,具备前后台管理功能,还支持咸鱼转转模板和分享图功能。本文将介绍该客服系统的安装方法,以及如何修改公告内容和机器人自动回复内容。 安装...

    易语言文本转换到数值

    1. **文本格式**:文本必须是可转换为数值的格式,例如"123"或"-456.78"。含有非数字字符的文本(如"abc123")将无法正确转换。 2. **溢出检查**:如果转换的文本表示的数值超出了易语言支持的数值范围,也会导致...

    各种string类型转换

    #### ANSI String转C风格字符串 ```cpp #include void __fastcall TForm1::Button1Click(TObject* Sender) { AnsiString str = "Sample"; char chr[MAX_PATH]; strcpy(chr, str.c_str()); // 使用c_str()将...

    js 经纬度坐标 度分秒转度 度转度分秒

    - `val`: 输入参数,代表经纬度的度数(如:123.456789),可以是浮点数或整数。 #### 返回值 返回一个字符串,格式为“度, 分, 秒”。 #### 实现细节 1. **获取度数**:首先判断输入的值是否为空或者未定义,如果...

    进制转换器

    例如,转换123为十六进制,先计算123 ÷ 16 = 7...11,再计算7 ÷ 16 = 0...7,所以123对应的十六进制数是7B。 相反,将十六进制转换为十进制,需要对每个十六进制位乘以16的相应幂次,然后将所有结果相加。例如,...

    C++类型转换(char* string cstring unicode ansi )转换

    CString 转 char*: CString cstr; char *p = (LPSTR)(LPCTSTR)cstr; 这段代码将 CString 对象 cstr 转换成 char* 类型的指针 p。 char* 转 CString: char *p; CString cstr; cstr = p; 这段代码将 char* 类型...

    mysql数据类型转换

    -- 示例:将整数123转换为字符串 SELECT CAST(123 AS CHAR); -- 或者使用CONCAT方法 SELECT CONCAT(123, ''); ``` 2. **使用`CAST`函数** `CAST`函数可以直接将一个表达式转换为指定的数据类型。 ```sql -...

    PDF转曲线123

    PDF转曲线123很好用,大家来下下!

    任意汉字、数字转换为英文字母

    对于更大的数字,我们可以使用多个字符组合,如"123"表示数字123。 在实际编程中,这个过程可能涉及到字符串操作,如Python中的`str()`函数可以将整数或浮点数转换为字符串,反之,`int()`或`float()`可以将字符串...

    S7-200SMART中如何把1个INT整型数据转换成REAL浮点型数据?.docx

    在这个例子中,123会被转换为双精度整数形式,其值为123 * 2^32,因为双精度整数是以二进制补码形式存储的64位数值。 2. **双精度整数到浮点数的转换**: 有了双精度整数后,我们接着使用`DI-R`(Double-Integer ...

    芒果在线咸鱼转转交易猫聊天客服源码-支持分享图

    芒果在线咸鱼转转交易猫聊天客服源码是一款为咸鱼转转定制的客服系统,具备前后台管理功能,还支持咸鱼转转模板和分享图功能。本文将介绍该客服系统的安装方法,以及如何修改公告内容和机器人自动回复内容。 安装...

    123数制之间的转换

    123数制之间的转换、计算补码、BCD码、ASCII码 补码范围、补码的二进制运算和溢出问题 51单片机的主要组成部分及容量或大小或显著参数,控制引脚功能 振荡器OSC的作用,复位电路的组成部分

    ActionScript 3 类型转换

    // 将字符串"123"转换为数字123 ``` ### 特殊情况下的类型转换 在某些特殊情况下,如数组转换,使用`as`关键字与内置转换函数的效果可能不同。例如,当尝试将一个对象转换为数组时,直接使用`Array(object)`可能...

    c++中double与string相互转换算法

    double value = 123.456; std::string strValue = std::to_string(value); ``` 这行代码直接将`double`转换为对应的`std::string`。 接下来,我们来看`string`转`double`的方法。同样,`std::stringstream`在这里...

    工具 doc 转 docx 工具 doc 转 docx 备份备份

    标题中的“工具 doc 转 docx 工具 doc 转 docx 备份备份”暗示了这个压缩包可能包含一个或多个用于转换Microsoft Word文档格式(.doc)到更新的Open XML格式(.docx)的工具,并且可能有备份文件。描述中的“备份”...

    python转换字符串为摩尔斯电码的方法

    本文实例讲述了python转换字符串为摩尔斯电码的方法。分享给大家供大家参考。具体实现方法如下: chars = ",.0123456789?abcdefghijklmnopqrstuvwxyz" codes = """--..-- .-.-.- ----- .---- ..--- ...-- ....- ......

Global site tag (gtag.js) - Google Analytics