C 编程指南学习(一)

文章作者 100test 发表时间 2007:12:15 13:08:19
来源 100Test.Com百考试题网


一、编程老手与高手的误区

  自从计算机问世以来,程序设计就成了令人羡慕的职业,程序员在受人宠爱之后容易发展成为毛病特多却常能自我臭美的群体。

  如今在 Internet 上流传的“真正”的程序员据说是这样的:

  (1) 真正的程序员没有进度表,只有讨好领导的马屁精才有进度表,真正的程序员会让领导提心吊胆。

  (2) 真正的程序员不写使用说明书,用户应当自己去猜想程序的功能。

  (3) 真正的程序员几乎不写代码的注释,如果注释很难写,它理所当然也很难读。

  (4) 真正的程序员不画流程图,原始人和文盲才会干这事。

  (5) 真正的程序员不看参考手册,新手和胆小鬼才会看。

  (6) 真正的程序员不写文档也不需要文档,只有看不懂程序的笨蛋才用文档。

  (7) 真正的程序员认为自己比用户更明白用户需要什么。

  (8) 真正的程序员不接受团队开发的理念,除非他自己是头头。

  (9) 真正的程序员的程序不会在第一次就正确运行,但是他们愿意守着机器进行若干个 30 小时的调试改错。

  (10) 真正的程序员不会在上午 9:00 到下午 5:00 之间工作,如果你看到他在上午 9:00 工作,这表明他从昨晚一直干到现在。

  ……

  具备上述特征越多,越显得水平高,资格老。所以别奇怪,程序员的很多缺点竟然可以被当作优点来欣赏。就象在武侠小说中,那些独来独往、不受约束且带点邪气的高手最令人崇拜。我曾经也这样信奉,并且希望自己成为那样的“真正”的程序员,结果没有得到好下场。

  我从读大学到博士毕业十年来一直勤奋好学,累计编写了数十万行 C /C 代码。有这样的苦劳和疲劳,我应该称得上是编程老手了吧?

  我开发的软件都与科研相关(集成电路 CAD 和 3D 图形学领域),动辄数万行程序,技术复杂,难度颇高。这些软件频频获奖,有一个软件获得首届中国大学生电脑大赛软件展示一等奖。在 1995 年开发的一套图形软件库到 2000 年还有人买。罗列出这些“业绩”,可以说明我算得上是编程高手了吧?

  可惜这种个人感觉不等于事实。

  读博期间我曾用一年时间开发了一个近 10 万行 C 代码的 3D 图形软件产品,我内心得意表面谦虚地向一位真正的软件高手请教。他虽然从未涉足过 3D 图形领域,却在几十分钟内指出该软件多处重大设计错误。让人感觉那套软件是用纸糊的华丽衣服,扯一下掉一块,戳一下破个洞。我目瞪口呆地意识到这套软件毫无实用价值,一年的心血白化了,并且害死了自己的软件公司。

  人的顿悟通常发生在最心痛的时刻,在沮丧和心痛之后,我作了深刻反省,“面壁”半年,重新温习软件设计的基础知识。补修“内功”之后,又觉得腰板硬了起来。博士毕业前半年,我曾到微软中国研究院找工作,接受微软公司一位资深软件工程师的面试。他让我写函数 strcpy 的代码。

  这么一个小不点的函数,他从三个方面考查:

  ( 1 )编程风格;

  ( 2 )出错处理;

  ( 3 )算法复杂度分析(用于提高性能)。

相关文章


C 编程指南学习(八)
C 编程指南学习(三)
C 编程指南学习(一)
C 编程指南学习(二)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛