1、java
我在個人羣裏常常跟一些很是牛掰的java界內的大牛討論讀書的問題。他們在給新手推薦書籍的時候想也不想就會推薦Think in java。程序員
java書籍說句實話,入門級的書不少,但更看重實戰和經驗。如其餘答案所言,java實際上是個很容易入門但很難實際上手的語言。java發展到如今已經算是個「老」語言了,框架和開源庫滿世界都是並且用到的還很是多,尤爲是JAVA EE,廣泛很依賴各類開源框架。以致於有了面試
@姚冬算法
所說的「java的一大天賦就是把中小型項目寫成大型項目」。編程
具體到咱們公司一個作金融CMS開發的部門,剛招來的一個計算機系大學生,只有計算機基礎沒有啥語言基礎的,經過一個星期的培訓也能夠投入到實際的開發工做當中。沒錯,只要一個星期而已。並且不少在公司工做了五六年的人,也未必會用到或考慮到什麼多線程,設計模式,算法。對於他們而言,只是框架用的特別熟,可以快速響應需求變動罷了。設計模式
不少java入門書,早期的時候尤爲是國人編撰的書籍,有太多的謬誤。李剛剛開始寫瘋狂系列的時候,錯誤能夠記錄一個小本。但如今已經算是不錯了,但當時坑了的人委實很多。多線程
而Think in java被譽爲「java聖經」並無誇張。無論你java是什麼水平,每次讀TIJ都會感到頗有收穫。新手會從中讀到java的一些基礎知識,進階者能夠看到更廣闊的應用空間,老手會從中發現太多的思考方式,並梳理一些知識遺漏。最關鍵的是裏面太多的內容能夠給人啓發,並且不少思想能夠應用到其餘的語言好比C++。另外整本書謬誤相對不多,能夠少走不少彎路。框架
羣裏面的大牛真的是有隻靠這一本書打天下的。咱們工做了四五年,也見到太多被各類」21天XXXX「禍害掉的碼農,除了框架啥都不會也不打算學的。有一個大牛是這麼說的:能看得進去TIJ而且能學到東西的人,我才以爲或許有培養的想法。看不進去的人,我每每不想太費口舌。只會用各類框架和各類工具的程序員,他們的發展方向不過是一個熟練的代碼工人。jvm
或許狂妄,但我以爲言之在理(其實我也是一開始基本看不進去TIJ的人……)工具
2、
我有一份我的的讀書順序指引。這僅僅是我我的的經驗,每一個人的狀況不一樣,大牛們輕噴。
1.初級入門書籍(java基礎語法方向):
無視掉各類僅僅想考試或者應付大學課程的人,那麼我推薦以下書籍:
a.《head first java》適合基本沒啥基礎,又不喜歡看大段的文字類書籍的人。但這本書特別貴,也是僅僅入門。
b.《Core java》,中文名叫《java核心技術》這本書簡淺易懂,很適合新手入門。知識點也說得比較詳細,特別是一些細節很到位。
c.李剛的《瘋狂》系列。我以爲我推薦這本確定不少人噴我……不過說實話,我帶畢業生的時候我看過他們買李剛的各類書籍。總體來講很符合國人的閱讀習慣和學習習慣,李剛本人如今是全職作培訓師了,書也是一再的重印出版,當初的不少謬誤已經修正了不少。並且最重要的也是李剛最討巧的,就是書裏有大量的應付面試用的冷門知識點。整本書培訓風格很深,適合入門不適合深挖。
2.進階階段
這個階段通常是已經基本熟練掌握jdk基礎語法,而且作過幾個成熟項目,但願更進一步深挖的人。通常來講到了這一步的已經很熟練各類流行框架了,隱隱的開始有分方向的趨勢,而且也開始接觸其餘的語言。
a.《think in java》其實我很想把這本書放在第一階段的……這本書其實每一個階段讀都很合適。
b.《Effective java》這本書着實驚豔了我,我在買這本書之前我沒想到java這麼老老實實的語言也能夠這麼玩。
c.《重構——改善既有的代碼設計》不想寫太多的評價,做爲一個程序員,不只僅是java程序員,我都一直以爲這是必讀的書。
3.再進階
這個階段的人通常都工做一兩年以上,或者兩三年以上(看行業了,不一樣行業不一樣狀況),而且已經開始考慮轉型或者定位,是深挖技術仍是向項目經理轉變。通常來講到了這個層次的人,也都會掌握第二語言或者對其餘的語言框架都有所涉及。
a.《代碼大全》千萬不要被書名騙了。若是必定要讓我推薦一本編程書,我只會推薦這本。直接改變了我對項目管理,代碼開發等等各方面的見解。
b.《深刻jvm虛擬機》國人寫了一本,相對通俗易懂,但沒有涉及太深。老外寫了一本,講得很深刻,推薦先看國人的,若是有興趣,繼續看老外的。
c.各種設計模式書。其實我不太推薦GOF。對我我的而言我也不喜歡新手去讀設計模式,沒有足夠的開發經驗和主持項目的經驗,很容易陷入爲了模式而模式的大坑。我以爲到了這個階段再去讀比較好,聯繫實際的項目經驗,理解起來會很是快。
補充說明:
1.書單裏沒有也不想推薦各種的框架書,也不打算推薦其餘語言的包括算法類的書。這僅僅是我我的的看法和推薦書目,大牛輕噴。
2.鑑於大多數初學者的英語並不咋樣(其實就是在說答主本身啦……),書單裏沒有什麼英文資料書。若是能夠吧範圍擴展到英文資料,那能夠看的就太多了……