首頁>Club>
普通本科畢業的,自己的學習能力還可以
10
回覆列表
  • 1 # a阿甘哥

    學習的最好途徑就是看書

    “學習的最好途徑就是看書”,這是我自己學習並且小有了一定的積累之後的第一體會。個人認為看書有兩點好處:

    1、能出版出來的書一定是經過反覆的思考、雕琢和稽核的,因此從專業性的角度來說,一本好書的價值遠超其他資料

    2、對著書上的程式碼自己敲的時候方便

    “看完書之後再次提升自我的最好途徑是看一些相關的好博文”,我個人認為這是學習的第二步,因為一本書往往有好幾百頁,好的博文是自己看書學習之後的一些總結和提煉,對於梳理學習的內容很有好處,當然這裡不是說自己的學習方法,就不再扯下去了。

    很多程式設計師們往往有看書的衝動,但不知道看哪些書,下面我就給各位Java程式猿們推薦一些好書(每本書的作者會加粗標紅),其中絕大多數都是我自己平時在看的書,也算是我對於平時讀的書做一個小總結和讀後感吧。

    目前市面上講解設計模式的書很多,雖然我前面講了看書是最好的,但是對設計模式感興趣的朋友們,我推薦的是這個部落格。這位博友的設計模式講得非常非常好,我認為90%的內容都是沒有問題且很值得學習的,其講解設計模式的大體路線是:

    1、開篇點明該設計模式的定義

    2、圖文並茂講解該設計模式中的結構

    3、以詳細的程式碼形式寫一下該種設計模式的實現

    4、補充內容

    5、講解該設計模式的優缺點

    對於一個設計模式我們關注、學習的知識點,不就是上面這些嗎?

    不過我要重點提醒一下網友們,同一種設計模式的寫法有多種,並不是說只有按某種寫法來寫才是這種設計模式。比方說介面卡模式,我們關注介面卡模式一定要關注的是什麼是介面卡模式不是怎麼寫介面卡模式,不要認為某段程式碼不是按照介面卡模式的寫法寫下來的它就不是介面卡模式了,記住這一點,你在學習設計模式的時候一定會對程式碼中用到的設計模式有更深入的理解。

    《深入理解Java虛擬機器:JVM高階特性與最佳實踐》

    如果你不滿足於做一個只會寫if…else…的Java程式設計師,而是希望更進一步,我隨便舉幾個例子吧:

    1、瞭解Java程式碼的底層執行機制

    2、定位效能問題

    3、對整個系統進行效能調優

    4、解決各種奇奇怪怪的線上線下問題

    5、更加高級別的,為自己的專案量身定做一款適合自己專案的虛擬機器

    那麼Java虛擬機器是你必學的一門技術。《深入理解Java虛擬機器:JVM高階特性與最佳實踐》作者是周志明,這本書可以說是國內寫得最好的有關Java虛擬機器的書籍,近半年,前前後後這本書我起碼看了有5遍。國內寫虛擬機器的書除了這本,其實還有一些其他的,我也買過,不過粗略看下來,很多內容也是《深入理解Java虛擬機器:JVM高階特性與最佳實踐》此書裡面的。

    另外值得一提的是,《深入理解Java虛擬機器:JVM高階特性與最佳實踐》這本書,有電子版的,網上搜一下就能下載到了。不過建議有興趣的朋友還是去買書看,電子版本下載到的一般是比較老的版本,相比最新修訂版的《深入理解Java虛擬機器:JVM高階特性與最佳實踐》,有很多作者新補充的知識點是沒有的。

    《HotSpot實戰》

    所有的Java虛擬機器都是遵循著Java虛擬機器規範來的,市面上的Java虛擬機器幾十款,《深入理解Java虛擬機器:JVM高階特性與最佳實踐》一書裡面講的虛擬機器並不針對某種特定的虛擬機器,而是從Java虛擬機器規範的角度來講解Java虛擬機器。

    我們平時使用的乃至商用的大多數Java虛擬機器都是Sun公司的HotSpot,大家cmd進入命令列,使用”java -version”命令就可以看到了。如果希望在Java虛擬機器規範的基礎上更加深入地去理解虛擬機器的一些細節是怎麼實現的,就可以看一下《HotSpot實戰》一書,作者是陳濤。不過由於HotSpot的原始碼都是C/C++寫的,所以要求讀者有非常好的C/C++基礎,如果對這兩門語言不是很熟悉的朋友,看這本書可能對你幫助不是很大。

    最後提一句,如果有興趣的朋友,不妨先去網上下載一個openJDK,HotSpot的原始碼就在裡面。

    《Java併發程式設計實戰》

    這本書常常被列入Java程式設計師必讀十大書籍排行榜前幾位,不過個人不是很推薦這本書。

    《Java併發程式設計實戰》作者是Brian Goetz,怎麼說呢,這本書前前後後我也看了兩遍左右,個人感受是:

    1、文字多程式碼少

    2、講解多實踐少

    我覺得這可能就是老外寫書的特點吧,因為Java是北美國家(加拿大、美國)開發和維護的,所以老外對Java方方面面的理論知識體系都掌握得是非常清楚和透徹的。翻開這本書看,多執行緒什麼用、什麼是死鎖、什麼是競爭、什麼是執行緒安全等等,方方面面的知識點都用大量的文字篇幅講解,不免讓人感覺十分枯燥,也難讓讀者有實質性的進步。我這本書看了兩遍也屬於一目十行意思,有興趣的地方就重點看一下。

    無論如何,作為一本常常位於Jva程式設計師必讀十大書籍排行榜前幾名的書,還是一定要推薦給大家的。

    《Java多執行緒程式設計核心技術》

    《Java多執行緒程式設計核心技術》作者高洪巖。想要學習多執行緒的朋友,這本書是我大力推薦的,我的個人部落格裡面二十多篇的多執行緒博文都是基於此書,並且在這本書的基礎上進行提煉和總結而寫出來的。

    此書和《Java併發程式設計實戰》相反,這本書的特點是大篇幅的程式碼+小篇幅的精講解,可能這和華人寫的書比較偏向實用主義的風格有關。本書關於執行緒安全、synchronized、Reentrant、Timer等等都用詳細的程式碼進行了講解,而且每個大知識點下的多個小知識點都會詳細講解到,非常有實踐價值。

    有興趣的朋友們,我相信只要你們跟著這本書裡面的程式碼敲、執行、思考,三步走,對於多執行緒的使用與理解一定會進幾大步。

    不過這本書的缺點就是對於Java併發包下的一些類像CountDownLatch、Semphore、CyclicBarrier、Future、Callable等都沒有講到,重點的CAS和AQS也沒有觸及,重點類的實現原理也沒有提。當然,這很深入了,在學習了這本書之後如果能再去對這些知識進行一些學習、研究的話,你一定會慢慢成長為一個很厲害的多執行緒高手。

    《Effective Java中文版》

    《Effective Java中文版》的作者是Joshua Bloch,這個人就很厲害了,他是谷歌的首席架構師,屬於超級技術大牛級別了吧,呵呵。由於沒有看過這本書,所以我不好發表評論,但是從這本書的知名度以及其作者的來頭來看(多提一句,這本書也是Java之父James Gosling博士推崇的一本書),我相信這一定是一本值得一看的好書。

    好的程式碼是每個Java程式設計師都應該去追求的,不是說我今天寫一段好程式碼相比寫一段爛程式碼對效能會有多大的提升,更多的應該是提升了程式碼的可讀性以及可以規避許多潛在的、未知的問題,避免程式碼上線之後出問題而花時間去維護—-無論從時間成本、人力成本還是風險成本來說,這都是非常高的。

    《深入分析Java Web技術內幕》

    《深入分析Java Web技術內幕》,作者許令波,淘寶工程師。

    這本書我用一個字概括就是:全。真的非常全,HTTP、DNS、CDN、靜態化、Jetty、Tomcat、Servlet、Spring、MyBatis等等,什麼都有,涉及知識面非常廣,但又不像專門精講某個知識點的書籍一樣講得非常深入,感覺這本書就是儘量去用短的篇幅講清楚一些Java Web使用到的技術的內幕,讓讀者對這些知識點的技術內幕有一個理性的認識。

    不過,儘管每個知識點的篇幅都不多,但是重點都基本講到了,是一本讓人真正有收穫的書。如果想進一步瞭解這些技術的技術內幕,就要自己去買相關書籍或者自己上網查資料了,有種拋磚引玉,或者說師傅領進門、修行在個人的感覺。

    《大型網站技術架構 核心原理與案例分析》

    一個字評價這本書,屌;兩個字評價這本書,很屌;三個字評價這本書,非常屌。呵呵,好了,再說下去可能別人以為我是水軍了。

    《大型網站技術架構 核心原理與案例分析》的作者是李智慧,原阿里巴巴技術專家。

    Java的大多數應用都是用在Web上的,現在只要稍微大型一點的Web應用,都一定是一個分散式系統,那麼一個分散式系統用到了哪些技術?一個大型網站是如何從一個小型網站成長起來的?如何保證你的網站安全?分散式系統使用到了快取,有哪些快取?快取的使用有哪些值得注意的事項?

    關於分散式的知識點,都在這本書裡面有體現,只有你想不到,沒有他寫不到,而且寫得非常易懂,基本屬於看一兩遍,再記一些筆記就知道是怎麼一回事兒了。多看幾遍,對分散式的理解一定會加深不少。而且裡面不僅僅是分散式的知識,還非常接地氣地寫了如何做一個好的架構師,其實我認為這不僅僅是寫給想做架構師的讀者看的,就是給讀者一些建議,如何更好地提出意見、如何更讓別人關注你的聲音、如何看到他人的優點,入木三分,讓人獲益匪淺。

    《大型網站系統與Java中介軟體實踐》

    《大型網站系統與Java中介軟體實踐》作者曾憲傑,是淘寶的技術總監,算起來應該在阿里有至少P8的級別了吧。

    這本書的部分內容和上面一本李智慧的《大型網站技術架構 核心原理與案例分析》有所重合,像分散式系統的演化、CDN、CAP理論和BASE理論等等,這也更說明這些都是分散式系統或者說是一個大型網站重點關注的內容,當作一次再學習也不錯。

    本書要突出的重點是中介軟體三個字,中介軟體是分散式系統中一個非常重要的東西,其最重要的作用應該就是解耦,降低模組與模組之間的強依賴,不同的模組之間的依賴度降低,便可以各自獨立地開發自己的功能,這也可以說是軟體工程發展的目標和驅動力。

    因此,本書有一部分的內容就是基於中介軟體,詳細講解了中介軟體與JMS的各種知識,適合對分散式系統比較熟悉並且想要往中介軟體方面有一定研究的讀者。

    《從Paxos到ZooKeeper 分散式一致性原理與實踐》

    《從Paxos到ZooKeeper 分散式一致性原理與實踐》,作者倪超,阿里巴巴工程師。

    這本書是我最近在研讀的一本書,和上面的《大型網站系統與Java中介軟體實踐》一樣,屬於分散式元件的範疇,屬於有些深入的內容,當然也是我自己的個人興趣。當然,如果有志向做一個出色的大型網站架構師、公司的技術總監之類,這些知識當然是必須掌握的。

    本書從分散式系統基本理論開始講起,講到Paxos演算法,最後慢慢引入到Zookeeper,循序漸進。當然,更多的我目前還不方便發表什麼看法,因為這本書的第二章Paxos演算法我都還沒有弄懂(Paxos演算法確實有些難以理解和不太易懂),接下來的章節還沒有看下去。

    如果網友們所在的公司在使用Zookeeper,並且你又對Zookeeper感興趣想要研究一下它的原理的,這本書將是不二之選。

    《MySQL5.6從零開始學》

    《MySQL5.6從零開始學》,作者劉增傑和李坤。

    作為一名Java程式設計師,我認為我們千萬不要覺得資料庫是DBA的事情,資料庫對一個Java程式設計師來說也是必須掌握的一門知識,豐富的資料庫效能最佳化經驗是一個頂尖程式設計師必備技能。

    目前主流的資料庫有Oracle和MySQL,當然推薦大家的是MySQL,主要原因我認為有兩點:

    1、MySQL相比Oracle更輕量級、更小、安裝和解除安裝更方便,SQL其實都是差不多的,如果想學資料庫,學MySQL就可以了,在家裡面可以自己方便地研究,如果你的公司使用Oracle,只要再用對比學習法,關注一下Oracle和MySQL的差別即可

    2、隨著2009年阿里巴巴去IOE的運動的進行,目前國內的很多網際網路公司都會選擇MySQL作為它們使用的資料庫,因為MySQL免費,所以既省錢又不需要出了問題就依賴甲骨文公司

    MySQL學習我推薦的是這本我自己學習看的《MySQL5.6從零開始學》,我是覺得挺好的這本書,書裡面的知識點很細緻、很全面,讀者選擇書籍的標準大多不就是這兩點嗎?

    《Spring原始碼深度解析》

    《Spring原始碼深度解析》,作者郝佳。

    Spring這個框架做得太好了,功能太強大了,以至於很多開發者都只知Spring,不知什麼是工廠、什麼是單例、什麼是代理(我面試別人的真實體會)。這種功能強大的框架內部一定是很複雜的實現,這就導致一旦你的程式使用Spring,出了問題,可能是Error、可能是Exception、可能是程式執行結果不是你的預期的,出現諸如此類問題的時候,將會讓你感到困惑,除了上網查資料或者問別人似乎沒有更好的解決辦法。

    研讀Spring的原始碼不失為一種很好的學習方法,我個人認為這有很多好處:

    1、理解框架內部的實現之後,可以主動去解決問題,而不需要依賴別人

    2、Spring框架內部實現用到了很多設計模式,很好的程式碼設計思路,這將會對你寫程式碼、對你理解設計模式有很大的提高

    3、研究Spring框架將會大大增強你讀程式碼的能力,我相信只要你能研究清楚Spring內部是如何實現的,其他任何一個框架的原始碼都難不倒你

    總而言之,我認為讀程式碼的能力是一個普通的程式設計師和一個好的程式設計師之間最大的差別之一,前者只會把別人寫好的東西拿來用,後者不僅能用好,還清楚知道別人寫好的東西底層是如何實現的,在出現問題的時候可以輕鬆解決。

    Spring原始碼,個人推薦《Spring原始碼深度解析》一書,真要研究透並且寫清楚Spring原始碼,恐怕三四本書都不夠,作者在近400頁的篇幅中儘量去講解Spring原始碼是如何實現的,殊為不易,儘管無法講得完全,但是相信作者的講解配合上讀者自己的研究,一定可以對Spring的實現有更深度的理解。

    後記

    以上就是我推薦給Java開發者們的一些值得一看的好書。但是這些書裡面並沒有Java基礎、Java教程之類的書,不是我不推薦,而是離我自己學習Java基礎技術也過去好幾年了,我學習的時候看的什麼也忘了,所以我不能不負責任地推薦一些我自己都沒有看過的書給大家。

  • 2 # zouyccq

    面向基礎的多,其實應該也推薦一些面向實際工程應用的,如何需求分析,領域模型之類,各種架構風格,分散式,微服務等,通訊模型,效能安全,持續整合,部署,devops,監控,日誌,版本管理,如何提高效率之類的。

  • 3 # 玩著學程式設計

    看影片的效果會更好一些,自己不懂的地方,別人幾句話就給講明白了;

    以前學習Java的時候是在“ 如鵬網 ”上面學習的,有網路的地方就可以學習,自己可以靈活的安排學習時間,學習進度,有更多的時間來練習,可以掌握的更好;

    有問題隨時提問,老師實時答疑,口碑不錯,基本上都是慕名而去的,也有很多工作了很多年之後去進行系統的學習的,而且後續有新的課程更新了也是可以免費申請了來學習的,具體的可以到如鵬網官網上去了解一下;

  • 4 # IT168企業級

    Java是目前應用非常廣泛的程式語言之一,鑑於其受歡迎的程度,我們最終決定推出這個書單,本文主要針對初級Java程式設計師,後續還將推出針對資深Java程式設計師的書單。很多書籍是英文版本,可以對應搜尋國內是否有中文版,但建議程式設計師閱讀英文原版。

    1、《Java in 24 Hours (7e)》

    出版社:Sams,2014

    頁數:448

    ISBN:978-0672337024

    這本書涵蓋了Java 8和Android,對於初學者而言,給出了一個比較合理的標準。書中使用NetBeans作為IDE,並透過對IDE和Java的介紹輕鬆地啟動了第2章中的“Hello World”示例。本書根據24個小時來劃章,第七和第八兩章對程式設計師而言意義比較大,主要介紹了控制流程——if語句中巢狀迴圈等;面向物件編碼從第10章開始引入;第17章引入陣列等資料結構、錯誤處理和執行緒等內容。

    如果你是初學者,建議完整閱讀所有章程。

    2、《Java In A Nutshell 6th Edition》

    出版社:O"Reilly,2014

    頁數:418

    ISBN:978-1449370824

    這不是一本完全針對Java初學者的書,但Java In A Nutshell已經成為了一個經典。本書涵蓋了Java 8,但只討論核心細節。部分章節也對Java的當前狀態、語言基礎以及面向物件程式設計進行了討論。這本書關於Nashorn JavaScript引擎的一章,被認為是有爭議的,在一本專注於Java核心細節的書中,出現瞭如何執行JavaScript程式碼以及如何從JavaScript中呼叫Java。

    3、《Murach"s Beginning Java With Netbeans》

    發行商:Mike Murach&Associates,2015

    頁數:660

    ISBN:978-1890774844

    使用特定的IDE來教程式設計師學習Java是一個不錯的主意,如果你不喜歡NetBeans,這本書的一個版本使用了Eclipse。如果你讀過Murach的其他書籍,你就知道他傾向於教育市場,所以,本書很值得一讀。

    本書從安裝NetBeans並編寫第一個程式開始,包括程式碼、類、方法以及建立自己的類和方法的介紹,並使用面向物件的程式設計方法。這是一本非常完整的教程,如果可以堅持下去,那麼它將使你從一個初學者成長為合格的Java程式設計師。

    4、《Java Coding Guidelines》

    出版社:Addison-Wesley,2013

    頁數:304

    ISBN:978-0321933157

    5、《Java 7 Recipes》

    發行商:Apress,2011

    頁數:872

    ISBN:978-1430240563

    本書分解介紹了Java 7,每個部分都由一個常見問題或任務引發。前四章介紹了Java,包括基本的資料結構。第5到10章是關於更高階的主題,但核心仍在Java ,比如 I /O異常、OOP、併發、除錯和Unicode。之後,本書將介紹各種Java子系統 ,比如資料庫、2D和3D圖形、Swing、JavaFX、Servlet、核心XML和網路。

    6、《Learn to Program with MineCraft Plugins》

    發行商:Pragmatic Bookshelf,2014

    ISBN:978-1941222942

    本書的問題在於,採用Minecraft方法意味著程式設計師必須掌握與程式設計無關的各種各樣事情,不可能坐下來學習Java,因為必須先學習如何設定Minecraft伺服器及使用。直到第四章才開始介紹Java,包括迴圈、條件和字串以及程式設計思想等。

    7、《Java解惑》

    發行商:人民郵電出版社,2006

    ISBN:9787115142412

    這本書語言詼諧幽默,趣味十足的介紹了Java程式設計中可能會遇到的各種問題,包括Java語言設計和API設計部分,也有人叫《Java謎題》。雖然這本書也有英文原版,但翻譯版本也強烈推薦。

    8、《深入理解Java虛擬機器》

    發行商:機械工業出版社,2011

    ISBN:7111349660, 9787111349662

    本書共分為五大部分,簡單介紹了Java技術體系的過去、現在和未來,將複雜的Java虛擬機器技術變得簡單易懂,還包括一些理論知識和典型案例。

    還有很多非常不錯的、適合初級Java程式設計師的書籍,也有很多發行於十幾年前,但不可否認是經典。程式設計師還有哪些推薦呢?

  • 5 # 陝西IT優就業

      1.《Java in a Nutshell》(Java技術手冊)

      2.《The elements of Java style》(Java程式設計風格)

      3.《Effective Java》(通用程式設計)

      4.《The Java language specification》(Java程式設計規範)

      5.《Design patterns: elements of reusable object-oriented software》(設計模式:可複用面向物件軟體的元素)

      6.《The Pragmatic Programmer: From Journeyman to Master》(程式設計師的修煉:從中級到大師)

      7.《Patterns of Enterprise Application Architecture》(企業應用架構模式)

      8.《Refactoring: Improving the Design of Existing Code》(重構:改善現有程式碼設計)

      9.《OSGi in Action: Creating Modular Applications in Java》(OSGi實戰:用Java建立模組化應用)

      10.《Clean Code: A Handbook of Agile Software Craftsmanship》(程式碼整潔之道)

  • 6 # 墨跡天氣

    兩年工作經驗說明你已經熟悉了常見的java開發框架。可以先從公司內部用的框架著手,比如說用到了spring,springMvc,springboot,mybatis等,你可以專門買一些書籍來對其進行深入的學習研究,對專案的後續發展和工作中遇到的問題都能很快的解決。自己也能從這些書籍中得到啟發。比如:《 深入淺出MyBatis技術原理與實戰 》,《 SpringBoot揭秘:快速構建微服務體系+微服務架構與實踐 》

    下面我就推薦幾本認為不錯的書籍

    1:深入理解Java虛擬機器:JVM高階特性與最佳實踐

    《深入理解Java虛擬機器:JVM高階特性與最佳實踐》共分為五大部分,圍繞記憶體管理、執行子系統、程式編譯與最佳化、高效併發等核心主題對JVM進行了全面而深入的分析,深刻揭示了JVM的工作原理。

    2:Java併發程式設計實戰

    本書深入淺出地介紹了Java執行緒和併發,是一本完美的Java併發參考手冊。書中從併發性和執行緒安全性的基本概念出發,介紹瞭如何使用類庫提供的基本併發構建塊,用於避免併發危險、構造執行緒安全的類及驗證執行緒安全的規則,如何將小的執行緒安全類組合成更大的執行緒安全類,如何利用執行緒來提高併發應用程式的吞吐量,如何識別可並行執行的任務,如何提高單執行緒子系統的響應性,如何確保併發程式執行預期任務,如何提高併發程式碼的效能和可伸縮性等內容,最後介紹了一些高階主題,如顯式鎖、原子變數、非阻塞演算法以及如何開發自定義的同步工具類。

    3:Java 語言規範(基於 JavaSE 8)

    本書是Java語言新版本的規範,全書從Java基礎的文法、型別、變數到高階特性lambda表示式、執行緒與鎖等進行了詳盡闡述。該規範針對每一項語言特性都給出了代表性的示例程式,以幫助讀者更容易地理解和掌握這些特性。讀者透過閱讀本規範,可以全面系統地瞭解Java語言的各項特性,為充分利用這些特性來編寫出更加高效簡潔的Java程式提供幫助。讀者還可以從Oracle的Java官方網站上看到本書的新進展和修訂,以瞭解Java語言的新發展動向

    4:大型網站技術架構.核心原理與案例分析(李智慧)

    核心原理與案例分析不僅適用於指導網站工程師、架構師進行網站技術架構設計,也可用於指導產品經理、專案經理、測試運維人員等了解網站技術架構的基礎概念;還可供包括企業系統開發人員在內的各類軟體開發從業人員借鑑,瞭解大型網站的解決方案和開發理念。

    好的Java技術書籍非常多,本篇簡單羅列了一下技術書籍。主要以四個方面來介紹。JVM原理,多執行緒,Java語言,架構,其實像工具類的書籍,比如:Maven實戰,Mysql技術內幕 InnoDB儲存引擎 ,Redis設計與實現等都是非常好的書籍。希望對你有所幫助。

  • 7 # 全網同名IT老哥

    下載地址:

    https://mp.weixin.qq.com/s/LTEAOtmUsqDcjWZ--me14A

  • 中秋節和大豐收的關聯?
  • 正史中,尉遲恭和秦瓊誰打架厲害?