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 卡智能手机,背面带有电子墨水显示屏。 当我前往海滩时,这应该可以释放我背包中的一些空间; 两个移动网络以将漫游成本降至最低,并在单个设备中安装一个合适的电子书阅读器,这听起来很实用,对吧? 所以,我只需要一部手机、一条毛巾、一瓶水和一些人字拖(双关语)。