對於編程思想和能力有重大提升的書有哪些?

比如深入理解計算機系統,計算機程序設計藝術,演算法導論,計算機程序的構造和解釋這些書,求推薦,,


其它隨便什麼書我都沒意見,但是看到有人推薦發布!軟體的設計與部署 這本書的中文版,我還是忍不了了。

敢問一下你真的看過這本書的中文版嗎?如果是的話,請解釋一下以下內容,都是讀書過程中照的照片:

這本書原版內容非常不錯,確實值得推薦。但是翻譯是我這些年讀過的書里最爛的,大概只有資深架構師才能知道譯者到底想說什麼。

奉勸所有想看這本書的人千萬不要看中文版!要看就看英文原版!!!切記!!!!

最後附上我自己的書單,所有五星的都值得一讀:Reading List

可能部分地區被牆了,對此我也很苦惱-_-


推薦幾本通用的,提升職業能力和意識的書,講技術更講實踐。

程序員修鍊之道:從小工到專家

持續交付:發布可靠軟體的系統方法

編碼整潔之道:專業程序員的行為準則(英文版)

發布!軟體的設計與部署

Working Effectively with Legacy Code


sicp


現在已經是敏捷開發的時代了,推薦

測試驅動開發,重構 這兩本書


不請自來。。

說點自己的感受,根據本渣渣多年以來持續不斷的學習的理解,沒有你說的出現重大突變什麼鬼的,只能一點一點地,積累是持續的,通常是在你不知不覺地就學會了,因為不懂的實在是太多了,做一個勤勤勞勞的搬磚工吧。或許有一天扭過頭你會發現,噢,原來已經走的這麼遠了,。但是前路依然漫漫無窮盡。。。或者說,質變離量變比較遠。。路漫漫其修遠兮,吾將上下而求索


重大提升?

哥們,第一,好好學基礎吧,能力是用來沉澱的,不要總想著哪天會突然打通任督二脈,學的絕世武功,迎娶白富美,走向人生巔峰!話說,你不積累內功,其他的都是花拳繡腿!

第二,實踐大於理論!每個技術大牛都經歷過無數個對著電腦發獃的夜晚。多上手,實踐出真知,編程思想也是一樣的!


我就說說對我幫助比較大的。

重構 Gof4的設計模式

effective java/c++


除了IT浪人的回答,還有

重構 (豆瓣),還有本ruby的重構 (豆瓣) 代碼及結構優化;

大教堂與集市 (豆瓣) 開源運動的《聖經》;

程序員思維修鍊(修訂版) (豆瓣) 編程思維的鍛煉;

集體智慧編程 (豆瓣) 機器學習與數據挖掘,將數學問題轉換為程序;

黑客與畫家 (豆瓣) 這並不是一本關於編程思想的書,而是一本讓你思考的書。


https://jenseyatvajameh.files.wordpress.com/2008/07/50shades.pdf

顯然是這本. 無論是你新手還是專家, 這本書都能提高你的編程技能.


竟然沒有人說Code Complete ?? 我不服


代碼大全33章個人性格可以讀讀----第33章個人性格(代碼大全5)

33.1 個人性格是否和本書話題無關

33.2 聰明和謙虛

33.3 求知慾

33.4 誠實

33.5 交流與合作

33.6 創造力和紀律

33.7 懶惰

33.8 不如你想像中那樣其作用的性格因素

33.9 習慣Key Points


我認為很多思想是遊離在軟體本身之外的,多出去走走,偶爾能頓悟一些東西。


這個 Learn You a Haskell for Great Good! 和 這個 H-99: Ninety-Nine Haskell Problems


http://dl.acm.org/classics.cfm


指望看一兩本書就有重大提升是不現實的,編程思想和能力的提升主要都在長期的實踐中逐步完成。

與題主共勉。


學sicp前最好清空自己。不然眼高手低。


UNIX編程藝術 (豆瓣)

作者是Eric S. Raymond,《大教堂與市集》也是他寫的,都是經典中的經典。沒有太多牽涉代碼細節,純粹講編程思想,建議初學者到技術總監級別都可以讀一讀。

順手摘抄一段:

Douglas McIlroy是Unix系統上管道機制的發明者,也是Unix文化的締造者之一。他歸納的Unix哲學如下:

程序應該只關注一個目標,並儘可能把它做好。讓程序能夠互相協同工作。應該讓程序處理文本數據流,因為這是一個通用的介面。

羅勃·派克在他的《Notes on Programming in C》中提到了以下格言。雖然這些規則是關於程序設計的,但作為Unix哲學絲毫不為過:

規則一:你永遠不會知道你的程序會在什麼地方耗費時間。程序的瓶頸常常出現在意想不到的地方,因此在你確信找到瓶頸後再動手優化代碼吧。

規則二:測試代碼。只有在你詳細測試了代碼,並且發現一部分代碼耗費了絕大部分的運行時間時再對程序作速度優化。

規則三:功能全面的演算法(fancy algorithm)在處理小規模問題時效率很低,這是因為演算法時間效率中的常量很大,而問題往往規模很小。除非你知道你遇到的常常是複雜的情況,否則就讓代碼醜陋但是簡單而高效吧。(即使問題規模確實很大,也首先嘗試第二條規則。)

規則四:功能全面的演算法比簡單的演算法更容易產生Bug,更難實現。盡量使用簡單的演算法和數據結構。

規則五:數據決定一切。如果選擇的數據結構能很好的管理數據,演算法部分往往不言自明。記住,數據結構,而非演算法,才是編程的關鍵。

規則六:沒有第六條規則。


跑題的一答:

書上得來終覺淺, 絕知此事要躬行.

光看書是不行的.

學而不思則惘, 思而不學則殆.

光埋頭寫代碼也是不行的.

溫故而知新, 可以為師也

代碼不要寫了就不管, 不斷的重構中才能提升水平, 不然只是同一技術水平的重複.


h1 j2ee推薦書籍 h1

j2ee方向..;以我看書時間為順序

--上學時

1.《java編程思想4》(很經典的一本書,讀了兩遍[在學校和工作後], 加深了對java的掌握和的理解);

2.《代碼大全2》(當初會讀這本書,吸引我了解的是的書名,吸引我去讀的是這本書的發行量『』過萬『』,吸引我工作後在看一遍的是書的內容和工作中遇到的問題。值得看),

3.《CSS.DIV.網頁樣式與布局精通〔前沿科技〕》(使我有可以獨立搭建頁面,並且有能力做出瀏覽器兼容性很好的網頁[當然dreamweaver的兼容性校驗,和各瀏覽器的開發者工具也功不可沒);

----------工作後

4.《鋒利的jquery》(通俗易懂)

5.《代碼整潔之道》(工作後接觸的項目大而且雜和亂,無從下手呀!遂去圖書館,看到了這本書,正是我想要的);

6.《修改代碼的藝術》(問題同上,前者讓我明白了代碼應該寫成什麼樣,後者讓我知道了面對混亂的代碼,應該如何去做);

7.《超越CSS:Web設計藝術精髓》(html布局,語意化..,主標題應該用h1,適合用用表格時用table標籤,列表用ol、li、dl標籤,段落用p標籤等,而不是都用當時流行的div+css);

9.《設計網事:互聯網產品設計實踐》(一本關於網頁設計的書,用信息架構、戶體驗、交互設計...)

10.《SQL反模式》(各種資料庫表的設計,...);

11.《HeadFirst設計模式》,《大話設計模式》

12.《Effective Java第2版》

13.?大型網站技術架構:核心原理與案例分析?

14.《架構之美》

15.《Java8實戰》..

--書就推薦到這裡了..

h2某些技術、技巧的應用,對編程的影響h2

java反射,正則表達式,Lucene,hadoop..,tomcat配置優化、集群、gzip..、linux、nginx、memcached..

--實踐

對我來說,與編程相關具有里程碑的影響的是

1.我畢業設計時獨立做的網站.

2.有趣時自己做的小應用..

3.想做的東西(未來)


思而不學則殆,(思也是很重要的)提升編程思想的好書,必須建立在實踐之上。談談自己親身體會, 很多優秀的設計模式,編程思想,在你沒有親自寫出一些"垃圾代碼"時,你不會覺得他們有多好,在你為維護垃圾程序,寫垃圾代碼 勞過筋骨,餓過體膚,此時有人仙人顯靈,拿出某某武功秘籍,讀之,則猶如醍醐灌頂,獲益匪淺,從此走通往代碼世界的巔峰之路。(以上是自己根據題主提問,妄自推測題主屬於剛開始接觸編程的前提下回答之,有不妥請見諒。)

學而不思則罔,思而不學則殆。聖人所言句句真言, 切記要理論結合實踐。


推薦閱讀:

前端新人工作中多造輪子對未來的發展是好是壞?
編程東西學得多是不是一定是壞事?
宅總用的這是什麼編輯器?
沒有基礎,想學python和玩樹莓派,請問我可以怎麼做?
普通人想要達到輪子哥的 C++ 水平的一半需要多少年?

TAG:程序員 | 演算法 | 編程 | 程序 | 計算機科學 |