《程式設計師的吶喊》讀書筆記
《程式設計師的吶喊》是Google一位老程式設計師的經驗總結,文中展現了他對各大語言如Java、C/C++、Lisp、Python、Ruby、Perl等的極端觀點,比如大力吐槽C++,極力推崇C、Lisp、Ruby。他的觀點只是他個人經驗所得,也不一定符合實情,僅供參考,有任何想法都可以說出來一起討論。
me:龐大程式碼庫是很多公司都有的弊病吧,可又有多少能想到用DSL來解決呢。害怕變動、拒絕新技術的公司註定是失敗的。
me:作者是有多麼討厭C++啊!“親近生侮謾“的意思是當你對一個人或事物越親近越熟悉,你就會越討厭越忽視TA。而作者認為計算機語言裡不會發生這種事情,除非你知道了其它更優秀的語言。我贊同這個觀點。
5、亞馬遜的偉大元老們只用兩種語言:C和Lisp。顯然,他們都是Emacs的擁躉。
me:的確很多程式設計界的大佬都愛這兩門語言,比如《黑客與畫家》的作者。
me:Java好在垃圾自動回收,壞在臃腫不堪,語言本身設計的不好。
me:Ruby本質上就是各種語言精華的大雜燴,去蕪存菁,作者精通這麼多語言的精華非常值得敬佩。現在的框架也是的,都是互相之間借鑑精華,按需索取,無可厚非。
10、福勒告訴我們所謂重構,就是通過迭代,將噁心的程式碼變成優質程式碼的藝術和科學,是能妝點程式碼卻不會在操作過程中產生破壞的演算法,而且正確性都是能證明的。
me:作者喜歡Ruby,覺得Java需要重構是因為程式碼寫的爛,要是用Ruby寫的話根本不需要重構,也就沒有自動化重構工具。
me:原來一門語言的流行起關鍵作用的不是這門語言有多優秀,而是它的營銷做的有多好。嗯,我記得Java就是營銷搞起來的。
me:作者的意思是Python眾狂妄自大,而Ruby相對比較坦誠,這是作者通過經過逛兩個社群得出的結論,也不一定準確。
16、Java並沒有提出什麼新鮮的東西,它有的SmallTalk早就有了。
17、相反我卻親眼見識了日本服務生為了滿足那些在商務旅行中的醉漢所作出的努力,他們的敬業程度讓我這個美國人都感到羞愧。如果要問世界級的服務水平是什麼樣的,來日本看看就明白了。
18、最終讓Java平臺佔領了那些它做夢也沒想到過的領域,一切都虧了這個所謂的“殺手級應用”Applet。
me:不會吧???沒聽說過Applet這麼厲害,一直覺得它是雞肋。
1、實際生活中,電腦科學家常用的數學和上面那個列表幾乎沒有重疊。其一,小學和中學裡教的絕大部分數學都是連續的,也就是實數上的數學。而對電腦科學家來說,95%有趣的數學都是離散的,也就是整數上的數學。
me:程式設計師所要解決的數學問題一般都是離散數學,其中最有用的課程應該就是組合數學和概率論統計。
1、我在招人的時候有一個訣竅。就是在尋找優秀的軟體工程師“通才”的時候,通常在簡歷上你可以看到到各種讓你覺得不行的關鍵字和詞,但“編譯器”是我唯一感興趣的詞。
編譯過程中第一個大階段就是解析,即把輸入的內容變成一棵樹。中間要經過預處理,詞法分析(也叫單詞化)然後是語法分析和中間程式碼生成這幾個步驟。詞法分析通常是由正規表示式來完成的。語法分析則是根據語法完成。你可以採遞迴向下(最常見)或是解析器生成器(在小語言中比較常見)或是更炫的算來實現,只不過相應的執行速度也會慢一點。無論如何,最後的結果通常都是某解析樹。
第二個大階段是型別檢查。這是一群狂熱的學術分子(包括他們的組織以及或者手下的研究生)他們自信可以寫出非常聰明的程式,能分析出你的程式想幹什麼,並且在你出錯的時候幫你指出。不過奇怪的是,他們並不覺得自己是在研究人工智慧畢竟人工智慧界已經(明智地)放棄確定性的方法了。
第三個陣營是程式碼生成,他們通常都被邊緣化了。只要你對遞迴有足夠的瞭解,知道自己的祖先不是亞當和夏娃,那麼程式碼生成還是挺直觀的。這裡要講的其實是優化就是那種生成足夠正確的程式碼,讓絕大多數使用者都意識不到有問題的藝術。等等不好意思,這是亞馬遜化。優化是指根據你那些昂貴的菜鳥程式設計師寫出來的垃圾程式碼生成“正確”程式碼的藝術。
1、軟體工程有自己的政治軸心,—端是保守派,另—端是自由派。
相關文章
- 一個程式設計師的讀書筆記:程式設計的反思程式設計師筆記
- 《程式設計師的自我修養》-讀書筆記程式設計師筆記
- 讀書筆記 - 《程式設計師的自我修養》筆記程式設計師
- 《程式設計師自我修養》讀書筆記程式設計師筆記
- 《程式設計師修煉之道》讀書筆記程式設計師筆記
- 卓有成效的程式設計師 讀書筆記程式設計師筆記
- 一個程式設計師的讀書筆記——關於程式設計的反思程式設計師筆記
- 高效程式設計師的45個習慣 讀書筆記程式設計師筆記
- 《程式設計匠藝》讀書筆記程式設計筆記
- 《設計師要懂心理學》讀書筆記筆記
- 《JavaScript程式設計精解》--讀書筆記JavaScript程式設計筆記
- 《Java程式設計思想》讀書筆記一Java程式設計筆記
- 讀書筆記-Java程式設計思想-03筆記Java程式設計
- Java遊戲程式設計讀書筆記(轉)Java遊戲程式設計筆記
- 反應式程式設計讀書筆記程式設計筆記
- 專案管理-吶喊薦專案管理
- 吶喊-中年失業自白
- 《做自己的生命設計師》讀書筆記(未完待續)筆記
- 《程式碼整潔之道——程式設計師的職業素養》讀書筆記(一)程式設計師筆記
- CSAPP 併發程式設計讀書筆記APP程式設計筆記
- C#高階程式設計 讀書筆記C#程式設計筆記
- 程式設計師生存指南讀書筆記-第三篇(學習)程式設計師筆記
- 《程式設計師修煉之道:從小工到專家》讀書筆記程式設計師筆記
- 程式設計師修煉之道——第一章讀書筆記程式設計師筆記
- 程式設計師的讀書歷程程式設計師
- 《重構:改善既有程式碼的設計》讀書筆記筆記
- 《重構-改善既有程式碼的設計》讀書筆記筆記
- 【讀書筆記】Java併發程式設計的藝術筆記Java程式設計
- 《重構,改善既有程式碼的設計》讀書筆記筆記
- 《Go 語言程式設計》讀書筆記(十一)底層程式設計Go程式設計筆記
- 程式設計師生存指南讀書筆記-第四篇(生產力)程式設計師筆記
- 程式設計師修煉之道——從小工到專家讀書筆記3程式設計師筆記
- 《程式設計師修煉之道:從小工到專家》讀書筆記 02程式設計師筆記
- 程式設計師修煉之道——從小工到專家讀書筆記2程式設計師筆記
- 《寫給大家看的設計書》讀書筆記筆記
- 《Go 語言程式設計》讀書筆記(四)介面Go程式設計筆記
- 《Go 語言程式設計》 讀書筆記 (八) 包Go程式設計筆記
- 《Go 語言程式設計》讀書筆記(十)反射Go程式設計筆記反射