-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

程序開發心理學(銀年紀念版)

( 簡體 字)
作者:鄧俊輝類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社程序開發心理學(銀年紀念版) 3dWoo書號: 41676
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:7/1/2015
頁數:364
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121258589
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

銀年紀念版序言
《程序開發心理學》是一本令人稱奇的書——其令你感到奇特的程度,不亞于你聽說
有人能夠活到 125 歲時的感受。我們所從事的這一行發展得飛快,據我所知,還沒有其
他任何一本計算機方面的圖書,在初次出版之后,能夠在長達 25 年的歲月中一直保持活
力——而且這種活力到今天仍在繼續。
令我自己更為驚訝的是,在寫作本書時,我根本沒想到它會有什么與眾不同之處。
在那之前的 15 年內,我一直在編寫代碼、帶領程序員小組,以及為程序員提供培訓和咨
詢服務。我確實曾經考慮過寫一部關于計算機程序開發(在那時這項工作還鮮為外人所
知)的小說,不過我意識到自己當時的寫作技巧實屬貧乏,寫出來也不見得有人會信。
我于 1969 年赴意大利休假八周,其間靈感突發,于是寫成了《程序開發心理學》的初稿。
那時,我已經出版過幾本關于如何為不同計算機開發程序的書,非常暢銷,但是這
本關于心理學的書對我來說卻是一次新的探險。為了這本書的出版,我經歷了許多挫
折——有些是我在此前出版書籍時所不曾經歷的。截至當時, McGraw-Hill 一直是我的出
版商。這家出版社請了幾位審閱人,他們看過我的手稿之后一致認定,沒有人會愿意買
這本書。于是我又轉向 Prentice-Hall,他們勉強同意出版——但前提是,我必須同時把我的幾本很賺錢的書也交由他們出版。我覺得還是找一家更為熱情的出版社為好,因此又
將書稿同時交給四家出版社進行評閱。到這時,時間已經過去了兩年,因此我決定哪家
出版社首先表示愿意出版此書,我就交給它出版。最后四家出版社都表示愿意,但是其
中最早回復我的一家出版社是 Van Nostrand Reinhold——在 1971 年,這本書終于付梓出版了。具有諷刺意味的是,就在這本書出版的當天,負責此書的編輯被解雇了,理由是
他“對計算機出版一無所知”。
無論 Van Nostrand Reinhold 出版社對這位編輯如何評價, 這本書很快就在技術類書籍
中成為佼佼者,先后重印了 20 次,并且在 25 年之后仍在不斷印刷。最后 Van Nostrand
Reinhold 出版社將本書及他們所有的計算機圖書的版權都轉讓給了另外一家大出版社——
在此后的數月內,這本書就因為印刷中斷而脫銷。經過了幾乎是遙無盡頭的艱難談判,
我終于重新獲得了這本書的版權,并委托 Dorset House 出版社出版本書的銀年紀念版?。
我之所以要出版這本銀年紀念版,是基于以下幾方面的考慮。
1.讓軟件行業的新一代人士可以讀到本書的原版。
2.這一領域依然很年輕,我希望能夠從歷史發展的角度,為這一領域提供一些其所
急需的縱覽性觀點。
3.利用這個千載難逢的機會,對軟件產業的發展做一評述,并對我以前的思想做一
反思。
在這個新版本中,我并不想在軟件心理學方面進行更新。首先, Ben 等人已經在這方
面頗有建樹,其水平遠在鄙人之上。其次,正如 Ben 曾經評價的,實際上這本書談論得
更多的并不是軟件心理學,而是軟件人類學——在后續的幾本書中,我在這兩個方面都做
了展開論述。
在重新審視本書時我的感受頗多,我認為至關重要的一點是,我希望能夠暫時駐足
片刻,以體會一下在過去的 25 年間,我自己及軟件產業究竟前進了多遠。對于軟件產業
而言,本書的第一版也許不能稱作一個轉折點, 但對我自己而言,它的確是一個轉折點。
從那時起,我編寫的代碼少了很多,而且也更少參與對程序員團隊的管理工作。然而另
一方面,我卻為成千上萬的程序員及其團隊的主管做了培訓,并且為成百上千的軟件項
? Silver Anniversary Edition,銀年紀念版,即 25 周年紀念版。——譯者注
目提供了咨詢。我開始把更多的精力用于審查代碼、設計方法、審查設計方案、了解需
求及匯總需求。與此同時,我還專門花了很多時間,去培訓那些有可能成為軟件經理的
人,并為他們提供咨詢。有時我也確實會想回到從前的生活方式,那種整天唯一的工作
就是編寫代碼的生活方式非常簡單,不像現在這樣需要兼顧這么多的其他事務。在軟件
產業界中,這是一種非常普遍的感受,盡管如此,卻很少會有人按照自己的真實意愿身
體力行。
如今,我可以明確看出的一點是,這本書的第一版實際上就是一張關于我自己所從事的研究方向(比如團隊、領導藝術及方法、問題求解及問題定義等)的領航圖。我把此后 20 多年的時光,都用于將這些大題目具體化,因為這些問題非常重要,卻沒有很好地為人們所理解。縱覽自己在本書之后出版的一系列其他書籍,我覺得自己的確在致力于填補這些“空洞”。請允許我在此按照出版時間列出這些書的名字。
1973: Structured Programming in PL/C, An Abecedarian?。針對程序開發技術及編寫程序開發文本的新式教學方法,我們進行過一項實驗。這本書中匯集了這項實驗的成果。
1975: An Introduction to General Systems Thinking?。這本書直接考察了關于系統思想的各種深入思考過程。(首印 20 多年之后,這本書仍在重印。)
1975: Structured Programming?。 Dennis Geller、 Tom Plum 和我一起寫成的這本書,榮獲了結構化程序設計系列叢書獎。這本書中再次就程序開發思想及其教學的新方法進行了探討。
1976: High-Level COBOL Programming?。寫作這本書的目的,在于幫助 COBOL 的程序員轉變思維方式,但這一目標似乎并未實現。
? Gerald M. Weinberg, Norie Yasukawa Freedman, and Robert Marcus, Structured Programming in PL/C:
An Abecedarian (New York: John Wiley & Sons, 1973).
? Gerald M. Weinberg, An Introduction to General Systems Thinking (New York: Wiley – Interscience,
1975).
? Dennis P. Geller, Naomi Kleid, Thomas W-S. Plum, and Gerald M. Weinberg, Structured Programming:
A Film Series and Workbook (Kansas City, Mo.: Edutronics Systems, 1975).
? Gerald M. Weinberg et al., High-Level COBOL Programming (Cambridge, Mass.: Winthrop, 1977).
1977: The Ethnotechnical Review Handbook。 Daniel Freedman 和我自掏腰包,出版了
這本手冊的第一版。寫作這本書的目的,是希望激勵人們,使他們在程序開發的每個階
段都去閱讀程序,并且使他們學會如何閱讀程序。在當時的情況下,面向市場的出版商
中沒有哪家愿意花錢出版這種技術評述性的圖書。(這本書的最新版仍然在重印發行。 ?)
1977: Humanized Input: Techniques for Reliable Keyed Input?。這本書是在人性化界面設計方面的一次早期嘗試。
1979: The Ethnotechnical Review Handbook。這本書后來做了重新修訂,增添了我們
后來在閱讀及分析程序方面所學到的無數內容。
1979: The Principles of Specification Design: Film Series and Workbook?。這本書是與Bob Marcus 合作完成的,它代表了我們在改進問題定義方面的首次突破性成果。
1979: On the Design of Stable Systems。這本書是與我的妻子 Dani Weinberg 一起完成的。它將思維模式進行外推,以確定為了生存下去系統應該如何設計。(這本書的第二版仍在印刷發行,書名改為 General Principles of Systems Design?。)
1982: Are Your Lights On? How to Figure Out What the Problem Really Is?。 Don Gause和我合作完成此書,我們在此書中針對問題定義進行了深入研究,時至今日它依然是關于問題求解的一本暢銷書。
? 這本書最終定稿書名為: Daniel P. Freedman and Gerald M. Weinberg, Handbook of Walkthroughs,Inspections, and Technical Reviews, 3rd ed. (New York: Dorset House Publishing, 1990).
? Tom Glib and Gerald M. Weinberg, Humanized Input: Techniques for Reliable Keyed Input(Cambridge, Mass.: Winthrop, 1977).
? Robert Marcus and Gerald M. Weinberg, The Principles of Specification Design: Film Series and Workbook (Bowie, Md.: Brady Publishers, 1979).
? 本書當前的版本是: Gerald M. Weinberg and Daniela Weinberg, General Principles of Systems Design (New York: Dorset House Publishing, 1988).
? 本書當前的版本是: Donald C. Gause and Gerald M. Weinberg, Are Your Lights On? How to Figure Out What the Problem Really Is (New York: Dorset House Publishing, 1990).
1982: Rethinking Systems Analysis & Design?。這本書的著眼點在于系統分析員的思考方法,或者說他們應該如何思考。
1982: Understanding the Professional Programmer?。這本書的著眼點在于程序員的思考方式,或者說他們應該如何思考。
1985: Computer Information Systems: An Introduction to Data Processing?。 在這本書中,Dennis Geller 和我一起針對教學方法及軟件工作中的思維過程等問題做了進一步探討。
1985: The Secrets of Consulting?。這本書針對軟件開發人員(以及其他人員)與其客戶之間的關系進行了討論。這本書的創新之處大放異彩,直到今天它依然十分暢銷——這足以說明,在咨詢工作中有某種具有普遍性的原則可循。
1986: Becoming a Technical Leader?。這本書著重討論了領導方法及團隊等問題,至
今仍然銷路看好。
1989: Exploring Requirements: Quality Before Design?。這本書由 Don Gause 和我合作完成,我們在此書中將問題定義的問題探究到更深的層次。
1991: What Did You Say? The Art of Giving and Receiving Feedback?。這本書是與 Edie和 Charlie Seashore 合作完成的。在信息往返傳遞時,需要人性化的交互,本書總結了我們在這方面已經掌握的知識。
? 本書當前的版本是: Gerald M. Weinberg, Rethinking Systems Analysis & Design (New York: Dorset
House Publishing, 1988).
? 本書當前的版本是: Gerald M. Weinberg, Understanding the Professional Programmer (New York:
Dorset House Publishing, 1988).
? Gerald M. Weinberg and Dennis P. Geller, Computer Information Systems: An Introduction to Data
Processing (Boston: Little, Brown, 1985).
? Gerald M. Weinberg, The Secrets of Consulting (New York: Dorset House Publishing, 1985).
? Gerald M. Weinberg, Becoming a Technical Leader (New York: Dorset House Publishing, 1986).
? Donald C. Gause and Gerald M. Weinberg, Exploring Requirements: Quality Before Design (New York:
Dorset House Publishing, 1989).
? Charles N. Seashore, Edith Whitfield Seashore, and Gerald M. Weinberg, What Did You Say? The Art
of Giving and Receiving Feedback (Columbia, Md.: Bingham House Books, 1991).
1991—1997: Quality Software Management?。這是一套四卷的系列叢書。其中囊括了
在軟件成果及軟件人員的管理方面本人所了解的所有內容。通過這一叢書,我也在系統
的思想、測量、行為及變化等領域,從心理學的角度提出了新的課題。
直到完成了 Quality Software Management 系列叢書之后,我才感到自己在四分之一個
世紀之前開始著手研究的問題總算是有了一個總結。回顧這些年的發展過程,尤其是在
重讀本書的第一版時,我清楚地看到原來我是一個比自己預料中還要蹩腳的預言家,但
是值得表揚的是,我已經料到自己是一個比預料的還要蹩腳的預言家。實際上,這個問
題和所有的技術評論一樣——雖然比自己預料的要差一些, 但是比自己一直擔心的情形還
是要好一些。
在針對他人工作的技術評論中,我常給人家提一點忠告,對于本書的銀年紀念版,我也決定采納自己提出的這個忠告,那就是:決不要掩蓋自己的錯誤——因為,也許正是通過這些錯誤,我的讀者才會獲得更大的收獲。為了在這方面對讀者有所啟發,我力求保持最初版本的固有風貌——不折不扣、貨真價實的古董;同時,一旦靈魂受到震撼,我也會增加一些“事后諸葛亮式”的評注。我真誠地希望,你能夠透過這個現代歷史資料和文物的大雜燴獲得某些啟示,哪怕是能夠對你有些許的幫助,也是鄙人莫大的榮幸與寬慰。
Gerald M. Weinberg
? Gerald M. Weinberg, Quality Software Management, Vol. 1: Systems Thinking (New York: Dorset House Publishing, 1992); Quality Software Management, Vol. 2: First-Order Measurement (New York: Dorset House Publishing, 1993); Quality Software Management, Vol. 3: Congruent Action (New York: Dorset House Publishing, 1994); Quality Software Management, Vol. 4: Anticipating Change (New York: Dorset House Publishing, 1997).

原版序言
寫作本書的主要目的只有一個——啟動一個新的研究領域: 作為一種人類行為的程序
開發,或者簡而言之,程序開發心理學。所有的其他目標都從屬于這個主要目標。例如,
在力所能及的情況下,我會盡力增加本書的趣味性,同時淡化技術的味道,從而讓更多
人愿意閱讀它:這些人不僅包括程序員,也包括程序開發的主管;同時,因為我們現在
可以通過很多種方式參與到程序開發的過程中,所以還應包括與程序開發有關的其他所
有人。我努力希望實現這樣一個目標,即讓讀者在讀完本書之后評價說: “嗯,程序開發
的確不只是與軟硬件有關。從今往后,我將從新的角度看待這些問題。”
正因為這是一個新的領域——或者說是對那些已經為我們所熟知的事物的一種新的觀察方法——所以,我們還不能為其中的某些思想找到“科學的”依據。本書中的許多觀點,的確僅僅是作者的個人主張(而且是強烈的主張),然而除了本人多年以來的個人觀察之外,這些主張尚沒有更好的理論基礎。毫無疑問,其中很多主張中存在的錯誤是顯而易見的,即使是更有依據的一些思想, 也同樣可能存在謬誤之處。但是我想指出的是,錯誤的思想與毫無思想之間存在天壤之別。如果哪位讀者對其中的某個觀點另有高見,我真誠地希望他能通過實驗來證明我的謬誤。
正如我所希望的,書中給出的大量實例說明,大量的誤解與曲解阻礙了我們所從事的這個行業的發展。我和我的學生通過極其簡單的實驗,已經對此提出了挑戰。然而與問題本身的規模之廣相比,我們所提供的素材實在是太有限了。各種不同的統計數據都顯示出,今天擔任程序員工作的人已經有數十萬之眾。如果我們的經驗確實會對大家有所啟發,如果程序員及其主管在讀過本書之后,哪怕只是學會了將程序員當作活生生的人,而不是另外一臺機器來看待,那么這些程序員就將更高效地發揮作用,同時會對自己的工作更加稱心如意。
如果我們學會從心理學的角度看待問題,那么在硬件和軟件的設計方面,我認為我們同樣有可能取得巨大的進步。但愿設計師們在讀過本書之后,能夠學會運用心理學的原理指導其設計工作。當然,我并不指望區區一本書中的點滴思想和思索能夠為他們直接提供所有的信息,但愿他們能夠在本書的啟發之下,學會從其他渠道獲取信息。到目前為止,至少從工程或者數學的角度來看,程序開發仍然是一個深不可測的過程。然而實際上,這一過程與心理學有著血脈相連的關系,這種關系如此密切,以至于哪怕是在心理學方面的些許開竅,所帶來的幫助都是難以估計的。這個斷言并非無稽之談——我個人及我的學生們在教學、學習及程序開發時都會將心理學牢記在心,我們的親身經歷與切身體會都證實了這一點。我希望本書的讀者能夠通過自己的工作實踐,對這個斷言進行驗證。
本書中顯而易見的一個特點就是,其中的思想并非只來自我個人。實際上,這些思想都是在集成了很多人的經驗和智慧之后才形成的——這些人中有很多是我的學員, 他們來自 IBM 公司分別設在紐約、日內瓦,以及紐約州立大學賓厄姆頓分校的系統研究所。
在這十年之間,我有幸能夠在學員中結識如此之多的一線程序員;正因為如此,我才能
夠綜合形形色色的程序開發環境的特點,將自己的一管之見不斷擴充、完善——而要是憑
借一個人的力量,恐怕任何人畢其一生也不可能有如此豐富的經歷。有一點大家應該都
能理解,為了尊重(無論是清白的還是有過失的)當事人的隱私,我們將這些經歷做了
適當的加工整理。
如果沒有與學生們長期的相互砥礪,沒有他們豐富而且極具啟發性的經歷,這本書
是不可能完成的。另一方面我也覺得,如果出于謙虛的考慮而毫無原則地將書中的一切
謬誤都歸到自己的頭上,那也是毫無意義之舉。毫無疑問,因為這樣或者那樣的原因,
的確會有一些與我相關的經歷會被曲解。然而既然我已經采納了這些經驗,并且用來支
持書中的某些觀點,那么我就應該承擔這部分責任——類似地,由于讀者會根據自己的經
驗與需求,對書中的所有觀點進行權衡、取舍,所以讀者應該對此自行負責。如果說有
什么本來應該是我的最后一個愿望,那就是奢望書中提到的某些東西能夠為讀者接受,
甚至成為他們的信條——然而,我并不希望讀者在閱讀過程中貿然接受某種觀點,因為這
種讀書的態度正是我們應該努力戒除的。本書中提供的素材,只是讀者在自己思想形成
的過程中需要消化、吸收的食物,而不應該是個人思想的簡單替代品。
我想在此感謝我的各位學生、老師及朋友,感謝他們對我個人的幫助,以及對本書
的貢獻。對我來說,老師、朋友和學生實際上是一個整體,并且沒有區別,我也希望他
們這樣看待我。我要把這本書獻給他們,我的這種感激之情不僅限于獻辭那一頁上,而
是已融入于書的字里行間。我的妻子不僅在日常生活中給了我無微不至的關心,而且還
從一位人類學家的視角,閱讀了本書的每一頁。我對妻子的感情,僅僅通過獻辭是遠不
足以表達的。
Gerald M. Weinberg

原版序言評注
寫作本書的主要目的只有一個——啟動一個新的研究領域:作為一種人類行為的程序開發,或者簡而言之,程序開發心理學。
四分之一個世紀之前,序言的開頭這樣寫道。現在有什么變化呢?我在年少輕狂時
所定下的目標,是否已經達到?
唉,轉眼間已經老了 25 歲,即使沒有變得更聰明,至少我的銳氣也應該有所收斂。
現在確實有很多人已經開始把計算機程序開發當作一種人類行為進行研究,但是我卻不
敢妄言是因為在下的這一拙作, 才開啟了這個研究方向的大門——無論它是否真的可以被
稱為是一個“研究方向”。
關于本書用于教學和培訓的建議
奧斯卡·王爾德?曾經聲稱,無須在事先做任何準備,他都可以在任何集會場合,就
任何話題侃侃而談至少半個小時。當有一位存心刁難的聽眾請他就女王發表看法時,他
依然桀驁不馴地答道: “但是先生,女王并不是一個話題呀。”
如果談論的目標根本就稱不上是一個話題,那么即使是像王爾德這樣健談的人,也
無從談起;但是許多人仍然不相信,程序開發心理學的確是一個話題。毫無疑問,很少
有哪個大學開設這方面的課程,所以要是誰敢于第一個吃這個螃蟹,在大學中開辟這樣
一門新課程,其艱難之程度可想而知。像本書這樣的一本教材,肯定會為這些人提供一
些幫助,但是至少對于第一次嘗試而言,就如何使用本書向他們提出一些善意的建議,
應該不算過分。
本書是伴隨著一門名為“程序開發心理學”的課程而逐步完成的。選修這門課的都
是我們“計算機系統”項目中的研究生,他們都具有一定的程序開發經驗,并且接受過
至少一年的培訓。對于那些尚不能獨立編寫程序、大學尚未畢業,或者雖然主修計算機
系統或計算機科學專業,但是還沒有達到本科四年級水平的人來說,選修這門課并非明
智之舉。
本課程是按照學術研討會的形式進行的——因為在下自認為, 如果學生已經懂得如何
去閱讀,課堂講授完全就是多余的。本課程跨越兩個學期,每學期各兩個學分——這樣安
排的目的在于,可以使學生擁有盡可能多的時間,以積累個人經驗。課程要求每位學生
設計并完成一個小型實驗,其中的一些實驗對本書有過很大貢獻(在書中可以讀到有關
的介紹)。選課的學生每星期開一次研討會,每次兩個多小時,事先他們需要閱讀有關章
節,同時根據對應的參考書目,就特定的討論主題做好準備。
? Oscar Wilde,奧斯卡·王爾德( 1854—1900), 19 世紀后半期歐洲文學史上的著名作家。 1854年 10 月 16 日,王爾德出生于愛爾蘭的都柏林; 1900 年 11 月 30 日,王爾德在加入天主教會第二天過世,并安葬于巴尼厄公墓; 1909 年,王爾德的遺體移靈到拉雪茲神父國家公墓,長眠于此。 19 世紀后半期的愛爾蘭,依然還在英國的統治之下; 1937 年,愛爾蘭共和國成立; 1949 年,英國終于承認愛爾蘭獨立。所以有人說王爾德是愛爾蘭作家,也有人說王爾德是英國作家。無論如何,這位文學才子、詩人、戲劇家在文學上所取得的成就,不論是生前還是死后,都是舉世公認的;同時,他的同性戀問題也引起了人們的很大爭議。——譯者注
關于課外閱讀,我有一個很好的建議。由于有些參考資料屬于內部出版,或者是不
公開的技術報告,所以我們經常會事先為學生提供這些閱讀資料的復印件。這種方式似
乎可以使學生更有規律地進行課外閱讀。
我們在進入有關“如何研究程序開發”這一主題時,有點急于求成,因為很少有學
生會在行為科學方面有什么基礎,更不用說行為科學方面的實驗了。只有在這些方面做
好準備之后,學生才具有著手進行實驗的能力,同時我們才能夠繼續介紹后續的內容。
是否要求學生進行實驗,本課程沒有統一的規定。盡管如此,倘若的確要求這樣,那么
很重要的一點就是:要讓學生盡早動手。
如果不要求或者不希望學生進行實驗,那么這門課就正好可以按照一個學期的時間
來規劃——既可以采用學術研討會的形式,也可以采用課堂講授的方式。無論采用何種方
式,我都強烈建議在每個星期均花一段時間用于討論。為了準備這些討論,可以參考書
中各章后面所附的思考題來確定討論議題——可以要求學生做簡單的筆記, 也可以通過書
面作業的形式。
對于暑期學院或者是管理培訓研討會等高強度的培訓課程,由于其時間只有一到兩
周,所以這本書相應的用法也有所不同。在這種時間緊迫的情況下,我們只能忍痛割愛
地取消實驗。然而,還是可以通過一次簡單的實驗,讓學生作為主體,切實體驗一下實
驗的過程。本書中所建議的實驗不勝枚舉,其中任何一個都適宜于此類教學,但是如果
時間限制得很嚴,就必須在事先做好最充分細致的準備。類似地,由于時間緊迫,必須
保證每位學員都能夠獲得屬于自己的一整套閱讀材料。最后,為了緩沖學員的學習壓力,
可以將討論分散開,安排到每次課堂講授之后進行。如果學員已經是富有經驗的程序員
或程序開發主管,那么討論就顯得特別重要——因為他們在討論過程中互相提供的信息,
并不比從教員或者教材那里所獲得的少,甚至可能會更多。對于他們來說,這些議題非
常重要,而且非常貼近他們的實際工作,所以教員只需稍加點撥和組織,課程就將大獲
成功。
內容簡介:

本書出自軟件領域著名思想家,美國計算機名人堂首批成員之一的 Gerald M.Weinberg 溫
伯格之手。本書關注的是程序開發過程中人的因素,堪稱這一領域的開山之作。本書的初稿完成于整整 40 年前,作者當時慧眼獨具,前瞻性地提出了將程序開發作為一種人類行為來考察的觀點。幾十年來,本書已讓無數讀者從中受益,時至今日仍然是暢銷全球的經典之作。

目錄:

第一篇 作為人類行為的程序開發
1 閱讀程序 4
一個例子 6
機器的局限7
語言的局限 8
程序員的局限 9
歷史遺留問題10
規范11
小結 12
思考題 12
參考資料13
本章評注 14
2 優秀程序的要素 16
技術規范 18
日程計劃20
適應性21
效率 23
小結 26
思考題26
參考資料27
本章評注 28
3 如何研究程序設計 30
自省 31
觀察 33
實驗 36
心理學測量 39
利用行為科學中的數據 42
小結 44
思考題 45
參考資料 46
本章評注 50
第二篇 作為社會行為的程序開發
4 程序開發組 59
正式與非正式組織機構 59
自然環境與社會結構 62
錯誤與唯我獨尊 65
無私式程序開發 69
建立與維護程序開發的環境 73
小結 78
思考題 78
參考資料 80
本章評注 81
5 程序開發團隊 85
團隊的組建 85
目標的設定與認同 90
團隊的領導者及其領導方法 97
團隊中可能出現的危機 104
小結 111
思考題 112
參考資料 114
本章評注 115
6 程序開發項目 119
在變化中保持穩定性 119
績效評價 124
項目結構 130
大型項目中共同的社會性問題 134
小結 138
思考題 139
參考資料141
本章評注 143
第三篇 作為個人行為的程序開發
7 程序開發任務的差異 150
專業的與業余的程序開發 150
程序員想要做什么 155
程序開發工作的不同階段162
小結168
思考題 169
參考資料 170
本章評注 172
8 性格因素 174
瘋狂的轟炸機 174
性格的改變 176
性格中經久不變的部分179
關鍵的性格特征 182
性格測試 186
程序員的性格測驗 190
小結 192
思考題 193
參考資料 194
本章評注 195
9 智力水平及問題求解能力 197
心理定勢 197
問題求解的一些維度 201
程序開發的智力因素 203
智力測驗 207
程序員的智力測驗 209
小結 215
思考題 216
參考資料 217
本章評注 220
1 0 積極性、培訓及經驗 222
積極性 223
培訓、課程學習與教育228
學習的阻力 232
如何學習程序開發 237
小結 243
思考題 244
參考資料 245
本章評注 246
第四篇 程序開發工具
11 程序語言 253
程序語言與自然語言 253
程序語言設計 257
小結 261
思考題 261
參考資料 262
本章評注 264
1 2 程序語言設計的一些原則 266
一致性 266
簡潔性 273
局部性與線性 279
傳統與創新 283
專用的、多用的以及玩具式語言 289
小結 293
思考題 295
參考資料 296
本章評注 300
1 3 其他的程序開發工具 302
程序測試工具 302
操作系統 307
分時與批處理 315
文檔管理 319
小結 328
思考題 328
參考資料 330
本章評注 334
第五篇 結語
圖表索引 344
序: