1、軟體的任務是為了解決某一特定的問題,而軟體開發者的任務卻需要解決一系列問題。
2、溫伯格說,我們不能要求每個人都聰明異常,能夠解決所有難題;但是我們必須持續思考,因為只有如此,我們才能明白自己在做什麼。的確,只有明白我們在做什麼,我們或許才知道應該怎麼做吧。
3、「寫作本書的主要目的只有乙個——啟動乙個新的研究領域:作為一種人類行為的程式開發,或者簡而言之,程式開發心理學。」或許這是我閱讀本書的乙個大的前提吧,了解它的目的。
作為人類行為的程式開發
閱讀程式
4、管理人員清楚:在程式開發過程中,人也是乙個要素。當然,他們所關心的,往往不是如何去理解人的這種要素,而是如何去消除這一要素。
5、程式開發也是一種寫作的形式,它和其他的寫作形式沒有什麼兩樣。要學習寫作,最直接的途徑就是提筆寫作。的確,很符合我們現在的狀況,提高程式設計能力的唯一最實用的方法,無疑就是去程式設計,多程式設計。
6、閱讀**,就要不斷問自己同乙個問題:「這段**在這裡有什麼用?」這是我們讀懂一段**最好的辦法吧。
7、我們要仔細體會機器的侷限和語言的侷限、程式設計師的侷限。
8、由於未能通曉其使用的計算機、程式語言或他們自己,程式設計師們到底寫了多少冗餘的**?的確我們無法避免這個事實,但應努力去完善它。
9、之所以要研究人們編寫程式的過程,最重要的目的無非是為了提高程式的效率、使之更加緊湊、更加廉價或是更加易於理解。
10、高明的程式設計師善於通過演練和審查過程來發現有價值的東西,而那些自以為是的人卻不是這樣。正因如此,和司空見慣的情況一樣,高手越來越高,低手越來越低。
優秀程式的要素:技術規範、日程計畫、適應性、效率
11、在對程式的所有要求中,首當其衝的要求是它必須正確。
12、即使不考慮符合技術規範的問題,效率的問題仍然不是最重要的。程式開發中經常遇到的乙個問題是要符合開發的日程計畫,推遲完成的程式常常沒有意義。
13、乙個系統對某一特定環境的適應性越強,它適應新環境的能力也就越弱。
14、效率並不總能用計算機的執行時間來衡量——因為經常需要通過犧牲計算機的執行時間,來換取程式執行前後需要的時間。
15、在計算機執行時間與人工時間之間折衷,「因此我們期望,隨著歲月的推移,我們能夠聽到的關於效率的言論會越來越少——而與此同時,卻越來越多的強調有效性。」
如何研究程式設計:自省、觀察、實驗、心理學測量、利用行為科學中的資料
16、如果不去進行嘗試和努力,我們將永遠不可能成功。 「重要的是不要停止懷疑」
17、如果離開自省,調查就不可能獲得任何成果;而離開了廣泛的調查,自省的價值也很難在應用中令人信服。
18、「參與式觀察法」,融入到被觀察的文化氛圍之中而不會被察覺;與此同時,該文化得以繼續運轉,彷彿沒有任何外人在場一樣。
19、處理觀察到的龐大資料需要付出高昂的代價,為了降低處理的代價,乙個辦法就是設計一些實驗。
20、在任何乙個剛剛起步的領域,我們都可能會犯這樣那樣的錯誤,然而或許在其中,最大的錯誤就是因為過於謹小慎微而裹足不前。雖然我們需要盡可能的循規蹈矩,但是更重要的卻是要敢於進行試驗;只要敢於進行試驗,哪怕結果是失敗的,也要比什麼都不做更好。
21、來自不同個體的差異性,依然是破壞專案可**性的致命因素。
程式開發心理學閱讀筆記之三
就程式開發心理學而言,每個命題都有可能成為一條 定律 僅僅憑藉乙個關於自省的例子,還遠不足以作為支援其成為定律的證據。為了獲得一條 定律 我們必須對其原理進行研究,以便對其應用範圍做一界定 因為,每條定律都會受到這種限制。確實,通常對這種限定的了解,較之對定律本身的了解更重要 而只有對大量的案例進行...
程式開發心理學閱讀筆記之三
針對不同的程式和任務,程式設計師必須做出不同的反應和對待方案,比如專業和非專業的開發人員在面對同乙個問題時,所採取的態度和方法肯定是不相同的。而在乙個工作的不同開發階段,工作人員對待問題的方式也會不同,比如在需求考察 編輯 程式測試等這些過程中,我們必須用不同的視角去看待問題。而每個程式設計師的性格...
程式開發心理學
程式開發心理學 本文選自 程式開發心理學 一書 譯者序 能夠有幸翻譯weinberg 溫伯格 的這部作品,對於我來說實在是榮幸之至。溫伯格的大名自不必說,這位軟體領域著名的思想家,美國計算機名人堂首批5位成員之一,在全球的計算機界都享有極高的聲譽。他那獨特的視角和 遠矚的預見能力,使他的每部作品都熠...