JavaRush /Java Blog /Random-TW /初學者及更多人的最佳 Java 書籍 (2023)

初學者及更多人的最佳 Java 書籍 (2023)

在 Random-TW 群組發布
我們習慣於快速獲取資訊並同樣快速地吸收資訊。我們喜歡五分鐘的影片而不是深入的講座,更喜歡短文章而不是書籍。我不會聲稱一本關於程式設計的好書可以取代任何文章,事實並非如此。它肯定不會取代練習。然而,就我個人而言,真正理解程式設計的基礎知識是在我解決了JavaRush程式設計課程中的數百個問題並閱讀了大量文章之後,開始同時學習書本上的理論並深入鑽研之後。一段時間以來,我一直在尋找我個人的「最佳 Java 初學者教程」。以下是幾本Java書籍,在我學習的不同階段都或多或少對我有用。

初學者書籍

在本節中,我收集了您踏出學習 Java 程式設計第一步所需的書籍。

1. Head First Java,Kathy Sierra 和 Bert Bates

我開始閱讀這本書並不是因為它是我最喜歡的,而是因為它是最簡單的。許多程式設計師認為,這本書是最好的從頭開始的 Java 教學。而且,它是真正的、完全從零開始的,即適合那些剛剛入門、不太明白什麼是野獸編程的人。我承認,我來得太晚了。我想這就是我無法欣賞它的原因。「光是閱讀」它是非常愉快的,但我花了很長時間才找到其中的具體內容。材料呈現得很生動,但相當膚淺(因為它從頭開始!),許多主題和必要的解釋根本不存在。但我的朋友(他繼承了這本書)卻很高興,並大喊這不僅是初學者最好的 Java 教科書,而且是直接的世界傑作,複雜的材料就應該這樣呈現。

優點:

  • 最好的 Java 教程,從頭開始,適合傻瓜,用生動的語言編寫。
  • 很酷的插圖和幽默。
  • 用現實生活中的例子來解釋。

缺陷:

  • 對於那些已經進入主題的人來說,有很多水域。
  • 謎題和練習並不總是成功。

2.《Java 傻瓜書》,巴瑞‧伯德 (Barry Bird)

我必須承認,當我還是一名程式設計師時,我已經想到了這本書。在關於有用書籍的文章的早期版本中,我在評論中被問到了一個關於它的問題,當我在工作中看到它與測試人員時,我決定仔細看看它。Barry Bird 的《Java for Dummies》對於那些願意使用多種資源來幫助他們學習的初學者來說是一本有趣的書。這不是初學者教程,而是 Java 的第一本參考書。最有效的方法是與逐步課程(如 JavaRush 中的課程)同時進行學習,並且(必需!)立即在實踐中鞏固所學知識。根據演講,我立刻認出了作者是一位老師,因為他在一些乍看之下意想不到的地方停下來,非常詳細地審視了所提出的問題。這並非偶然:正是在這些問題上,他的學生最常犯錯。但有些主題涉及得很膚淺……但是,這是一本針對初學者的書,你不應該期望它有深度。假設前兩章適合初學者,OOP(第3 章)在另一本書中可以更好地學習,但是第4 章(高級程式設計技術- 解釋如何使用類別和方法、啟動集合、多執行緒、異常處理)和第5 章(避免錯誤的技巧)我認為非常成功且有用。此外,《Java For Dummies》易於閱讀,充滿了豐富多彩、有趣的範例。它可以在路上的任何地方或睡覺前輕鬆閱讀。當然,如果你對作者的風格滿意的話。請記住:這個世界上沒有一本書可以讓你成為軟體開發人員。只有練習才能做到。 初學者及更多人的最佳 Java 書籍 (2023) - 1

優點:

  • 語言通俗易懂。
  • 對許多主題的中肯建議和良好介紹(第 1、2、4 章)。
  • 很好的例子。

缺陷:

  • 並非所有主題都得到同樣好的呈現。
  • 不是每個人都會喜歡作者的風格。

3. Java:絕對初學者的程式設計基礎知識,Nathan Clark

另一本書則適合零程式設計經驗的讀者。我想說它的主要優點是它的循序漸進的性質。它很好地解釋了那些通常會給第一次編程的人帶來困難的要點。在這裡您將學習如何選擇 IDE 以及如何編寫您的第一個程式。本書將解釋什麼是Java開發工具包和Java執行環境,並提供每段程式碼的範例。但是...這本書沒有俄文翻譯,所以我推薦給那些英文至少達到B1程度的人。順便說一句,每個開發人員都需要了解這個級別的英語,因此透過一本英語書籍學習 Java 可以一石二鳥。這篇文章裡這樣的書已經夠多了。 初學者及更多人的最佳 Java 書籍 (2023) - 2

優點:

  • 流暢地介紹了程式設計和Java語言的基本功能。
  • 演示順序。

缺陷:

  • 沒有深入解釋物件導向程式設計的概念,因此一些實際範例可能會令人困惑。
  • 沒有俄語翻譯。

4. 思考 Java:如何像電腦科學家一樣思考,Allen Downey 和 Chris Mayfield

另一本有趣的英文書。正如作者所指出的,本書的主要目標是幫助讀者培養解決電腦科學固有問題所需的思考技能。本書是針對初學者,因此作者從沒有程式設計經驗或 Java 知識的人也能理解的基礎知識開始。它寫得很簡單,對於想要掌握程式設計和發展演算法思維技能的學生或自學成才的人來說可能很有用。與許多其他書籍一樣,本書首先介紹 OOP。每章都包含詞彙和練習部分,以強化理論和掌握程式設計技能。 初學者及更多人的最佳 Java 書籍 (2023) - 3

優點:

  • 閱讀起來輕鬆愉快。
  • 本書以易於理解的方式介紹了複雜的程式設計概念。
  • 不錯的例子和練習。

缺陷:

  • 缺乏循序漸進的方法。
  • 有些讀者可能會在某些章節之後留下疑問,因為某些主題並不總是有詳細的解釋。

5.Java。初學者指南,赫伯特·希爾特

瀏覽完這本教科書後,我認為它非常適合那些喜歡比《Headfirst》更傳統的材料呈現方式,但又正在尋找從頭開始的教程的人。在某些地方,書中的介紹非常詳細,讓人想起擴展和翻譯的文檔以及良好的視覺示例。有時候,對我來說,作者越界了,開始咀嚼太多,閱讀變得無聊……突然——翻筋斗——一些相當複雜的地方幾乎立刻就被錯過了,你完全困惑地試圖理解什麼和在哪裡你錯過了。不過,書中這樣的地方並不多,而且我知道有人認為《初學者指南》對於那些還什麼都不懂的人來說是最好的 Java 教程。就我個人而言,我發現這本書參差不齊。假設我開始對集合進行排序,而不是人工解釋,他們給了我獨立創建基於數組的集合的任務。很酷的問題,但我想首先更好地了解標準集合是什麼!雖然這本書和前一本一樣被認為是初學者的教科書,但我作為教師的經驗表明,它只有與其他材料結合使用才有效:對於人文學科的轉換者來說,並不是一切都會簡單明了。《初學者指南》適合那些學過編程(例如在大學)、早已放棄編程,同時又喜歡作者的演示風格的人。特別令人高興的是,教材不斷更新,涵蓋了 Java 8 的功能,而目前版本(第十版)考慮了 JDK 9 和 JDK 10。 初學者及更多人的最佳 Java 書籍 (2023) - 4

優點:

  • 對基礎知識的傳統深思熟慮的介紹。
  • 很好的例子。

缺陷:

  • 從“太咀嚼”到“順便說一下”有跳躍
  • 有些地方很無聊。
順便說一句,Herbert Schildt 還有另一本關於程式設計的著名書籍 - 《Java. 完整指南》。這是一本完全不同的教科書,更基本。讓我們繼續討論。

為那些繼續或重新開始的人提供的指南

以下書籍最適合那些已經對程式設計有一定了解並想要更深入地了解 Java 或開始更徹底練習的人。其中有關於新的或相對較新的 Java 功能的手冊、參考書和教程,人們通常不會立即了解這些功能,還有有關 Android 的書籍(更準確地說,是一本有關 Android 的書)。

6.Java。完整指南,赫伯特·希爾特

我承認:曾幾何時,我從網路上下載了這本書,為了評價它,然後買或不買。不是開玩笑,1300頁的文字!而且價格並不遜色於數量。我對 Kay Horstmann 的兩卷本《專業圖書館》也做了同樣的事情(更多相關內容請見下文)。展望未來,我會說我選了第二個。為什麼?因為在Java一書中。《完整指南》我看到了與《初學者指南》相同的缺點。有時解釋被咀嚼,有時它們被弄皺,但同時它們不僅被弄皺,而且不知何故被冗長地弄皺了。也許這就是作者的風格,我想有人會喜歡,或者更確切地說,根據他們的想法。整體而言,《Java 8:權威指南》是一本很好的 Java 參考書。但就我個人而言,我更喜歡在另一本書中對相同內容的呈現。 初學者及更多人的最佳 Java 書籍 (2023) - 5

優點:

  • 完整指南。似乎這裡有初學者(而不僅僅是初學者)需要了解的所有主題。
  • 詳細解釋。

缺陷:

  • 大量的水(但有些人可能喜歡這樣!)。
  • 俄語翻譯不是最好的。

7.Java。專業圖書館,Kay S. Horstmann,Harry Cornell

希爾特和霍斯特曼的書經常被相互比較。兩人都有忠實的粉絲。對我來說,Horstmann 的兩卷書是最好的 Java 教科書。它成為我 JavaRush 初級和中級程度的參考書。當我不明白某個主題時,我主要求助於霍斯特曼,他澄清了很多事情。本書涵蓋了從語法到多執行緒程式設計、程式本地化以及使用 XML 的所有內容。不要讓「專業圖書館」這個名字嚇到你(這就是嚇到我的原因),基礎知識都涵蓋得很好。此外,定期重讀它可以刷新和組織您的知識。

優點:

  • 頁數驚人,但水卻很少(與 Schildt 不同)。
  • 包含初學者所需的一切。
  • 擴充了 Java 8,考慮了 JDK 9、10 和 11 中的變更。
  • 關於集合和泛型主題的良好演示。
  • 與 JavaRush 完美搭配。直入主題,解決問題,遲早你會聽不懂──看霍斯特曼,再試一次。

缺陷:

  • 有些人可能會覺得這本書很枯燥。
  • 沒有練習。
  • 俄文翻譯有錯誤。

8. Java 8 實際應用:Lambda、串流和函數式編程

在第八個版本中,Java 世界中的新功能非常重要,並且與先前的功能有所不同,因此建議將這些主題與其他主題分開研究。而且:到目前為止還沒有出現更重要的語言更新。因此,擺在我們面前的是《Java 8 in Action》,這是一本關於 Java 8 的有趣教科書。需要立即指出的是,它是為那些已經了解「僅僅」Java 基礎知識的人而設計的。這本書之所以如此出色,是因為它有許多不同且有用的練習題。範例包括“正確”和“不正確”的程式碼範例。最主要的是不要混淆。

優點:

  • 以實踐為導向。
  • 顯示正確代碼和錯誤代碼之間的差異。

缺陷:

  • 需要額外的資源才能更深入了解 Java 基礎知識。

9. 《Core Java for the Impressive》(第三版)或 Java SE 9. 基礎課程,Kay Horstmann

本書原名是《Core Java for the Impressive》,即《Java Core for the Impressive》。我不知道為什麼這個沒有包含在翻譯中。我認為,這將有助於這本書不至於在同行中迷失方向。這本書的第二版有俄文翻譯,英文版已經有第三版,更新到Java 17。這本書是作為快速參考整理的,用起來很方便找到問題的答案如果您忘記了某些內容或以前用其他語言程式設計過,則可以提出一個具體問題。我特別喜歡的是這些文字很短,基本上沒有咀嚼和水。本書對 lambda 表達式、輸入/輸出流和模組做了很好的描述。然而,本書不會解釋什麼是變數或循環。但除此之外,我已經提到過,基本結構、集合、註釋、泛型、日誌記錄、多執行緒 - 您在實踐中將使用的所有內容。說實話,我真的很喜歡這本書,即使現在我也會偶爾看看。請記住,這本書不適合那些對程式設計一無所知的人。對於那些已經學習過其他語言或相同 Java 的人來說,這種情況更有可能發生,但時間較長且不完全。

優點:

  • 短訊息塊。一切都切中要點。
  • 沒有不必要的話題。
  • 非常好的精選當前主題,供 Java 初學者學習。
  • 成功的例子。

缺陷:

  • 這本書不適合那些從頭開始學習程式設計的人。

10.Java。開發者手冊,Benjamin J. Evans,David Flanagan

一本很好的通用參考書,是霍斯特曼書籍的替代品。包含對初學者和繼續深入編程的 Java 開發人員有用的信息。寫這句話時的最新版本(第七版)是基於Java 11的。書不長,例子很多,對Java API和最佳開發實踐都有討論。這本書很容易閱讀,您可以從中學習語言的基礎知識、有用的程式技術,甚至是 Java 的新趨勢。

優點:

  • 簡短而良好的總結。
  • 這裡有初級程式設計師所需的一切。
  • 對現代工具的良好描述。
  • 成功的例子。

缺陷:

  • 並不總是有足夠的術語翻譯成俄語。

11. Java 模組系統,Nikolay Parlog

這本書有英語和俄語版本。這是關於Java模組化系統的非常詳細的指南。作者認為,如果將程式碼打包在整齊的區塊中,創建可靠且安全的應用程式會容易得多。Java 中的模組是一個相對較新的工具;自版本9 以來,基本的架構變化才影響了Java 核心。儘管有越來越多的專案帶有模組,但有些人習慣於以老式方式工作,對這些一無所知有趣的創新。讀完本書後,您將了解如何監控不同的 JAR 檔案如何互動並輕鬆找到遺失的依賴項。如果您認真對待模組化 Java 專案或需要學習工作模組,請查看這本書。

優點:

  • 最完整的描述了模組化系統的優點。
  • 遷移到模組的很好的例子和策略。

缺陷:

  • 它的語法描述很少,對於初學者來說有困難。

12. 現代 Java 實作:Lambda、串流、函數式和響應式編程

儘管 Java 已經存在很多年了,但語言仍在不斷獲得新的功能。當然,我們都是人類,程式設計師有時會忽略新的功能和方法,並不願意在 Java 專案中實現它們。Modern Java in Action 等書籍旨在幫助解決這個問題。本指南詳細介紹了短期指導訓練中最常涉及的主題。我要說明的是,這樣的訓練通常持續1-3天,而且資訊非常集中。因此,新手程式設計師只是淹沒在新資訊中而無法吸收它。而本書將一步步帶你從lambda表達式到方法引用、函數式介面和線程,如果你能仔細算出來的話。

優點:

  • 本書包含了Java的所有現代功能,因此非常有用。
  • 複雜概念的一致表達。
  • 作者將新趨勢與傳統趨勢進行了比較。因此,即使是初學者也可以推薦這本書。

缺陷:

  • 對於已經了解這個主題的人來說,這本書可能看起來有點囉嗦。

13. Head First Android 開發

Java 是 Android 的母語。因此,開始使用這種語言進行應用程式開發的最受歡迎的選擇之一是創建 Android 應用程式。這本書(有俄語翻譯“Head First Programming for Android”)是 Head First 系列的另一本書。所以該系列的家族特徵在這本手冊中是相當固有的。也就是說,在這裡你會發現大量的圖片、簡單的風格、大量的練習,而沒有認真鑽研本質。這意味著,如果您想完全了解 Android 應用程式開發,您可能需要做一些額外的研究並深入研究原始程式碼。但如果您想快速開始對該系統進行編程,那麼這裡就是您的最佳選擇。

優點:

  • 簡單的風格、圖片、各種任務和專案練習,可以讓讀者積極參與學習過程。
  • 簡單易懂:作者試圖用簡單的術語解釋複雜的概念,讓初學者更容易理解。

缺陷:

  • 過時:程式設計和 Android 領域技術的快速變化可能會導致本書不再包含當前的方法和工具。
  • 有些話題處理得太膚淺。

14. 學習 Java:介紹使用 Java 進行實際編程

我必須立即指出,這本書不適合初學者。如果您至少了解 Core Java 並且能夠編寫簡單的應用程序,那麼您將需要它。如果是這樣,本書將幫助您理解Java語言的各種複雜概念,並解釋所有這些類別、函式庫、lambda表達式、輸入/輸出等如何在實際工業程式設計中使用。本書基於 Java 的現代版本,包含相當簡單但對實際工作有用的範例。最後一節討論了直接將 Java 用於 Web 應用程式和 Web 伺服器,這是您在書籍中不常見的內容。順便說一句,這本書也有俄語版本(“Programming in Java”,Mark Loy)。

優點:

  • Java 的現代版本。
  • Web 應用程式和伺服器的範例。

缺陷:

  • 對於初學者來說很難。

永恆的經典

我下面寫的書可以稱為初學者和中級賈維主義者的神聖文本。

15.《有效的 Java》,Joshua Bloch

這是一件寶藏,而不是一本書,它的作者之一約書亞·布洛赫(Joshua Bloch)重點介紹了語言的基本原理。您很可能已經使用過它的函式庫(例如,在 Java Collection 中)。我馬上預約:完全的初學者,除了一些神童速跑者,不需要《Effective Java》這本書。首先,最好掌握文法並至少進行一些程式設計練習,可以這麼說,熟悉它,然後接受 Joshua Bloch 的創作。對於那些想要真正理解 Java、在使用這種語言進行程式設計時形成正確方法、不僅了解如何做,而且還了解需要完全按照這種方式完成的所有其他事情的人來說,本書將非常有用。也適合那些想要深入理解OOP的人(原則上,這些是相互關聯的東西)。本書是關於物件導向程式設計方法背景下的 Java 的最佳教科書。

優點:

  • 關於 OOP 主題的精彩資料介紹。
  • 提供了最佳編程實踐。
  • 作者對Java非常了解。

缺陷:

  • 對於初學者來說很難。

16.Java 哲學,Bruce Eckel

這本書的標題不言而喻。對於每個想了解 Java 的人來說,這又是一個阿爾法和歐米伽!在本書中,您將找到很好且清晰的範例,並且從中可以清楚地了解 Java 的工作原理。我很難說這兩本書中哪一本比較好──《Java 哲學》或《有效程式設計》。我想說,Eckel 對初學者更友好,而 Bloch 則需要一些經驗。當我剛開始學習 JavaRush 時,我第一次閱讀了《Java 哲學》中的章節(我認為它在早期層級之一被列為推薦)。那她不適合我。但在 10 級或 12 級之後 - 這是一首歌!而且,我會說,這是一首非常有用的歌曲。後來當我談到有效編程時,我又回到了這個話題。我會這麼說:讓布洛赫和埃克爾談論同一件事,但以不同的方式,並給出不同的例子。

優點:

  • 專業人士對 Java 原理的深入介紹。
  • 對於那些從其他語言轉向的人來說這將是有好處的 - 例如,與 C++ 有很多比較。
  • 在我看來,你可以從第 10 級開始閱讀它,但埃克爾——要晚一點。

缺陷:

  • 俄語翻譯非常不成功。

通用程式設計書籍

以下書籍與 Java 沒有直接關係,但對初級開發人員很有用,因為它們有助於培養程式設計師的思維並理解電腦的工作原理、程式設計的主要原理和概念、什麼是乾淨的程式碼以及如何編寫它。

17. Java 中的經典電腦科學問題

David Kopec 的這本書可以翻譯為《Classical Problems in Computer Science in Java》。它既適合經驗豐富的開發人員,也適合那些了解程式語言並已經開始面對現實世界問題的初學者。或者對於那些對非標準任務感興趣的人來說,可以培養程式設計師的思維。或者對於那些想要提高自己的技能並在面試中取得好成績的人來說。有些任務看似難以克服,但程式設計的世界比看起來小。最有可能的是,有人已經解決了你無法解決的問題。David Kopec 在他的書中收集了最有用的現成解決方案、原理和演算法。經典電腦科學問題包含 55 個實際範例,涵蓋最新主題:基本演算法、限制、人工智慧等。本書的主要主題:
  • 遞歸、記憶和位元操作。
  • 搜尋、圖形和遺傳演算法。
  • 聚類(k-means 方法)、神經網路和競爭搜尋。
  • 優點:

    • 所有有用的演算法和方法都在一本書中。
    • Java 中的範例。

    缺陷:

    • 有些例子對於初學者來說很難理解。

    18. 《Head First Learn to Code》作者:Eric Freeman

    我已經在本文中兩次提到了 Head First 書籍。這是第三個!與該系列中的所有書籍一樣,它是為絕對的初學者編寫的,並且致力於程式設計本身。如果你以前讀過這個系列,那麼當你打開這本書時,你會很容易認出《Head First》的標誌性風格。如果您需要以有趣、易於理解的方式了解關鍵程式設計概念的幫助,我推薦這本書。

    優點:

    • 提供對編程的一般理解。

    缺陷:

    • 使用 Python 中的範例(因為它被認為是初學者最簡單的語言)。

    19.《乾淨的代碼》,羅伯特·S·馬丁

    新手程式設計師不太注意他的程式碼風格。他更專注於糾正錯誤。然而,改進你的風格對於你的潛在工作非常重要:不遵守乾淨程式碼的人很難在專案中合作。其程式碼難以閱讀和維護。本書將向您展示好程式碼和壞程式碼之間的區別,並教您使用最佳實踐編寫乾淨、可讀程式碼的基本規則。如果詢問專業人士,他很有可能會向每個有抱負的開發人員強烈推薦這本書。

    優點:

    • 創建可讀程式碼的好例子和技巧。
    • 同類書籍中為數不多的一本。

    缺陷:

    • 作者有時也太謹慎了。

    20. 代碼:計算機科學的秘密語言,Charles Petzold

    這本書既可以推薦給對電腦有興趣的小學生,也可以推薦給擁有多年經驗、想要更好地理解電腦科學的程式設計師。我在高中時看到了這本書的俄語版本,受到了極大的啟發。它甚至使用非常簡單的範例解釋了電路設計,這一切都從雞和基本的手電筒開始。作者涵蓋了廣泛的主題,如電力、電路、繼電器、二進位系統、邏輯、閘、微處理器、程式碼等,以逐步建立對電腦技術如何運作的理解。讀完本書後,您將了解桌面上像素背後的內容以及每次使用裝置時會發生什麼。

    優點:

    • 深入研究最低等級的硬體。

    缺陷:

    • 有時潛水太深:)

    21. 破解程式設計面試,Gail Laakmann McDowell

    對於那些計劃在不久的將來尋找軟體開發人員工作的人來說,這是一本非常有趣的書。它包含面試過程中可能會被問到的各種實際問題和解決方案。當然,一切都在流動,一切都在改變。開發人員「測試」的趨勢正在改變。然而,這本書將幫助新手了解面試的期望。不過,我建議您在論壇和 Java 社群中溫習這些知識。

    優點:

    • 準備現實世界的程式設計面試。

    缺陷:

    • 如果沒有額外的來源,這將無濟於事。

    演算法和資料結構

    了解演算法有助於有效、最佳地解決軟體開發問題。了解如何選擇正確的資料結構有助於提高效能、降低記憶體成本並提供更穩定、更有效率的程式。然而,你至少需要了解他們才能通過面試。以下是一些有用的書籍。

    22. 搖擺演算法,Aditya Bhargava

    一本關於演算法基礎知識的非常有趣且相當簡單的書。它以圖形形式解釋了排序和搜尋等流行演算法。正是這樣的書可以幫助你理解演算法的美麗和複雜性,並全心全意地熱愛它們。書中有大量圖片:相較於解釋,作者更喜歡視覺方式。本書分為幾個小節,並附有各種範例,以確保以正確的比例吸收新資訊。

    優點:

    • 很好的圖形解釋。
    • 關於這個複雜的地方很有趣。

    缺陷:

    • Python 中的範例。

    23. 演算法導論,Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest、Clifford Stein

    《演算法導論》(俄語書名「演算法:建構與分析」)是一本非常成功的關於演算法的書,適合喜歡對材料進行一致和徹底介紹的人。書中的所有範例都是用所謂的偽代碼編寫的,也就是說,不是用真正的程式語言,而是用每個人都可以直觀理解的合成語言。雖然這本書被宣傳為“演算法入門”,但涵蓋的主題非常廣泛,並且對資料結構和演算法的概念解釋得相當好。
    • 排序:詳細研究插入排序、交換排序、快速排序、歸併排序等各種排序演算法。
    • 搜尋:向前搜尋、向後搜尋、二分搜尋等。
    • 樹:二元樹、紅黑樹、AVL樹等。
    • 圖:圖遍歷、最短路徑搜尋、最小骨架樹等。
    • 動態規劃。
    但本書也有其不足之處。在我看來,引言過於關注演算法的理論方面,但有時缺乏有關其實際實現的細節。原著是用相當簡單的英文寫成的(我推薦英文版本!)。

    優點:

    • 排序、搜尋、樹、圖等最重要演算法的優秀理論介紹。
    • 簡單的英語。

    缺陷:

    • 實踐不夠,重點關注主題的理論面。

    24. 思考資料結構:Java 中的演算法與資訊檢索 (Allen B. Downey)

    這是在 Java 程式設計中使用資料結構和範例的有用指南。本書著重實踐,幫助你快速理解如何在實際程式中實作和使用演算法和資料結構。作者以簡單易懂的方式解釋了演算法和資料結構的複雜概念,因此如果您至少具備基本的程式設計技能,那麼這本書就適合您。每個部分都包含主題介紹、範例、附加解釋和鞏固理論的練習。特別好的一點是,每一章都包含設計問題,使讀者能夠應用他們所學到的知識來創建自己的演算法和資料結構的實作。

    優點:

    • 簡潔的材料和有用的例子。
    • 專案任務的可用性。

    缺陷:

    • 對於初學者來說可能有點困難。
    • 並非所有主題都得到同等深度的涵蓋。

    25. 演算法,羅伯特·塞奇威克,凱文·韋恩

    最著名的程式設計書籍之一,由該領域的真正專家撰寫,他們培養了不止一代軟體工程師。如果您沒有被徹底的學術演講和完全沉浸在該主題中嚇倒,如果您準備好真正理解演算法並一勞永逸地分析它們,請學習這本書。對於學生、教師和開發人員來說,這是一個不錯的選擇。然而,對於初學者來說,可能需要額外的時間和精力才能很好地掌握書中的內容。作者成功地將理論與Java中的實際例子結合起來,使讀者更容易掌握複雜的概念。

    優點:

    • 清晰、徹底的演示。
    • Java 中有很多例子。
    • 主題多樣:這本書幾乎涵蓋了您需要了解的有關演算法的所有內容。

    缺陷:

    • 過多的學術演講。
    • 如果沒有適當的支持和幫助,您自己學習這本書可能會很困難
    留言
    TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
    GO TO FULL VERSION