转自 | 程序员书库(ID:OpenSourceTop) 


今天,不推荐书,我们决定和大家推荐一个神奇的网站,上面搜集了很多书籍,而且都是免费的!


640?wx_fmt=jpeg


这个网站简直是程序员的福音,因为这里面收集了大量免费的在线计算机科学、工程类和编程书籍以及一些教材和课程讲义,目前一共有1211本书籍。所有这些书籍都是通过合法渠道获取,大家可以在网站上免费下载。


该网站目前共分为六大领域,分别为Computer Science(计算机科学),Mathematics(数学),Supporting Fields(支持领域),Operating System(操作系统),Programming/Scripting(编程)、其他这六大领域,不同领域下还有细分的领域。


640?wx_fmt=jpeg


如计算机科学底下就还包括了30多个细分领域:


640?wx_fmt=png


此外,浏览书籍你还可以通过五种方式去浏览,分别为:所有书籍、按类别、按作者、按出版商甚至是按照书籍的许可证。


640?wx_fmt=jpeg


除此之外,本网站还做了个最受欢迎的书籍排行:


640?wx_fmt=jpeg


从该书籍排行上,我们可以看出C/C++相关的书籍更受读者欢迎,下面我们详细了解下这几本最受欢迎的书籍分别是哪些:


01《Objective Caml简介》


640?wx_fmt=jpeg


Objective Caml (OCaml)是一种流行的、表达性的、高性能的ML方言,由法国INRIA的一个研究团队开发。这本书提供了一种实用的语言介绍和指南,主题从如何编写程序到影响OCaml中程序开发的概念和惯例。全文可分为三个主要部分:

● 核心语言(第2-10章)。

● 模块系统(第11-13章)。

● 对象和类(第14-17章)。


02《Notes for the Course of Algorithms》


640?wx_fmt=jpeg


这是马里兰大学帕克分校计算机科学系教授David M. Mount的课堂讲义,与程序不同,算法是一种数学实体,它独立于特定的编程语言,机器或编译器。因此,在某种意义上,算法设计可以说是程序设计背后的数学理论。


03《Lessons In Electric Circuits》


640?wx_fmt=jpeg


这是一本和电力、电子学的免费有关的教科书。


04《A Beginners C++》


640?wx_fmt=jpeg


主要用于介绍使用C++作为实现语言的计算机科学课程。这本书需要你精通电脑基础知识,还需要有文字处理软件包的经验,虽然大多数学校都提供了有限的编程入门课程,但是这本并非是在这些基础上深入的。


05《Introduction to Object-Oriented Programming Using C++》


640?wx_fmt=jpeg


这是在线课程“使用C++进行面向对象编程简介”中的讲座集。在本课程中,面向对象是一种新的编程概念,可以帮助您开发高质量的软件。面向对象也被引入作为一个概念,使项目的开发更容易。需要注意的是,这不是学习C ++编程语言的课程。


06《A Short Introduction to Operating Systems》


640?wx_fmt=jpeg


这些是操作系统的课堂讲稿,由挪威奥斯陆大学工程学院的教授马克·伯吉斯提供。这些笔记涵盖了大多数操作系统的基本主题。读者会发现这些课堂讲稿是一份不错的入门资料,可以帮助读者很好地掌握操作系统的主题。


07《数据结构与算法》


640?wx_fmt=jpeg


本书的主要目标是推广使用C++的面向对象设计,并说明新兴的面向对象设计模式的使用,还展示了如何使用这些模式来创建好的软件设计。本书一直被用作研究生阶段的教材使用。


08《C Programming Tutorial (K&R version 4)》


640?wx_fmt=jpeg


本书针对的是初学者,内容涵盖C语言的基础知识如变量,使循环的方法,决策的方法,访问文件的方法等。


09《Programming The Nintendo Game Boy Advance: The Unofficial GuideGame Boy 》


640?wx_fmt=jpeg


Advance是一款先进的手持式视频游戏机,具有强大的32位微处理器,16位图形,立体声数字声音,而且十分小巧,它也是历史上销量最高的视频游戏系统,这是一本让你成为一个GBA程序员的书,教你控制台编程,不过首先你得有C语言基础。


10《Computer Organization and Design Fundamentals》


640?wx_fmt=jpeg


这本书适合计算机组织的第一门课程。这种风格与作者的汇编语言书很相似,因为它强烈支持学生自学。作者尝试使用实际术语和示例来解决模数转换,CRC和内存组织等主题,而不是工程师青睐的纯粹理论或技术方法。


剩下的还有1200多本的书籍,这里就不一一介绍了,感兴趣的伙伴可以自己到网站上浏览。

网站地址:http://www.freetechbooks.com/


网站由来


对于这样一个神奇的网站,你一定想知道这个网站是如何建立的吧,其实这个网站早在2004年就已经建立了,只不过当时该创建者只是一个基于phpBB 2.0创建的论坛,后来,随着越来越多的书籍加入以及移动端的兴起,原来的论坛结构显然不符合网站的长期目标。这使得创建者不得不重新设计网站。


640?wx_fmt=jpeg


正好当时Web开发已经越来越成熟了,许多PHP、JavaScript和CSS框架可供选择,而且程序员相关的技术社区也越发的成熟,许多问题都可以通过这些网站寻找到答案,最终,他选择Laravel框架,因为它易于使用,并且遵循MVC设计。在当时是最流行的PHP框架,在GitHub上有很多现成的社区和第三方包。仅仅用了一个月这个网站的原形就出来了。


到了今天,网站已经完成了将所有可重用数据从旧的phpBB数据库传输到新数据库的工作。我仍然在添加更多的数据来补充书籍的其他信息,特别是关于书籍封面和作者。看到这里,你是不是也和一样十分佩服这位开发者。