Toptal 的頂級免費編程書籍列表

已發表: 2022-03-11

互聯網是人類最大的知識、信息、有用(和無用:想想貓圖片)數字內容的存儲庫。 今天,我們將快速瀏覽一些有用且腳踏實地的東西:免費的在線編程書籍。

網上有很多有用的書籍、指南、技術文檔、研究論文、代碼示例和推薦。 你只是一個遠離這些東西的谷歌搜索,只要你清除了 SEO 優化的內容工廠頁面,這些頁面在谷歌上仍然排名很高。

由於我們無法在一篇博文中列出和審查數百本書,因此我們將依賴您的意見。 今年夏天你讀過一本免費的編程書嗎? 還是一篇好論文,一個案例研究? 如果是這樣,請與社區分享並查看評論部分以獲取其他讀者的建議。

Google 和 GitHub 入門

Google 和 GitHub 是開始搜索免費編程指南、書籍和其他內容的明顯場所。

GitHub 上有一份免費的編程書籍列表,其中包含 500 多本書。 很明顯,GitHub 提供了一份明確的免費編程書籍清單。 此列表中包含的書籍涵蓋了廣泛的技術和主題,包括與語言無關的編程書籍、數學、各種語言的詳細技術指南、一些特定於硬件的開髮指南等等。

列表的大小可能會給普通讀者帶來問題,因為很難找到和選擇幾本書; 它們太多了,特別是如果您正在尋找與 Python、Java/Javascript、C#/C++ 等熱門話題相關的內容。 稍後我們將仔細研究這個問題。

Google, GitHub, Universities, Industry - 開發人員尋找免費編程書籍的所有重要資源

谷歌、GitHub、大學、行業 - 開發人員尋找免費贈品的所有重要資源。
鳴叫

就 Google 而言,它仍然是任何尋找免費資源的人的重要資源。 請注意,我說的不僅僅是免費書籍; 谷歌可用於研究非常具體的信息,查找相關文檔、研究論文等。

谷歌最大的問題是許多簡單的搜索詞不能提供令人滿意的結果。 經過十年的在線出版,我開始鄙視 SEO 優化的幫派,因為這個特殊的利基市場的整個想法是創建在搜索中排名靠前的近乎無用的內容。 通常情況下,一個廣泛使用的專注於流行技術的搜索詞會導致少數相關網站和數十個 SEO 優化頁麵包含重寫、重新加熱和完全無用的內容。 不管谷歌如何改變它的算法,這些傢伙似乎領先了一步。

縮小 Google 上的搜索範圍

由於我面向的是精通技術的受眾,因此我不會花很多時間解釋如何縮小 Google 搜索範圍並專注於相關信息。 那裡有大量的搜索技巧,我想我們的大多數讀者已經使用它們了。

誠然,Google 可能不是搜索免費書籍的首選之地,但書籍並不是我們追求的唯一資源。 如果您需要解決特定問題,搜索研究論文、技術文檔甚至在線討論會很有用。

谷歌圖書搜索可用於在眾多圖書館書籍中搜索關鍵字。 Google Scholar 旨在以幾乎相同的方式搜索學術資料。 兩者都很有用,尤其是當您正在撰寫研究論文或潤色一些技術文檔時。

一本好的編程書可以節省時間,甚至更多。

一本好的編程書可以節省時間,甚至更多。
鳴叫

當然,這些服務只是補充了您的標準 Google 搜索。 您可以通過使用高級搜索功能(例如引號)、搜索特定文件類型(通常為 .pdf)或將搜索限制在特定域中來節省時間並提高搜索結果的質量。 只需進行一些簡單的調整即可幫助您獲得所需的結果並節省一些時間。

正如我所說,我不會花時間和浪費篇幅來解釋 Google 電源搜索技巧,但如果您認為自己需要提高自己的技能,請查看這個涵蓋基礎知識的簡潔信息圖。

如果您正在尋找特定的東西、解決某個問題的方法、代碼演示或案例研究,那麼 Google 應該是開始的地方(前提是您正確使用它)。

Toptal 精選的頂級免費編程書籍

另一方面,如果您只需要一些易於訪問的免費編程書籍,以消磨時間或提高您的技能,那麼 GitHub 等資源和其他免費書籍彙編是您的最佳選擇。

Toptal 博客也可能從這樣的列表中受益,儘管我不能列出幾百本書並提供每一本書的簡短評論。 雖然我喜歡閱讀,但要逐一檢查太難了。 這就是為什麼我將列表限制為某些語言、框架和技術,按字母順序排列。

不會涵蓋與語言無關的書籍,至少這次不會。

無需花費一分錢,即可將您的電子書架變成寶貴知識的寶庫。

無需花費一分錢,即可將您的電子書架變成寶貴知識的寶庫。
鳴叫

無需花費一分錢,即可將您的電子書架變成寶貴知識的寶庫。

安卓

  • Google Android 開發人員培訓是顯而易見的起點。 它提供了許多有用的資源、最佳實踐等。
  • 面向初學者的免費 Android 編程指南是一門包含 Android 開發基礎知識的十章課程。
  • Tuturials Point 的 Android 教程是另一個面向綠色開發者的教程。 它還包括許多可能對新手有用的代碼示例。
  • Coreservlets 還提供了許多涵蓋廣泛主題的 Android 教程。 這不是一本印刷書籍,因此在線收藏會不時擴大和更新。
  • 如果您正在尋找免費的設計建議,您應該查看 Styling Android。 這也不是一本合適的書,因此內容會定期更新。

我應該指出,大多數 Android 教程以及幾乎所有書籍都假定您已經了解 Java。 如果您不這樣做,則必須先從那裡開始,然後再繼續使用這些 Android 資源。

C 夏普、C、C++

  • C# 和 .NET Micro Framework 初學者指南是 GHI Electronics 相對較新的出版物。 這是一個簡短但簡明的指南,可以幫助您入門。
  • C# 編程黃皮書由赫爾大學出版,由於它是大學課程的一部分,因此該書會定期更新。
  • 有關更具體的信息,您可以轉到 C# 中具有面向對象設計模式的數據結構和算法。 您還應該查看 Joseph Albahari 的 C# 中的線程
  • 由於 C 和 C++ 已經存在了一段時間,因此有很多可供選擇,但其中許多資源已經過時,或者只是很糟糕。 如果您正在尋找 C++ 書籍和教程,我建議您查看這個 Stackoverflow 線程並找到一些好東西。 我應該指出,並非所有這些書都是免費的。
  • 至於 C,您可以查看 C Wikibook、Deep C and C++ 和 Learn C The Hard Way

吉特

  • 如果您不確定 Git 是否適合您,示例版本控制將幫助您在 Apache Subversion、Mercurial、Git 和 Veracity 之間做出選擇。
  • 斯坦福的 Git Magic 是另一個優質資源,與我們列表中的大多數書籍不同,它有多種語言版本,包括中文、法語、意大利語、波蘭語和俄語。
  • GitHub 備忘單是 Git 和 GitHub 的隱藏功能和高級用戶提示的有用集合。

HTML 和 CSS

許多作者選擇在一個出版物中涵蓋 HTML 和 CSS,因此我將兩者都列出。

  • Google HTML/CSS 樣式指南是了解更多最佳實踐的好地方。 該指南包含管理 HTML 和 CSS 樣式、格式、元數據等的無數規則。
  • Shay Howe 的《學習編寫 HTML 和 CSS 代碼》和《學習編寫高級 HTML 和 CSS 代碼》是兩個具有不同學習曲線的簡單指南,適合希望學習基礎知識或通過一些高級技術擴展技能的人。
  • 如果您熟悉 HTML,但需要更新技能,那麼 Dive Into HTML5 是一個不錯的選擇。 重點是遷移到 HTML5 和利用新功能,此外,您可能會欣賞 Mark Pilgrim 的風格。 其他 HTML5 資源包括 HTML5 Canvas、HTML5 For Web Designers 和 HTML5 for Publishers。

iOS

五年前,Apple 為 iOS 開發者發布了六本免費電子書:Cocoa Fundamental's Guide、The Objective-C Programming Language、iOS Application Programming Guide、Object Oriented Programming With Objective-C、iOS Technology Overview 和 iOS Human Interface Guidelines。 這些書籍通過 iBookstore 免費分發。 Apple 還為剛接觸 iOS 的開發者提供了額外的資源,例如立即開始開發 iOS 應用程序。

  • 強烈推薦來自 Syncfusion 的 iOS Succinctly,Techotopia 的 iOS 8 App Development Essentials 也是如此。

  • 隨著 Swift 的推出,Apple 出版了一本 500 頁的綜合性書籍,涵蓋了新的編程語言。 標題不是很有想像力:The Swift Programming Language。

爪哇

如果您對 Java 或 JavaScript 感興趣,那麼您可以認為自己很幸運,因為有幾十本免費分發的好書可供您使用。 事實上,我決定不列出其中的大部分,因為這篇文章最終看起來像一個 Java 101 類。

  • Bruce Eckel 的 Thinking in Java 脫穎而出並受到強烈推薦。

  • Google 的 Java 風格指南對於新手和老手來說都是必讀的。

  • 轉到另一家科技巨頭,Sun 的 Java 教程是另一個有用的 Java 內容的彙編。

  • 《Java 編程簡介》是普林斯頓的一本教科書,所以如果你負擔不起常春藤大學的教育費用,你至少可以使用相同的教學大綱。 還值得注意的是,世界各地的許多大學都提供類似的教科書,如果您不是以英語為母語的人,這些教科書可能會派上用場。

JavaScript

正如我所說,網上有幾十種不同的 JavaScript 書籍、教程和代碼庫,所以我將把我的列表縮小到幾個標題。

  • Addy Osmani 的 Learning JavaScript Design Patterns 旨在簡化學習過程並使 JS 模式更易於理解。

  • O'Rilley 的另一本出版物,Eric Elliott 的 Programming JavaScript Applications,也以 HTML 格式免費提供。

  • Google JavaScript 樣式指南也應該派上用場。

PHP

由於 PHP 已經存在了很長時間,因此不乏免費書籍和其他資源。 但是,其中許多已經過時(儘管如果您只是在努力學習基礎知識,它們仍然很有用)。

  • Hacking With PHP(以前稱為 Practical PHP Programming)是一個經常更新的資源,在其最新版本中,有很多關於 PHP 5.6 的新鮮信息。

  • PHP 最佳實踐是不言自明的,並且會定期更新。

  • 如果您正在尋找可以在一個地方提供所有內容的東西,那麼 PHP Programming Wikibook 可能就是您所追求的。

如果你使用的是 Laravel 之類的框架,你仍然可以找到一些有用的免費贈品,即官方文檔。

Perl

  • Greg London 的 Impatient Perl 是一個快速參考指南。 它對剛入門的開發人員很有用,但也可供經驗豐富的開發人員參考。

  • Modern Perl 是相對較新的出版物,因此它非常適合具有一定 Perl 經驗但需要更新技能的開發人員。

  • O'Rilley 的 Mastering Perl 不是最新的 Perl 出版物,但它仍然是一個很好的資源,有很多教程。

Python

Python 開發人員是一群幸運的人,因為他們可以從幾十本免費書籍中進行選擇。 這會導致一個問題,因為我無法在本文中列出足夠多的內容。 有許多面向新手和久經沙場的老兵的出版物,以及一些非常具體的小眾內容。 儘管如此,還是有一些明顯的選擇,例如 Google 的 Python 出版物。

  • Google 提供了完整的 Python 類以及 Python 樣式指南。

  • New Mexico Tech 提供了常用 Python 功能的簡單指南,可以為綠色開發人員節省時間。

  • Mark Pilgrim 的 Dive Into Python 3 完全是關於遷移到 Python 3.x,因此對於需要提高技能的開發人員來說,它是一個不錯的選擇。

Ruby 和 Ruby on Rails

Ruby 和 Ruby on Rails 是許多開發人員的首選武器,因此不乏書籍和用戶指南。

  • Learn Ruby The Hard Way 是一系列練習,因此它採用實用的方法來學習。

  • 託管在 GitHub 上的 Ruby 樣式指南記錄了樣式和最佳實踐。

  • Ruby in 20 Minutes 是一個小型的 Ruby 教程,專為需要一些手把手的新手用戶設計。

  • Ruby on Rails Style Guide 是另一個專注於風格和最佳實踐的 GitHub 指南。

  • Ruby on Rails 4.0 指南是涵蓋 RoR 4.0 大部分方面的綜合指南。

  • 在修改 Craigslist 克隆時學習 Ruby on Rails 是一個實用教程。 它可供綠色開發人員以及具有 Rails 背景的開發人員使用。

有用的資源只需點擊一下

正如我之前所說,此列表僅限於涵蓋某些語言的免費出版物,不涵蓋小眾主題或與語言無關的編程書籍。 如果您正在尋找更具體的內容,我建議您查看 GitHub 的免費編程書籍列表。

此外,書籍並不是提高技能的唯一途徑。 今年早些時候,Toptal 發布了一份由我們社區推薦的優質開發者博客列表。 如果您錯過了,請檢查一下。 我還建議您查看 Toptal 的資源頁面; 我們的團隊正在努力擴展和更新所有部分,並將其變成所有自由開發者的重要資源,而不僅僅是 Toptal 成員。

不要偷懶。在任何環境中,您都可以隨時學習新技能。

不要偷懶。 在任何環境中,您都可以隨時學習新技能。
鳴叫

我還打算寫幾段介紹最新的電子書軟件和硬件,但我決定不這樣做。 此外,我們的讀者已經熟悉各種小工具,知道什麼最適合他們,電子墨水或漂亮的 IPS LCD。 無論如何,硬件不應該是您最關心的問題。

一本好書就是一本好書,無論您選擇如何閱讀它,在鋁片或粘土片上。
鳴叫

就個人而言,我實際上正在考慮從中國購買一款便宜的雙 SIM 卡智能手機,背面帶有電子墨水顯示屏。 當我前往海灘時,這應該可以釋放我背包中的一些空間; 兩個移動網絡以將漫遊成本降至最低,並在單個設備中安裝一個合適的電子書閱讀器,這聽起來很實用,對吧? 所以,我只需要一部手機、一條毛巾、一瓶水和一些人字拖(雙關語)。