设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4291|回复: 9
打印 上一主题 下一主题

[个人工具] 个人性格与编程(转载)

[复制链接]
跳转到指定楼层
1#
发表于 2004-11-17 15:41:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下文章节选至《代码大全》

在软件开发中人们很少注意个人性格问题。自从 1965 年 Edsger Dijkstra 的有里程碑意义的

文章“程序开发是一种人类活动”发表以来,程序员性格被认为是合理的和有成效的研究领域。

虽然有些题目如“大桥建筑者的心理”和“对律师行为的研究实验”看起来可能是荒唐的,而

在计算机领域,“计算机编程中的心理”和“对程序员行为的研究实验”等题目则是常见的。

每个领域的工程人员都知道工具和他们所用材料的局限性。如果你是一位电机工程师,你

就应明白各种材料的导电性和使用电压表的各种方法。如果你是一位建筑师,你就应明白木材、

混凝土、钢材的性能。而如果你是一位软件工程师,你的基本建筑材料是人的聪明才智,并且

你的主要工具是你自己。建筑师是将建筑物结构进行详细的设计,然后将设计蓝图交给其它人

去建造,而你则是一旦当你从细节上对软件作出设计后,软件生成过程也就结束了。

编程的整个工作就如建造空中楼阁一样——它并不是纯粹的人工活动。于是,当软件工程师

研究工具和材料的必需性时,他们发现自己正在研究人的智力、性格,不像木材、混凝土和钢

材等可见的东西。

31.1 个人性格是否和本书的主题无关

编程工作极强的内部特点使得个人特点异常重要。你想想一天全神贯注地工作八小时有多

么困难,你可能有过由于精力过分集中而今天无精打采的体验,或由于上个月过分投入而本月

没有一点精神。你也可能在某一天从上午 8 点工作到下午 2 点,以致于精神快要坍塌了。有时

你从下午 2 点拼命于到 5 点,然后花费一周的时间修改你在其间所写的东西。

第三十一章 个人性格 502

人们难以对编程工作进行检查,因为没有人知道你真正干些什么。我们经常有过这样的体

验,我们花费 8O%的时间进行我们所感兴趣的 20%的工作,同时花费 2O%的时间生成其余 80

%的程序。

你的老板并不能强迫你成为一个好的程序员,甚至过了很长一段时间你的老板也无法判断

你是否是一个称职的程序员。如果你想成为一个高手,你得全靠你自己下功夫。它和你个人性

格有关。

一旦你自己决定成为一个高级程序员,你发展的潜力是很大的。各种研究发现,创建一个

程序所需的时间比可达到 10:1,同时也发现调试一个程序的时间,程序实现长度、速度、错

误率和所发现错误数对不同的程序员其差别可达 10:1。

你无法改变自己的聪明程度,但是你可在一定程度上改变自己的性格。已发现,在程序员

成为高级程序员的过程中,性格是更有决定意义的因素。

31.2 聪明和谦虚

聪明看起来似乎不是个人性格的一个贡献。它也的确不是。恰巧的是,好的智力是和成为

一个好的程序员有着并不严密关系的因素。

为什么?难道这并不要求你有一个好的智力吗?

不,你不需这样,没有人真正同计算机一样迅速敏捷。完全理解一个一般的程序需要你有

吸收细节的很强的能力,并能同时理解所有细节。你很好地利用你的聪明要比你有多聪明更为

重要。

在 1972 年,Edsger Dijkstra 发表一篇论文,名字叫作“谦虚的程序员”。他在此文中主张

所有的程序员都应尽力弥补他们很有限制的智力。那些最精通编程序的人往往是那些认为自己

的头脑是多么有限的人,他们是谦虚的。而那些最为糟糕的程序员往往是那些拒绝承认自己的

能力不适应工作任务的程序员。他们的自我妨碍自己成为优秀程序员,你学到越多的东西来弥

补你的大脑,你就越能成为一个好的程序员,你越谦虚,你取得的进步也就越快。

许多良好的编程风格的目的是减少你大脑的负担,以下是一些例子:

􀁹 “分解”一个系统的目的是为了使其更为简单易懂。人们往往易于理解几条简单的信

息而不是一条复杂的信息。所有软件设计方法的目的是将复杂的问题分解为简单的几

部分,不论你是否使用结构化、自顶向下或是面向对象的设计,以上目标都相同。

􀁹 进行评审、检查和测试是弥补人的错误的一种方法,评审方法部份源于“无错编程”,

如果你没有任何错误,你就用不看评审你的软件,但是当你知道自己的能力是有限时,

你就应和别人讨论以提高你的软件质量。

􀁹 将子程序编短一些有助于减少你的工作量。你根据问题而不是计算机科学术语编写程

序并使用尽可能高级的抽象思维,有助于减少你的工作量。

􀁹 使用各种交谈方式可将你从编程的死胡同中解放出来。

你也许认为靠聪明能更好地开发人的智力活动,所以你无需这些帮助。你也可能认为使用

智力帮助的程序员是走弯路。实际上,研究表明,那些使用各种方式弥补其错误的谦虚的程序

员们所编写的程序,既易为自己也易为别人所理解,并且其程序中所含错误也少。实际的弯路

是出现错误和影响进度的路。

31.3 好奇心

一旦你认为自己理解程序的能力是有限的,而且你意识到,进行有效的编程是补偿自己能

力的方法时,你就开始了你生涯中漫长的探索过程。

在变成高级程序员的过程中,对技术的好奇心是很重要的。有关的技术信息变化迅速。许

多 PC 程序员没有在什么机器上编过程,而许多程序员还没有用过电脑的穿孔卡
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-11-18 05:20:00 | 只看该作者
很有启发!!

点击这里给我发消息

3#
发表于 2004-11-22 04:41:00 | 只看该作者
不错,值得看
4#
发表于 2004-11-25 06:38:00 | 只看该作者
5#
发表于 2005-1-28 02:58:00 | 只看该作者
VERY GOOD
6#
发表于 2005-2-25 20:26:00 | 只看该作者
我不想成为一个程序员,因为来不及了,我只想在单位里做一些小程序
7#
发表于 2005-9-16 17:42:00 | 只看该作者
我不喜欢编程
8#
发表于 2006-1-1 08:00:00 | 只看该作者
我喜欢编程,喜欢人机对话带来的烦恼和欢乐![em05]
9#
发表于 2006-4-16 06:42:00 | 只看该作者
值得看
10#
发表于 2006-5-24 06:14:00 | 只看该作者
不错,反省一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-2 02:47 , Processed in 0.138349 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表