《程式開發心理學》是2004年1月1日清華大學出版社出版發行的圖書,作者是(美)傑拉爾德·溫伯格。
基本介紹
- 書名:程式開發心理學
- 作者:[美]Gerald M Weinberg
- 譯者:韓江 陳玉
- ISBN:978-7-121-10433-6
- 頁數:660
- 定價:69.00
- 出版社:電子工業出版社
- 出版時間:2010-3-1
圖書簡介,宣傳語,作者簡介,譯者序,圖書前言,目錄,
圖書簡介
在書中,作者從人類行為、社會行為、個人行為等角度,分析了人在電腦程式開發的過程中所表現出的行為及其影響,探討了諸如什麼樣的程式設計師才是好的程式設計師,怎樣才能打造出優秀的開發團隊,我們在求職或招聘時做的那些智力測驗是否真的有用,等等這類問題。
本書出自軟體領域著名思想家,美國計算機名人堂首批成員之一的Gerald M.Weinberg溫伯格之手。本書關注的是程式開發過程中人的因素,堪稱這一領域的開山之作。本書的初稿完成於整整40年前,作者當時慧眼獨具,前瞻性地提出了將程式開發作為一種人類行為來考察的觀點。作者的行文深入淺出,書中所舉例子看似信手拈來,然而卻發人深省,值得讀者細細品讀。幾十年來,本書已讓無數讀者從中受益,時至今日仍然是暢銷全球的經典之作。
適合閱讀本書的,不僅僅是處在軟體行業第一線的程式設計師;各個軟體開發單位的團隊領導、項目主管、高層管理人員,以及人力資源經理、文檔撰寫人員、程式開發工具的設計者、程式開發語言的設計者,甚至所有其工作與程式開發有關的人,都能從本書中得到啟發。
宣傳語
堪稱軟體領域開山之作的本書由美國計算機名人堂首批成員之一、美國軟體界著名思想家,Weinberg最初於1969年完成的,40年過去了,本書受歡迎的程度卻絲毫未減,這在電腦程式開發這個日新月異,新技術、新產品層出不窮的領域無疑是個驚人的奇蹟!此次翻譯的是本書的《銀年紀念版》,即25周年紀念版。
作者簡介
40多年前Weinberg進入了程式開發領域,最初的工作是IBM的普通職員,後來擔任了包括數據處理方面的主管在內的許多職位,並擔任過“水星計畫”監管程式開發的主管。從那以後,他的名字在軟體工程界就開始廣為人知,並且由於他在人和技術兩方面的新穎的觀點,而使他得到了來自全世界的讚譽。作為一位極有影響力的作家、演說家和諮詢大師,Weinberg還舉辦了多次旨在幫助人們提高生產能力的研討會。在他的20多本著作中,有《諮詢的奧秘》、《成為技術領導者》、《質量軟體管理》系列叢書等多部經典作品(都已由Dorset House出版社出版)。
譯者序
能夠有幸翻譯Weinberg(溫伯格)的這部作品,對於我來說實在是榮幸之至。溫伯格的大名自不必說,這位軟體領域著名的思想家,美國計算機名人堂首批5位成員之一,在全球的計算機界都享有極高的聲譽。他那獨特的視角和高瞻遠矚的預見能力,使他的每部作品都熠熠生輝,不僅令無數讀者折服,而且也使他擁有了大量的擁躉。眾多忠實的“溫伯格迷”們狂熱地追逐著溫伯格的每部作品,甚至還建立了專門的組織和網站,以交流學習的心得體會。自20世紀70年代以來,溫伯格通過撰寫大量的專著、開設培訓班、舉辦研討會,以及為企業和項目做諮詢,已經影響了、且繼續影響著一代又一代的程式設計師,並開闢了一個又一個全新的研究領域。
《程式開發心理學》就是這樣一部開山之作。此次翻譯的是本書的《銀年紀念版》,即25周年紀念版,不過從作者1969年在義大利休假時完成本書的初稿時算起,距今已經整整40年的時間。然而雖然過去了這么長的時間,本書受歡迎的程度卻依然絲毫未減,在電腦程式開發這個日新月異,新技術、新產品層出不窮的領域,這無疑是個驚人的奇蹟。而本書之所以成為一個奇蹟,恰恰是由於溫伯格獨具慧眼,抓住了程式開發中普遍適用的規律性的東西,前瞻性地提出了將程式開發作為一種人類行為來考察的觀點。在40年後的今天,我們已經超越了技術本身,將更多的注意力放在程式開發中人的因素方面,相關的著作也在書架上日漸增多。然而只要我們捧起此書,細細品讀,就會愈發驚嘆於溫伯格早在40年前就已對我們今天仍然面對的諸多問題進行過深入的思考和探索,而他的真知灼見,時至今日仍然會讓我們受益匪淺。
能從本書中受益的,絕不僅僅是處在軟體行業第一線的程式設計師;各個軟體開發單位的團隊領導、項目主管、高層管理人員,以及人力資源經理、文檔撰寫人員、程式開發工具的設計者、程式開發語言的設計者,甚至所有其工作與程式開發有關的人,都能從本書中得到啟發。當然,為了從這個寶藏中能夠有所收穫,讀者必須暫時忘卻自己習慣於專注的技術細節,而是像作者那樣做一個思考者,更多地思考諸如軟體項目有多少不是因為技術、而是因為人的原因而失敗,什麼樣的程式設計師才是好的程式設計師,怎樣才能打造出優秀的開發團隊,我們在求職或招聘時做的那些智力測驗是否真的有用等等這類問題。思考得越多,經歷越豐富,體會也就會越深。我們通過思考,不僅能更好地領會到作者的深意,更會給自己的職業生涯鋪就通往更高層次的階梯。
在翻譯本書的過程中,我們一如既往地得到了博文視點各位編輯的鼎力支持和幫助。作為譯者,最惶恐的莫過於不能完美地表達出作者的原意,而使一部偉大的作品受損。幸運的是,這次博文視點推出的是本書的中英文對照版,讀者可以隨時參考原文,以更真切地體會原作的妙處。當然,這也給了我們很大的壓力,由於水平有限,如果有翻譯不當之處,還請讀者多多諒解。
關於本書的內容,這裡不想贅言,還是把探索的樂趣留給讀者自己吧。幾十年來讀者的溢美之辭已經說明:大師就是大師,經典就是經典。這本《程式開發心理學——銀年紀念版》值得我們每個人都將它擺在案頭,時時翻閱。讓我們靜待10年後《金年紀念版》出版的那一天吧。希望我們每個人,乃至於整箇中國軟體行業,在這期間都能夠取得長足的進步。
譯 者
2009年9月於北京
圖書前言
《程式開發心理學》是一本令人稱奇的書——就像一位年逾125歲而仍健在的老人一樣令人稱奇。我們所從事的這一行業瞬息萬變,據我所知,還沒有其他任何一本計算機圖書,能夠在初次出版後長達25年內活力不減——而且依然在繼續。
更讓我感到驚訝的是,我在編寫這本書的時候,居然從未意識到它會有什麼不同尋常之處。在寫此書之前的15年裡,我一直在編寫代碼、領導程式設計師團隊,以及向程式設計師提供培訓和諮詢。我曾想寫一本關於程式開發行業的小說,這個行業在當時還鮮為人知。但我後來意識到,我還沒有足夠的技巧來成為一名小說作家,作品很難讓人信服。這樣,我在1969年到義大利休假的八周時間裡,靈感涌動,於是就寫下了這本《程式開發心理學》的初稿。
那時,我已經出版過幾本關於如何為各種計算機編程的暢銷的技術書籍,而《心理學》這本書對我來說是一次全新的探險。這本書的出版費了很大的周折——這些是我在此前出版的幾本書時所不曾經歷過的。出版我之前幾本書的出版社McGraw-Hill,雖然從本書手稿的幾位審校那裡得到了對這本書的高度評價,但他們卻認為沒有人會花錢買這樣的書。於是我把書拿給了Prentice-Hall,而他們很不情願地說,如果我同意讓他們出版我的一些賺錢的“技術類”書籍,他們就出版這本書。然而我覺得自己需要找一個更有熱情的出版社,所以我將這本書同時給了另外4家出版社。由於已經耽誤了2年,我決定誰先接受出版,就選同誰合作。最後這4家出版社都表示願意出版,但第一家是Van Nostrand Reinhold——1971年,這本書終於出版了。具有諷刺意味的是,就在這本書面世的當天,負責此書的編輯卻被解僱了,理由是“不理解計算機出版業”。
儘管Van Nostrand出版社對我這本書的編輯的判斷力有如此的看法,但《心理學》這本書還是迅速成為了技術類書籍中的暢銷書,前後共印刷了20次,在超過25年的時間內一直在印刷。後來Van Nostrand將這本書以及他們所有的計算機圖書的著作權都賣給了另一家大出版社——而這本書因為印刷中斷,連續幾個月缺貨。在與這家出版社經過幾乎是沒有盡頭的談判之後,我重新獲得了這本書的著作權,並請Dorset House出版社來出版這本書的銀年紀念版。
我之所以要出版這本銀年紀念版,是出於以下幾個原因:
1.讓新一代軟體人能夠讀到這本書的原版;
2.提供一個從歷史的視角來審視這個年輕領域的機會;
3.利用這一生只有一次的機會,對軟體行業的發展做一個評述,並對我以前的想法做一次反思。
在這個新版本中,我並未對軟體心理學方面進行更新。其中的一個原因是,Ben Shneiderman和其他人在這方面做得比我強多了。另外一個原因是,正如Ben曾經評價的,這本書確實與其說是談論軟體心理學的,倒不如說是談論軟體人類學的——這兩個主題在我後續撰寫的書里都做了進一步的討論。
最重要的是,我想通過重新審校這本書並記錄我的想法,來停下腳看看這25年以來我和軟體業已經走了多遠。儘管本書第一版也許不能稱之為這個行業的轉折點,但它的確是我自己的一個轉折點。從那時起,我便很少編寫代碼,很少做團隊管理工作了。從另一方面來看,我卻培訓了成千上萬的程式設計師和團隊領導,並為幾百個軟體項目提供了諮詢。我把更多的精力用於代碼評審、設計方案、設計方案評審、了解需求和評審需求等工作。除此之外,我還特別傾注了大量時間來培訓那些可能成為軟體主管的人,並為他們提供諮詢。然而,我有時仍然想回到以前那種全職程式設計師的簡單生活中去,而不需要考慮這么多其他事務。這種想法在軟體行業中很普遍,但是很少有人會這樣做。
現在,我清楚地看到,這本《心理學》第一版實際上是我自己所做研究(例如對團隊、領導能力、問題解決方法,以及問題定義等的研究)的一個路線圖。這些主題非常重要,但又沒有被很好地理解。我用了20多年的時間來豐富這些主題的細節內容。回顧那些我在《心理學》之後
寫過的書,我發現自己確實在填補這些“空洞”。請允許我以時間順序列出這些書:
1973:Structured Programming in PL/C, An Abecedarian是嘗試以一種全新的方法教授程式開發和編寫程式文本的實驗成果。1
1975:An Introduction to General Systems Thinking直接探詢了深入思考系統的思考過程2(這本書在隨後的20多年中一直不斷地重印)。
1975:Structured Programming3。Dennis Geller、Tom Plum和我一同編寫了這套獲獎的結構化程式設計系列叢書,它再次探詢了一些關於思考和教授程式開發的一些新方法。
1976:High-Level COBOL Programming試圖將COBOL程式設計師的思維過程轉換為新的模式。4也許此書沒有收到效果。
1977:The Ethnotechnical Review Handbook。Daniel Freedman和我自己出版了這本手冊的第一版,試圖激勵並教授人們在開發的各個階段閱讀程式。在當時,沒有一家商業出版社願意出版關於技術評審這類話題的書。(這本書的最新版本仍在重印發行。5)
1977:Humanized Input: Techniques for Reliable Keyed Input是一本較早研究人機互動設計的先驅之作。6
1979:The Ethnotechnical Review Handbook進行了改版,加入了大量我們在閱讀和分析程式的過程中學習到的東西。
1979:The Principles of Specification Design: Film Series and Workbook是我與Bob Marcus一同編寫的,代表了我們在改善問題定義方面所做的首次嘗試。7
1979:On the Design of Stable Systems是我與搭檔Dani Weinberg一同編寫的,此書將思維模式延伸到如何設計有生命力的系統中。(這本書的第二版仍在印刷,書名為General Principles of Systems Design。8)
1982:Are Your Lights on? How to Figure Out What the Problem Really Is。Don Gause和我在此書中繼續進行了問題定義方面的研究。這本書在這個領域中仍然是一本很受歡迎的入門讀物。9
1982:Rethinking Systems Analysis & Design討論了系統分析師們如何思考,或應該如何思考。10
1982:Understanding the Professional Programmer討論了程式設計師們如何思考,或應該如何思考。11
1985:Computer Information Systems: An Introduction to Data Processing。Dennis Geller和我在本書中,對軟體工作的教授方法以及思考過程做了進一步的探索研究。12
1985:The Secrets of Consulting講述了軟體開發人員(以及其他人)和他們的客戶之間的諮詢關係。這本首創新穎的書直到今天仍然銷售火爆,說明了諮詢業有一定的普遍規律。13
1986:Becoming a Technical Leader繼續深入探討了領導和團隊的話題,而且至今仍然銷量可觀。14
1989:Exploring Requirements: Quality Before Design。Don Gause和我一同編寫,在更深的層次上探討了問題定義這一主題。15
1991:What Did You Say? The Art of Giving and Receiving Feedback。與Edie和Charlie Seashore一同編寫,總結了人們在來回傳遞信息時是如何互動的。16
1991—1997:Quality Software Management系列書籍,共4冊,囊括了我所掌握的關於軟體開發和軟體人員管理的所有知識。這套系列叢書對系統的思考、測量、行為和變化等方面進行了心理學方面的探索。17
直到完成Quality Software Management系列叢書之後,我才感覺到對自己在四分之一個世紀前開始探索的問題有了一個結論。回顧這些年,尤其是從《心理學》第一版的角度回顧,我發現自己最終成為了一名比自己預料的還要蹩腳的預言家。但是值得表揚的是,我已料到自己將會是一個比自己預料的還要蹩腳的預言家。事實上,這正如任何一次技術評審一樣——比我希望得差勁,但還是比我擔心的情況要好一些。
至於這本銀年紀念版,我決定採納自己常在技術評審時給別人的建議:我不會試圖掩藏我的錯誤,因為這些錯誤對我的讀者而言可能是最有價值的收穫來源。我對原始版本未做任何改動——原汁原味,全盤保留——以供您參考,我只是在思想受到觸動的地方加入了一些“事後諸葛亮”式的評註。我希望通過這個時間穿梭式的前後對比,能帶給您一些啟示,只要能夠對您有些許幫助,我就會感到莫大的寬慰。
第一版序言
這本書的主要目的只有一個——引發大家對一個全新領域的研究,這個新領域就是作為人類活動的電腦程式開發,或者簡而言之,就是程式開發心理學。所有的其他目標都從屬於這個主要目的。例如,我盡力讓這本書看起來生動有趣,而不是那么太強調技術,以便讓更多的人願意閱讀這本書,讓讀者不是只有程式設計師,還有程式開發的主管,以及那些如今以各種方式與編程相關聯的人們。我努力實現的目標,就是讓讀者在讀過這本書後會說:“是啊,程式開發不僅僅是一件只與硬體和軟體有關的事。從現在起,我要換個角度看待這些事情了。”
因為這是一個全新的領域——用全新的方法看待我們熟悉的事物——所以不可能總有“科學的”證據來支持某些觀點。事實上,本書中的許多觀點僅僅是作者的意見——常常是很堅定的意見,這些意見除了我多年的個人觀察之外,並沒有其他什麼更好的理論基礎。毫無疑問,這些觀點中有很多顯然存在錯誤,就如同證據更多的許多觀點也會有錯誤一樣。但是,錯誤的觀點與無用的觀點之間存在著天壤之別。如果哪位讀者對我在書中表達的觀點有疑問,我誠懇地希望他能夠用實驗證明我的謬誤。
正如我希望在文中用眾多實例證明的那樣,大量的偏見和誤解阻礙著我們這個行業的發展。我和我的學生們已通過極其簡單的實驗,對這些偏見和誤解發起了挑戰。然而我們的資源非常有限,而問題卻是如此巨大。據各種方法估計,當今從事程式設計師工作的人已達數十萬。如果我們的經驗能起到一些指導作用,讓這些程式設計師和他們的主管能將程式設計師作為一個人,而不是又一台機器來看待,那么這些程式設計師的工作將會更加高效,並且從工作中得到更大的滿足。
我相信,如果我們能用心理學的觀點來看問題,那么我們的硬體和軟體設計也會取得巨大的進步。希望這本書能鼓勵設計師們將這個新的視角加入到他們的設計理念中。我並不指望本書中有限的想法和思索能夠給他們提供所需的所有信息,而只是希望本書能夠啟發他們找到新的信息源。時至今日,程式開發儘管在工程或者數學層面已經比較成熟了,但是在心理學層面上卻仍然非常稚嫩,所以即使是心理學方面的微小進展,也會帶來巨大的幫助。我自己以及我的學生在教授、學習和進行程式開發時套用心理學的經驗,就很好地證明了這一點。我希望每一位讀者都能親自感受一下這種體驗。
閱讀本書時,你會很容易看出本書中的思想來自很多人,其中很多都是我的學生,他們來自IBM公司設在紐約、日內瓦以及紐約州立大學賓厄姆頓分校的系統研究所。正是由於在十多年間有幸在學生中結識如此眾多的第一執行緒序員,才讓我有機會將我個人的種種經歷擴展成各種各樣的程式開發情景。這對於任何一個人來講,恐怕終其一生都不可能有如此豐富的經歷。無需多言,為了保護那些清白或者有過失的人,我們對這些經歷中的一些進行了適當的處理。
如果沒有與我的學生們進行長時間的討論,如果沒有他們那些豐富而又極具啟發性的實驗,那么這本書就不可能完成。而假裝謙虛地說,本書所有的錯誤都是我自己的,這樣做毫無意義——因為毫無疑問,一些與我有關的經歷被這樣那樣地誤傳了。我的責任是,採納這些經歷來支持某些觀點——正如讀者的責任是根據自己的經歷和需要,對每個觀點進行判斷。我最不希望看到的是,讀者把這本書中的所言所想奉若神明——這正是我們要竭力摒棄的一種態度。這本書的內容只是供給思考的食物,而不是個人思考的替代品。
我想在此感謝那些為我個人,為本書貢獻良多的學生們。同樣感謝我所有的老師和我的朋友們。老師、朋友和學生——其實每個人都兼具這三種身份,我也希望他們每個人都能這樣看待我,把我作為他們的良師益友兼學生。我要把這本書獻給他們,我的感激之情不僅限於獻辭那一頁上,而且已融入於每句話和每個段落中。我要感謝我的妻子,她不僅照顧我的日常起居,還從一位人類學家的角度,逐頁閱讀了這本書。我對她的感激,用言語遠遠不足以表達。
Gerald M. Weinberg
第一版序言 評註
這本書的主要目的只有一個——引發大家對一個全新領域的研究,這個新領域就是作為人類活動的電腦程式開發,或者簡而言之,就是程式開發心理學。
四分之一個世紀之前,第一版的序言這樣寫道。這些年來有哪些變化呢?這個我當時自負地定下的目標,是否已成功實現了呢?
是啊,我又年長了25歲,即使沒有變得更加聰明,至少更加謙虛了。現在確實有許多人都在將電腦程式開發當作一項人類活動來研究,但是我卻不敢說,正是這本書開啟了這樣一個全新的領域——無論它是否真的可以稱作一個“領域”。
教材使用建議
奧斯卡王爾德曾經在許多場合宣稱,他能夠就任何主題侃侃而談半個小時,而不用事先準備。當一位聽眾為了刁難他,請他談談“女王”時,他高傲地回答道:“先生,‘女王’不是一個主題。”
即便對於王爾德這樣健談的人,都很難對一個不能做主題的事情展開談論。很多人並不相信程式開發心理學是個話題。當然,幾乎沒有哪所大學開設這門課程,所以任何一位想開先河的先驅都會面臨一條艱難的道路。一本像本書一樣的教科書應該能給這些人提供一些幫助,但至少對於首次嘗試而言,對本書的使用提一些建議,應該不算過分。
這本書是伴隨著一門名為“程式開發心理學”的課程而逐步完成的。這門課程是為我們計算機系統方向的研究生設定的,這些學生都有一定的編程經驗,而且至少已接受了一年的研究生教育。這門課程並不適合那些尚不能獨立編寫程式的人,也不適合向研究生以下年級,以及主修計算機系統或計算機科學專業的本科高年級學生開設。
這門課程是以討論課的形式傳授的,因為對於那些懂得如何閱讀書籍的人,我並不想採用課堂講授的形式。這門課程要上兩個學期,每學期各兩個學分,這樣安排是為了儘量讓學生們有足夠多的時間來親身體驗一下。每位學生都需要設計並完成一個小實驗,其中一些實驗對本書的貢獻很大(書中提到了很多這樣的實驗)。這門課程每周上一次,每次上2個小時或者更長,上課之前學生們需要閱讀教材或相關的資料,為特定的討論主題做好準備。
關於課外讀物,我有一個建議。由於很多參考資料都是發行量很少的出版物,或是不公開的技術報告,所以我會事先複印這些閱讀資料,並發給每一位學生。這種方式似乎可以鼓勵學生們有規律地完成閱讀作業。
我們在進入“如何研究程式開發”的主題時,有些急於求成,因為很少有學生具備行為科學方面的基礎,更別說行為科學方面的實驗了。只有在這些方面做好準備之後,學生們才能夠開始他們的項目,而我們才能夠繼續講授後面的內容。雖然沒有必要讓這門課程要求每個學生都做實驗,但是如果學生們需要做實驗,這種情況下盡力讓他們早一些開始就非常重要了。
如果不要求或者不希望學生們做實驗,那么這門課程也剛好可以放在一個學期中教授——無論是以討論的形式,還是以課堂講授的形式。在任何情況下,我都強烈建議每周至少進行一次討論,每章末尾的問題題可以作為準備討論主題的指導——可以要求學生做筆記,或為他們布置書面作業。
使用本書的另一種方式,是開設一周或兩周的集中培訓課程,如暑期學院或管理培訓研討會等。在這樣的課程中,只能取消實驗,不過仍然可以通過一個讓學生充當研究對象的簡單實驗,使他們體驗一下實驗的過程。本書中建議的實驗有很多,其中任何一個都適合這種培訓課程,但是如果需要滿足時間上的限制,就必須事先做好充分細緻的準備。類似地,由於時間有限,所以要保證每位學員都能得到一份完整的閱讀材料。最後,如果只是為了緩解學生的學習壓力,可以將討論分散開,安排到每次課堂講授之後進行。對於由富有經驗的程式設計師或程式設計師主管組成的班級,討論就顯得尤為重要,因為他們在討論中相互學到的東西,並不比從教員或者教材那裡學到的少,甚至可能會更多。對他們而言,討論的主題非常重要,而且非常貼近他們的工作,所以只要教員稍加引導和組織,課程的成功就能得到保證。
目錄
《銀年紀念版》前言 XVI
第一版序言 XXVI
第一版序言 評註 XXX
教材使用建議 XXXIII
第一篇 作為人類行為的程式開發 1
第一篇 作為人類行為的程式開發 評註 7
第1章 閱讀程式 9
一個例子 11
計算機的局限性 13
語言的局限性 17
程式設計師的局限性 19
歷史問題 21
規範 23
小結 25
參考資料 27
第1章 閱讀程式 評註 29
第2章 優秀程式的要素 31
技術規範 35
進度計畫 39
適應性 41
效率 45
小結 51
問答題 51
參考資料 53
第2章 優秀程式的要素 評註 55
第3章 研究程式開發的方法 59
自省 61
觀察 65
實驗 69
心理學測量標準 75
利用行為科學的數據 81
小結 83
問答題 85
參考資料 87
第3章 研究程式開發的方法 評註 93
第二篇 作為社會行為的程式開發 99
第二篇 作為社會行為的程式開發 評註 105
第4章 程式開發組 109
正式與非正式的組織機構 109
物理環境和社會組織 115
錯誤和自我主義 119
無私的程式開發 127
創建和維持程式開發環境 135
小結 143
問答題 143
參考資料 145
第4章 程式開發組 評註 149
第5章 程式開發團隊 155
團隊的組建 157
設立和接受目標 165
團隊領導及其領導地位 177
危機中的團隊 191
小結 203
問答題 205
參考資料 207
第5章 程式開發團隊 評註 211
第6章 程式開發項目 217
在改變中保持穩定 219
衡量績效 227
項目結構 239
大型項目中共同的社會問題 245
小結 251
問答題 253
參考資料 257
第6章 程式開發項目 評註 261
第三篇 作為個人行為的程式開發 265
第三篇 作為個人行為的程式開發 評註 271
第7章 程式開發任務的差異 275
專業的與業餘的程式開發 277
程式設計師想要做什麼 285
程式開發工作的階段 297
小結 307
問答題 307
參考資料 311
第7章 程式開發任務的差異 評註 315
第8章 個性因素 317
個性的改變 321
個性中始終如一的部分 325
關鍵的個性特徵 331
個性測試 341
程式設計師的個性測試 347
小結 351
問答題 351
參考資料 353
第8章 個性因素 評註 357
第9章 智力,或問題解決能力 359
心理定勢 361
問題求解的一些維度 365
程式開發的智力因素 369
智力測驗 377
程式設計師的智力測驗 379
小結 389
問答題 391
參考資料 391
第9章 智力,或問題解決能力 評註 397
第10章 積極性、培訓與經驗 401
積極性 403
培訓、課程學習與教育 409
學習的阻力 417
如何學習程式開發 427
小結 437
問答題 437
參考資料 439
第10章 積極性、培訓與經驗 評註 443
第四篇 程式開發工具 447
第四篇 程式開發工具 評註 453
第11章程式開發語言 457
程式開發語言與自然語言 459
程式開發語言的設計 467
小結 475
問答題 475
參考資料 477
第11章 程式開發語言 評註 481
第12章 程式開發語言設計的一些原則 485
一致性 487
簡潔性 499
局部性與線性 509
傳統與創新 515
專用的、多用的以及玩具式語言 525
小結 533
問答題 535
參考資料 537
第12章 程式開發語言設計的一些原則 評註 543
第13章 其他程式開發工具 547
程式測試工具 549
作業系統 557
分時與批處理 573
文檔 579
小結 595
問答題 595
參考資料 599
第13章 其他程式開發工具 評註 605
第五篇 結語 611
第5篇 結語 評論 619