Awesome Open Source
Awesome Open Source

最优质的学习资料

本项目收集最优质的计算机科学学习资料

收录的依据主要是:在领域内的经典程度、作者权威性、推荐者的数量、推荐者的权威性、豆瓣评分和评价。不放心的同学可以在阅读之前在 Google、豆瓣、知乎 搜索相关的评价。

专治“学习资料不足恐惧症”。

本项目将持续更新。如果这个项目有幸帮助到了你,加个 Star 吧!

快速开始

在进行全面的资料列举之前,我想提醒读者:“过于丰富”的资料清单可能会造成畏惧或者自满的心态,真正开始学习才是提升自己的第一步。

如果你不想花费时间在挑选和犹豫上,那么本小节为你总结了几本最值得投入精力的书,以便你快速开始

目录

程序设计思想和编程语言

回到目录 ↑

建立对计算机和编程的基本认识。

计算机体系结构

回到目录 ↑

计算机底层运行机制。计算机如何执行我们编写的程序。

算法与数据结构

回到目录 ↑

  • Algorithms(算法概论) 相对于 Introduction to Algorithms 和 Algorithms,这本书很薄,但是它的讲解简单优美有趣,适合初学者。
  • Algorithms 每个开发者必知必会的数据结构和算法。也是经典教材,评价很高。相比于 Introduction to Algorithms,这本书是从开发者的需要出发,介绍那些实用的算法,相对易懂;而 Introduction to Algorithms 是更加系统、深入地研究算法理论。配套网站中包含了算法精讲以及习题答案。
  • Introduction to Algorithms 推荐率最高的算法书。经典、全面、深入。它的难度和容量可能有点大,不适合入门者。不适合以“解决问题”为导向的学习,适合以“算法研究”为导向的学习。
  • 编程珠玑。相对较薄的一本书。本书并没有系统地归纳各种算法,而是通过一些精心设计的有趣而又颇具指导意义的程序实例,引导读者理解问题、选择和实现算法。
  • 编程之美 面试的经典问题,引发读者思考,领略算法的乐趣。
  • 算法竞赛入门经典 与前面的算法书相比,它的实用性非常强,是一本“解题”的教材,适合学生学习算法(刷题)入门。真希望自己在高中阶段就了解到这本书,开启编程(竞赛)的大门。。。

操作系统理论

回到目录 ↑

计算机网络

回到目录 ↑

数据库

回到目录 ↑

  • Berkeley CS186 由于数据库学习有很强的商业价值,因此该领域比较少人编写传统教材(牛人都忙着挣钱)。自学数据库,比较适合看这门课程视频入门,然后阅读下面的进阶资料。
  • Architecture of a Database System 一篇梗概性论文,提供了独特的对关系型数据库管理系统(RDBMS)如何工作的高层次观点,是后续学习的实用梗概。
  • Readings in Database Systems 又称“数据库红书”,数据库领域的经典论文合集。时效性很高。
  • 数据库管理系统原理与设计 数据库教材。比较老但是非常经典。

上述数据库经典资料推荐都来自Teach Yourself Computer Science

  • 高性能 MySQL 如果你已经在工作实践中使用 MySQL,要深入学习 MySQL、对其进行调优,那么这本书是必读的;否则,还是优先阅读上面的经典资料。

分布式系统

回到目录 ↑

编译原理

回到目录 ↑

操作系统实践(Linux 运维)

回到目录 ↑

UNIX 编程

回到目录 ↑

工程化

回到目录 ↑

GIT

软件工程

大型软件的设计思想

这个主题可能更适合拥有一定编程经验以后再阅读,结合自己的编程经验才能有深刻的理解。

程序员的自我修养

回到目录 ↑

C/C++

回到目录 ↑

更多的资料直接看下面的链接或者上知乎搜索。

Python

  • The Hitchhiker’s Guide to Python! google 搜索 Python guide,前四位都是它或它的中文翻译。GitHub 仓库的 Star 数量很多。定位是"Python best practices guidebook"。
  • Fluent Python 豆瓣评分最高的 Python 书籍。比较适合进阶。

Rust

  • The Rust Programming Language Rust 官方推荐教材。详尽涵盖了 Rust 的理论基础。最好结合下面实践资料一起学习。
  • Rust by Example Rust 官方出品的在线练习网站,通过练习来巩固这门语言的知识点。
  • rustlings Rust 官方出品的小练习,帮助你熟悉 Rust 编程,包括代码读、写,以及 Rust 编译器的使用,实践性教程。

前端

回到目录 ↑

JavaScript 开发进阶

v8

前端杂项

Angular

官方文档就不需要提了,这里只列举用于进阶的资料。

机器学习

回到目录 ↑

书籍:

其他机器学习书单:机器学习经典书籍 人工智能入门书单(附 PDF 链接)

课程:

其他机器学习资源合集:

  • Awesome Machine Learning 机器学习的 Awesome List,Star 数超高。README 按照语言分类,列举各个语言下的机器学习工具(这个列表是应该是为专业人员建立的),非常完备,但是更适合已经入门者。其他文档分别推荐了博客、书籍、公开课、会议。
  • Machine learning Resources 收集机器学习资源的 GitHub 仓库,列举了很多入门资料。
  • Deep Learning Papers Reading Roadmap 这个 repository 收集了深度学习各个领域中最基础、重要的研究论文,进阶者可以从这里入手。star 数量很高。
  • Distill Distill 是一个期刊平台,使用了交互式、视觉化的用户界面,注重对机器学习研究成果的理解与诠释。
  • deeplearning.net 给出了很多基础性的论文。

相关知乎问题:机器学习该怎么入门? - 知乎 普通程序员如何正确学习人工智能方向的知识? - 知乎 深度学习如何入门? - 知乎 YouTube 上有哪些计算机方面的值得推荐的公开课? - 知乎

  • deepo 轻松在 Docker 上搭建开发环境。
  • Convolution arithmetic 用 动图+论文 详细解释了卷积和逆卷积的过程。

TensorFlow

PyTorch

数学基础

回到目录 ↑

线性代数

概率与统计

Optimization (优化理论)

深入学习机器学习的同学可能需要关注这个领域。相关推荐里少不了这两本:

  • Convex Optimization. Stephen Boyd, 2004, Cambridge university press.
  • Numerical Optimization. Nocedal, J. Wright, S. 2006, Springer.

杂项

回到目录 ↑

Vim

  • Learn-Vim 教程类型,适合跟着学习。
  • vim-galore 手册类型,适合复习查阅。

清单

公开课


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
web (1,048
learning (381
computer-science (176
software-engineering (73