C++编程指南学习(一),第1张

C++编程指南学习(一),第2张

1.程序员和大师的错误

自从计算机出现以来,编程已经成为一个令人羡慕的职业。被人喜欢后,程序员往往会发展成一个问题很多但经常自我吹嘘的群体。

今天网上流传的“真正的”程序员据说是这样的:

(1)真正的程序员是没有时间表的。只有马静,这位讨好领袖的人,有一个日程表。真正的程序员会让领导紧张。

(2)真正的程序员不写指令手册,用户要自己去猜测程序的功能。

(3)真正的程序员几乎不会写代码的注释。评论难写,自然难读。

(4)真正的程序员是不画流程图的,原始人和文盲都会做。

(5)真正的程序员不看参考手册,只有新手和懦夫才看。

(6)真正的程序员不写也不需要文档。只有看不懂程序的傻子才会用文档。

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

(8)真正的程序员不接受团队开发的想法,除非他自己就是领导者。

(9)真正的程序员的程序第一次不会正确运行,但他们愿意留着机器进行几次30小时的调试和纠错。

(10)一个真正的程序员不会在早上9点到下午5点之间工作,如果你看到他早上9点还在工作,说明他从昨晚就开始工作了。

……

越是具备以上特征,级别越高,资历越老。所以程序员的很多缺点可以被欣赏成优点也就不足为奇了。就像武侠小说里,那些独来独往,无拘无束,又有些邪恶的人,才是最令人敬佩的高手。我曾经也相信这一点,希望自己是一个“真正的”程序员,但是没有好下场。

我从大学到博士十年勤奋好学,写了几十万个C++/C代码。这么辛苦,这么累,应该算是老程序员了吧?

我开发的软件与科研相关(集成电路CAD、3D图形等领域),动辄上万行程序,技术复杂,难度高。这些软件频频获奖,其中有一款获得了首届中国大学生计算机竞赛软件展示一等奖。1995年开发的一套图形软件库,2000年还会买。列举这些“成就”说明我是编程高手吧?

可惜这种个人感觉不等于真相。

在读博期间,我开发了一个3D图形软件产品,一年内有近10万行C++代码。我为自己感到骄傲,并虚心向一位真正的软件大师请教。虽然他从未涉足3D图形领域,但他在几分钟内指出了软件中的许多重大设计错误。让人觉得那套软件就是一件纸做的华丽礼服。扯下一块戳个洞。意识到这套软件没有实用价值,我惊呆了。一年的辛苦白做了,害死了自己的软件公司。

人的顿悟通常发生在最痛苦的时刻。在沮丧和心碎之后,我深刻反思,又“面壁”了半年,重新复习软件设计的基础知识。补好“内功”后,感觉后背又硬了。毕业前半年,去微软中国研究院找工作,被微软的一个高级软件工程师面试。他让我写函数strcpy的代码。

如此微小的功能,他从三个方面进行了考察:

(1)编程风格;

(2)错误处理;

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

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++编程指南学习(一)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情