《编程珠玑(第2版•修订版)》—第1章1.7节深入阅读

简介: 程序员的主要问题与其说是技术问题,还不如说是心理问题:他不能解决问题,是因为他企图解决错误的问题。问题的最终解决,是通过打破他的概念壁垒,进而去解决一个较简单的问题而实现的。

本节书摘来自异步社区《编程珠玑(第2版•修订版)》一书中的第1章1.7节深入阅读,作者【美】Jon Bentley,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 深入阅读
这个小练习仅仅是令人痴迷的程序说明问题的冰山一角。要深入研究这个重要的课题,参见Michael Jackson②的Software Requirements & Specifications一书(Addison-Wesley出版社1995年出版)。该书用一组独立成章却又相辅相成的短文,以令人愉悦的方式阐述了这个艰涩的课题。

在本章所描述的实例研究中,程序员的主要问题与其说是技术问题,还不如说是心理问题:他不能解决问题,是因为他企图解决错误的问题。问题的最终解决,是通过打破他的概念壁垒,进而去解决一个较简单的问题而实现的。James L. Adams所著的Conceptuel Blockbusting一书(第3版由Perseus出版社于1986年出版)研究了这类跳跃,该书通常是触发创新性思维的理想选择。虽然该书不是专为程序员而写的,其中的许多内容却特别适用于编程问题。Adams将概念壁垒定义为“阻碍解题者正确理解问题或取得答案的心智壁垒”。习题10、习题11和习题12激励读者去打破一些这样的壁垒。

①折中在所有的工程领域中都存在。例如,汽车设计者可能会通过增加沉重的部件,用行驶里程的减少来换取更快的加速。但双赢是更好的结果。我对自己驾驶过的一辆小轿车做过一番研究,我观察到:“轿车基本结构重量的减少会使各底盘部件重量的进一步减少——甚至消除了对某些底盘部件的需求,例如转向助力系统。”

②Michael Jackson(1936—),软件工程先驱。他于20世纪70年代提出了影响深远的面向数据结构的Jackson方法。 ——编者注

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
7月前
|
算法 C++ 容器
(万字,细细阅读)竞赛算法入门必经算法模型(附带题目链接和模板)(上)
(万字,细细阅读)竞赛算法入门必经算法模型(附带题目链接和模板)(上)
27 0
|
3月前
|
存储 人工智能 安全
面向企业的 ChatGPT 究极手册:第七章到第八章
面向企业的 ChatGPT 究极手册:第七章到第八章
93 0
面向企业的 ChatGPT 究极手册:第七章到第八章
|
算法 C语言 索引
算法为何重要(《数据结构与算法图解》by 杰伊•温格罗)(下)
算法为何重要(《数据结构与算法图解》by 杰伊•温格罗)
70 0
|
算法 程序员 索引
《编程珠玑(第2版•修订版)》—第2章2.5节原理
排序。排序最显而易见的用处是产生有序的输出,该输出既可以是系统规范要求的一部分,也可以是另一个程序(也许是一个二分搜索程序)的前期准备工作。
1042 0
|
算法 程序员 安全
《编程珠玑(第2版•修订版)》—第1章1.5节原理
当规范说明的某些因素发生改变时,该程序的特殊结构将很难修改。
1597 0
|
算法 程序员
《编程珠玑(第2版•修订版)》—第2章2.1节三个问题
研究算法给实际编程的程序员带来许多好处。算法课教给学生完成重要任务的方法和解决新问题的技术。
1568 0
|
索引 Perl 算法
《编程珠玑(续)(修订版)》—第2章2.6节深入阅读
Aho、Kernighan和Weinberger在1977年设计并创建了最初的Awk语言。(无论如何,都不要重新排列他们姓氏的首字母!⑤)在Addison-Wesley出版社1988年出版的AWK Programming Language一书中,他们详细讲述了该语言及其高明的用法。
1344 0