一个程序员用在写程序上的时间大概占他的工作时间的10-20%

一个程序员用在写程序上的时间大概占他的工作时间的10-20%,大部分的程序员每天大约能写出10-12行的能进入最终的产品的代码 — —不管他的技术水平有多高。 好的程序员花去90%的时间在思考、研究和实验,来找出最优方案。差的程序员花去90%的时间在调试问题程序、盲目的修改程序,期望某种写法能可行。

”一个卓越的车床工可以要求比一个一般的车床工多拿数倍高的工资,但一个卓越的软件写手的价值会10000倍于一个普通的写手。“ — — 比尔 盖茨

伟大的程序员只花很少的时间去写代码 — — 至少指那些最终形成产品的代码。那些要花掉大量时间写代码的程序员都是太懒惰,太自大,太傲慢,不屑用现有的方案去解决老问题。伟大的程序员的精明之处在于懂得欣赏和重复利用通用模式。好的程序员并不害怕经常的重构(重写)他们的代码以求达到最好效果。差的程序员写的代码缺乏整体概念,冗余,没有层次,没有模式,导致很难重构。把这些代码扔掉重做也比修改起来容易。

软件遵循熵的定律,跟其它所有东西一样。持续的变更会导致软件腐烂,腐蚀掉对原始设计的完整性概念。软件的腐烂是不可避免的,但程序员在开发软件时没有考虑完整性,将会使软件腐烂的如此之快,以至于软件在还没有完成之前就已经毫无价值了。软件完整性上的熵变可能是软件项目失败最常见的原因。(第二大常见失败原因是做出的不是客户想要的东西。)软件腐烂使开发进度呈指数级速度放缓,大量的软件在失败之前都是面对着突增的时间要求和资金预算。

2004年的一项研究表明大多数的软件项目(51%)会在关键功能上失败,其中15%是完全的失败。这比1994年前有很大的改进,当时是31%。

尽管大多数软件都是团体开发的,但这并不是一项民主的活动。通常,一个人负责设计,其他人负责实现细节。

编程是个很难的工作。是一种剧烈的脑力劳动。好的程序员7×24小时的思考他们的工作。他们最重要的程序都是在淋浴时、睡梦中写成的。因为这最重要的工作都是在远离键盘的情况下完成的,所以软件工程不可能通过增加在办公室的工作时间或增加人手来加快进度。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Visual C++ 2005入门经典》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2005入门经典 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2005 原出版社: Wiley 作者: (美)Ivor Horton 译者: 李颂华 康会光 出版社:清华大学出版社 ISBN:9787302142713 上架时间2007-2-12 出版日期:2007 年1月 开本:16开 页码:1046 版次:1-1 编辑推荐   本书由编程语言先驱者Ivor Horton倾力而著,是国内第一本全面、深入介绍Visual C++ 2005的经典之作! 内容简介   本书系编程语言先驱者Ivor Horton的经典之作,是学习C++编程最畅销的图书品种之一,不仅涵盖了Visual C++ .NET编程知识,还全面介绍了标准C++语言和.NET C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法,从中读者可以学习Visual C++ 2005的基础知识,并全面掌握在MFC和Windows Forms中访问数据源的技术。此外,本书各章后面的习题将有助于读者温故而知新,并尽快成为C++高效程序员。...    作译者   Ivor Horton是世界著名的计算机图书作家,主要从事与编程相关的顾问及撰工作,曾帮助无数程序员步入编程的殿堂。他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家。Ivor Horton还著有Beginning Visual C++ 6、Beginning C Programming和Beginning Java 2等多部入门级好书。 目录 封面 -18 前言 -14 目录 -9 第1章 使用Visual C++ 2005编程 1 1.1 .NET Framework 1 1.2 CLR 2 1.3 编C++应用程序 3 1.4 学习Windows编程 4 1.4.1 学习C++ 4 1.4.2 C++标准 5 1.4.3 控制台应用程序 5 1.4.4 Windows编程概念 6 1.5 集成开发环境简介 7 1.6 使用IDE 9 1.6.1 工具栏选项 9 1.6.2 可停靠的工具栏 10 1.6.3 文档 11 1.6.4 项目和解决方案 11 1.6.5 设置Visual C++ 2005的选项 23 1.6.6 创建和执行Windows应用程序 24 1.6.7 创建Windows Forms应用程序 26 1.7 小结 29 第2章 数据、变量和计算 31 2.1 C++程序结构 31 2.1.1 程序注释 36 2.1.2 #include指令——头文件 37 2.1.3 命名空间和using声明 37 2.1.4 main()函数 38 2.1.5 程序语句 38 2.1.6 空白 40 2.1.7 语句块 41 2.1.8 自动生成的控制台程序 41 2.2 定义变量 42 2.2.1 命名变量 43 2.2.2 C++中的关键字 43 2.2.3 声明变量 44 2.2.4 变量的初值 44 2.3 基本数据类型 45 2.3.1 整型变量 45 2.3.2 字符数据类型 46 2.3.3 整型修饰符 47 2.3.4 布尔类型 48 2.3.5 浮点类型 48 2.3.6 ISO/ANSI C++中的基本类型 49 2.3.7 字面值 50 2.3.8 定义数据类型的同义词 50 2.3.9 具有特定值集的变量 51 2.3.10 指定枚举常量的类型 52 2.4 基本的输入/输出操作 53 2.4.1 从键盘输入 53 2.4.2 到命令行的输出 53 2.4.3 格式化输出 54 2.4.4 转义序列 55 2.5 C++中的计算 57 2.5.1 赋值语句 57 2.5.2 算术运算 58 2.5.3 计算余数 63 2.5.4 修改变量 63 2.5.5 增量和减量运算符 64 2.5.6 计算
目 录 第一部分 ARM9基本实验 3 前 言 3 第一章 ARM9 处理器介绍 8 第二章 系统的硬件单元及使用说明 13 一、ZY21ARM13BC实验系统特点 13 二、ZY21ARM13BC实验系统组成 14 三、ZY21ARM13BC实验系统各功能模块介绍 14 第三章 嵌入式软件的基本使用 32 一、超级终端的配置 32 二、ADS1.2集成开发环境的使用 38 三、简易仿真器的配置 53 四、Flash Programmer软件安装 55 第四章 基础实验 57 实验一 ADS集成开发环境 57 实验二 Flash烧实验 62 实验三 串口通讯实验 68 实验四 USB接口实验 77 实验五 IIS音频实验 80 实验六 IIC接口实验 87 实验七 键盘及数码管驱动实验 94 实验八 PS/2键盘接口实验 97 实验九 A/D接口实验 102 实验十 D/A接口实验 107 实验十一 LED显示实验 111 实验十二 步进电机实验 113 实验十三 直流电机实验 116 实验十四 LCD驱动实验 119 实验十五 触摸屏实验 126 实验十六 WDT看门狗实验 135 实验十七 实时时钟实验 139 实验十八 RS485接口实验 144 实验十九 CAN及SPI接口实验 150 实验二十 利用SPI接口与FPGA通讯实验 157 实验二十一 利用串口与FPGA通讯实验 162 实验二十二 利用数据地址总线与FPGA通讯实验 164 实验二十三 GPRS基本实验 167 实验二十四 GPRS通话建立实验 173 实验二十五 GPRS短信发送实验 176 实验二十六 GPRS短信接收实验 181 实验二十七 GPS全球定位实验 186 附录 ARM汇编指令集 191 第二部分UC/OS-Ⅱ实验 216 第一章 实时系统介绍 216 实验一 uC/OS-Ⅱ操作系统介绍 216 第二章 UC/OS-II操作系统部分实验 254 实验二 uC/OS-Ⅱ简介以及其在ARM上的移植实验 254 实验三 绘图的API函数实验 267 实验四 系统的消息循环实验 270 实验五 列表框控件的使用实验 275 实验六 文本框控件实验 278 实验七 多任务和系统时钟实验 281 实验八 任务间的通信和同步实验 286 附 录 295 一、嵌入式系统应用编程API 函数 295 二、配置手册 323 参考书目 330 第一部分 ARM9基本实验 前 言 嵌入式技术的发展 计算系统无所不在,每年都要建立数以百万计的计算系统,这些系统包括台式计算机、笔记本计算机、工作站、大型主机以及服务器等。真正令人惊讶的是,每年建立的计算系统都有各自完全不同的目的:嵌入在大型的电子设备中,重复执行某个特定功能,而通常没有引起设备使用者的注意。要精确的定义这些嵌入式计算系统(或简称为嵌入式系统)并非易事,一种较近似的定义是,嵌入式-系统基本上是除台式机外的一种计算系统。通过考察常见实例及其共性,可以更好的了解这些系统,同时找到嵌入式系统设计者所面对的主要挑战。 嵌入式系统存在于各种常见的电子设备中,如消费类电子产品(移动电话、寻呼机、数码相机、便携式摄像机、磁带录像机、掌上游戏机、计算器、个人数字助理)、家用电器产品(微波炉、留言机、自动调温器、家庭安全系统、洗衣机以及照明系统)、办公自动化设备(传真机、复印机、打印机、扫描仪)、商用设备(收音机、路边收费器、报警系统、读卡机、产品扫描设备以及自动提款机)以及车用设备(传动控制、定速控制、燃料喷射、防锁死刹车器以及主动式悬吊)等。表1是一份简短的嵌入式系统实例清单,更完整的清单如果列出则要好几页。可以说,靠电力运行的任何设备已经或即将嵌入计算系统。虽然嵌入式计算机比台式计算机便宜很多,但其数量庞大。例如,在1999年,一个典型的美国家庭可能拥有一部台式计算机,但有35~50部嵌入式计算机。再者,1998年平均每部汽车有50部嵌入式计算机,价值数百美元,年增长率达17%。近年来,嵌入式微处理器单元年销售量达数十亿部,而台式微处理器单元的年销售量仅数亿部。 防锁死刹车器 调制解调器 自动对焦相机 MPEG解码器 自动提款机 网卡 自动收费系统 网关/路由器 自动传动 车(船)载导航 航空电子系统 寻呼机 电池充电器 影印机 便携式摄像机 销售站系统 移动电话 掌上游戏机(电玩) 移动电话基站 打印机 无绳电话 卫星电话 定速控制 扫描仪 路边收费器 话音识别器 磁盘驱动器 立体声系统 电子读卡器 远程会议系统 电子仪器 电视 电子玩具/游戏 温度控制器 工厂控制 电视机顶盒 指纹辨别器 DVD播放器 家庭安全系统 游戏(电玩)控制器 生命维持系统 可视电话 医疗检测系统 洗衣机和干衣机 数码相机 智能型烤箱/洗碗机 传真机 防盗追踪系统 表1 嵌入式系统的简要清单 嵌入式系统从20世纪70年代单片机的出现到今天各式各样的嵌入式微处理器,微控制器的大规模应用,至今已有30多年的发展历史。最初的嵌入式系统应用是基于单片机的,使得汽车,家电,工业机器人,通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能,更易使用,速度更快,价格更低。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片执行一些单线程的程序,其实还不能完全称为嵌入式“系统”。 从20世纪80年代开始,嵌入式系统的程序员开始用商业级的“操作系统”编嵌入式应用软件,这使得开发人员可以进一步缩短开发周期,降低开发成本并提高开发效率。1981年,Ready System开发出世界上第一个商业嵌入式实时内核(VTR32)。这个实时内核包含了许多传统操作系统的特征,包括任务管理,任务间通信,同步与互相排斥,中断支持,内存管理等功能,此后一些公司也纷纷推出了自己的嵌入式操作系统。这些系统均具有嵌入式的典型特点:它们都采用先式的调度,响应时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪性,可扩充性和可移植性,可以移植到多种处理器上;具有较强的实时性和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员从小范围的开发中解放出来,同时也促使嵌入式有了更广阔的应用空间。 20世纪90年代以后,随着对实时性要求的提高,软件的规模不断增大,实时内核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式发展的主流。此时出现了我们都较为熟悉的Palm OS,Windows CE,嵌入式Linux,Uc/OS操作系统,我们国内也出现了Hopen,Delta OS等操作系统。到今天,RTOS已经在全球形成了一个产业,每年RTOS和相关的开发工具(包括仿真器,逻辑分析仪,软件编译器和调试器)销售额已经达到几十亿美元。(1999年已经达到13亿美元。) 嵌入式系统由硬件和软件两大部分构成,以上我们所讲的操作系统就是软件部分。从硬件方面来讲,嵌入式的核心部件是嵌入式处理器。嵌入式微处理器的性能好坏就直接决定整个系统的运行效果。由于嵌入式系统应用需求的多样性,市场上基于RISC结构的嵌入式微处理器提供商也日渐增多。据统计数字表明,2002年32位嵌入式微处理器市场销售额排在前3位的公司分别是ARM,Motorola和MIPS,其中ARM公司的芯片销售量达1.5亿个,市场份额超过70%。 ARM是一类处理器的名字,同时也是一个公司的名字。ARM公司于1990年11月在英国剑桥成立,它是全球领先的16/32位RISC微处理器知识产权设计供应商,向全球各大领先电子公司提供高效性能、低成本和高效率的RISC微处理器、外设和系统芯片技术授权。 1991年,ARM推出第一个嵌入式RISC核心——ARM6系列处理器。不久VLIS率先获得授权,随后,夏普、GECPlessey、德州仪器等一些大公司也同ARM公司签署了授权协议,从此ARM的知识产权产品和授权用户都急剧扩大。从1998年4月,ARM上市之后,ARM在短短几年时间内已经成为一家全球性大公司,在三大洲8个国家都设有分支机构。ARM中国安谋咨询上海有限公司也已在2002年成立。目前,全世界由几十家著名的半导体公司都使用ARM公司的授权,其中包括摩托罗拉、IBM、Intel、ATMEL、SONY、NEC、LG等。 ARM微处理器得到了众多半导体厂家的支持,全球已有100多家IT公司在采用ARM技术,20家最大的半导体厂商中有19家是ARM的用户。优良的性能和准确的市场定位极大的丰富了ARM资源,加速了基于ARM核面向各种芯片的开发应用。在2002年,基于ARM核的芯片据了整个32、64位嵌入式市场的79.5%,在中国,ARM的市场有率也达到了57.5%之多,可以说ARM会统一整个嵌入式处理器系统。 ARM微处理器目前包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列 SecurCore 系列,Intel公司的StrongARM和Xscale以及最新的ARM11系列。除了具有ARM体系结构的共同特点外,每个系列的ARM微处理器都有各自的特点和应用领域。其中,ARM7、ARM9、ARM9E、ARM10为四个通用处理器系列,每个系列提供一套相对独特的性能来满足不同领域的需求。随着ARM 的进一步发展,其必将会据更大的市场份额。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值