珍藏资料

这个页面分享宝贵的资料、教程、网站、(书籍?)。

Teach Yourself Computer Science 如果你是一个自学成才或从培训班出来的的工程师,那么你就欠自己一些计算机科学的知识。好在其实你不必花上四年的时间,和一大笔学费,就可以学到这些东西。现在有很多学习资源,但是其中质量参差不齐,你需要这两个问题的答案。1. 哪些东西我需要学习?为什么? 2. 这些学科最好的教材是什么?TL; DR: 这个网站就是这两个问题的答案。

计算机教育中缺失的一课 中文版 英文版 Youtube视频 很多刚从学校毕业进入到公司工作的同事,对于 shell,git,编辑器等的知识缺失太多(包括我自己),因为在学校里面会教给你很多知识,但是没有教给你工具的使用。这个系列的课程就给你补上了这些在学校你一般用不到的一些工具的使用和原理。

Linux C编程一站式学习 旁征博引,深入浅出,不光讨论了C语言的入门和特性,还经常评论编程语言的话题,介绍很多Linux的思想、经验等,无论你是C、Python、Ruby还是其他语言的程序员,只要你用得到Linux,这个教程都值得一读!

shell十三问 Chinaunix一位用户发的精华帖子。shell 有很多强大的工具,例如 awk,sed,grep,如果掌握了很多时候可以快速解决问题,不需要额外编写大量脚本。这篇帖子解答了我接触shell的大部分疑惑,shell与其他编程语言有很大不同,建议阅读本贴。

The Architecture of Open Source Applications 建筑师在被训练的时候,看过了无数的建筑,也看过了大师们对这些建筑的评价。而软件工程师却很少有机会接触庞大的问题,很多人总是闷头写代码,相同的错误被一批又一批的人重复触犯。这四本书就是想通过介绍经典的软件项目,来改变这个现状。

project-based-learning 跟上面这个资源类似,不过这个是通过一些实际的项目来教你学一门语言。

jmarshall HTTP系列文章 有关 CGI,socket,HTTP 的几篇文章不错,简单易懂。

C Programming Tutorial 一份不错的C语言基础教程。

agentzh 的 Nginx 教程 春哥的 Nginx 教程,可惜的是很久不更新了。

use-the-index-luke 面向开发人员的数据库性能的在线书 (A site explaining SQL indexing to developers—no crap about administration.)。

Rosetta Code 这是我快乐的源泉。

TLDP 非常实用的文档,对初学者来说这个 HOWTO 非常浅显易懂,GUIDE 和 FAQ 部分也很友好。还可以下载各种语言的翻译。

Programming Tutorials and Source Code Examples 一些 Java、数据库等的教程,基本上都是简单直观的源代码。

Best Paper Awards in Computer Science (since 1996) 计算机方面值得一读的论文,分了各个学科。

Beej 的教程 C语言教程,GDB教程,Linux进程间通讯教程,网络教程等。非常使用,quick and dirty。

Linux From Scratch 简称为 LFS。可以说是一个发行版,也可以说是一个在线书籍。它会教你怎么一步一步构建 Linux,包括构建 Linux 的工具,也都是从零开始编译出来的。一遍阅读一遍动手实践一遍,你会得到一个完全由自己构建出来的 Linux. 做完之后有两个好处:1)可以让你更了解 Linux,比如我之前有很多问题,“发行版到底是什么”,“Linux 是怎么启动的”,“GNU 的软件都有啥”等等问题,在完成之后都可以得到解答。2)可以锻炼手指,一个优秀的 SRE 已经将常用的命令都内化成肌肉记忆了,编译 LFS 可以锻炼手指肌肉,让你敲命令更快(开玩笑)。 附博客相关的文章:《编译LFS的一些经验》《开源软件源码编译指南

stack overflow 有一个非常实用的技巧。当你想了解一个新技术的时候,看完了一些基础内容,可以这么使用 stack overflow:打开这个技术的名字的 tag,比如 typescript, 然后选择通过 vote 排序:https://stackoverflow.com/questions/tagged/typescript?tab=Votes 从上到下可以看完前 10 个点赞最多的内容,这基本上是人们对于这个技术最常见的 10 个问题。非常有用。

The GNU C Reference Manual GNU 的 C 语言参考手册,可以认为是官方的手册,非常简洁和清楚。甚至可以拿来入门 C 语言。

演算法笔记》 国立台湾师范大学的算法资料,讲的很好。

Cisco Networking Academy: Introduction to Networks 这是一个很好的网络入门资料,基本上是零基础的。这个资料的优点就在于它是 Cisco 写的,学习网络最大的困惑就是它太抽象了,不想你写程序可以运行一下试试。这个资料里面有很多设置好的,Cisco Packet Tracer 实验,它是一个网络环境模拟器,类似于物理网络中的 Docker,使用它你可以把玩各种路由器、交换机等网络设备。

Decoded: GNU coreutils 对于 Linux 上常用的命令行工具的代码分析,告诉你核心逻辑的函数,还有图片描述核心逻辑。比如 cat 的。既能够学习 C 语言,又能学习 Linux。