CS-Notes/README.md
2018-06-12 17:26:19 +08:00

173 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- ![](https://img.shields.io/badge/update-today-blue.svg) ![](https://img.shields.io/badge/gitbook-making-lightgrey.svg)</br> -->
| | Ⅱ | Ⅲ | Ⅳ | | Ⅵ | Ⅶ | Ⅷ | Ⅸ | |
| :--------: | :---------: | :---------: | :---------: | :---------: | :---------:| :---------: | :-------: | :-------:| :------:|
| 算法[:pencil2:](#算法-pencil2) | 操作系统[:computer:](#操作系统-computer)|网络[:cloud:](#网络-cloud) | 面向对象[:couple:](#面向对象-couple) |数据库[:floppy_disk:](#数据库-floppy_disk)| Java [:coffee:](#java-coffee)| 分布式[:sweat_drops:](#分布式-sweat_drops)| 工具[:hammer:](#工具-hammer)| 编码实践[:speak_no_evil:](#编码实践-speak_no_evil)| 后记[:memo:](#后记-memo) |
## 算法 :pencil2:
> [剑指 Offer 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/剑指%20offer%20题解.md)
目录根据原书第二版进行编排。
> [Leetcode 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Leetcode%20题解.md)
做了一个大致分类,并对每种分类题型的解题思路做了总结。
> [算法](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/算法.md)
主要参考 Robert Sedgewick 的算法书进行实现,源代码以及测试代码可在另一个仓库获取。
## 操作系统 :computer:
> [计算机操作系统](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机操作系统.md)
参考现代操作系统、Unix 环境高级编程、深入理解计算机系统。
> [Linux](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Linux.md)
参考鸟哥的 Linux 私房菜。
## 网络 :cloud:
> [计算机网络](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机网络.md)
参考谢希仁的计算机网络、计算机网络自顶向下方法、TCP/IP 详解。
> [HTTP](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/HTTP.md)
参考图解 HTTP更多的是参考网上的文档比如 MDN、维基百科等。
> [Socket](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Socket.md)
参考 Unix 网络编程。
## 面向对象 :couple:
> [设计模式](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/设计模式.md)
参考 Head First 设计模式以及设计模式 可复用面向对象软件的基础,实现了 Gof 的 23 种设计模式。
> [面向对象思想](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/面向对象思想.md)
内容包括三大原则(继承、封装、多态)、类图、设计原则。
## 数据库 :floppy_disk:
> [数据库系统原理](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/数据库系统原理.md)
参考数据库系统原理。
> [SQL](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/SQL.md)
参考 SQL 必知必会。
> [Leetcode-Database 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Leetcode-Database%20题解.md)
Leetcode 上数据库题目的解题记录。
> [MySQL](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/MySQL.md)
参考高性能 MySQL。
> [Redis](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Redis.md)
参考 Redis 设计与实现以及 Redis 实战。
## Java :coffee:
> [Java 基础](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20基础.md)
参考 Effective Java、Java 编程思想,也有部分内容参考官方文档以及 StackOverflow。
> [Java 虚拟机](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20虚拟机.md)
参考 深入理解 Java 虚拟机。
> [Java 并发](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20并发.md)
参考 Java 编程思想以及 Java 虚拟机。
> [Java 容器](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20容器.md)
包含容器源码的分析。
> [Java I/O](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20IO.md)
包含 NIO 的原理以及实例。
## 分布式 :sweat_drops:
> [分布式基础](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/分布式基础.md)
参考大规模分布式存储系统。
> [分布式问题分析](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/分布式问题分析.md)
内容包括分布式事务、负载均衡、分布式锁、分布式 Session、分库分表。
## 工具 :hammer:
> [Git](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Git.md)
一些 Git 的使用和概念。
> [正则表达式](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/正则表达式.md)
参考正则表达式必知必会。
## 编码实践 :speak_no_evil:
> [重构](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/重构.md)
参考重构:改善既有代码的设计。
> [代码可读性](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/代码可读性.md)
参考编写可读代码的艺术。
> [代码风格规范](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/代码风格规范.md)
Google 开源项目的代码风格规范。
## 后记 :memo:
**关于仓库**
笔者在学习的过程中有做笔记的习惯,一方面是为了更深入的理解,另一方面是因为不习惯一些书籍文章的语言描述和排版风格。
[BOOKLIST](https://github.com/CyC2018/Interview-Notebook/blob/master/BOOKLIST.md),这个书单是笔者至今看的一些比较好的技术书籍,虽然没有全都翻完,但是每本书多多少少都看过一部分。
这个仓库算是笔者的一个学习笔记,主要记录一些比较重要的知识点,希望对大家有所帮助。
笔记并不是从网上到处复制粘贴拼凑而来,虽然少部分内容会直接引入书上原文或者官方技术文档的原文,但是没有直接摘抄其他人的博客文章,只做了一点参考,参考的文章会在最后给出链接。
**如何贡献**
笔记内容是笔者一个字一个字打上去的,难免会有一些笔误,如果发现笔误可直接在相应文档进行编辑修改。
**授权相关**
虽然没有加开源协议,但是默认允许非商业使用。网上已经有蛮多博客文章使用了本仓库的内容,但是都申明为原创文章,而且最后也没有给出参考链接。虽然笔记内容都已经开源了,但是辛辛苦苦写的内容被别人标为原创内容,还是会有点不愉快。转载使用请注明出处,谢谢。
**上传方案**
笔者在本地使用为知笔记软件进行书写,为了方便将本地笔记内容上传到 Github 上实现了一整套自动化上传方案包括文本文件的导出、提取图片、Markdown 文档转换、Git 同步。
进行 Markdown 文档转换是因为 Github 使用的 GFM 不支持 MathJax 公式和 TOC 标记,所以需要替换 MathJax 公式为 CodeCogs 的云服务和重新生成 TOC 目录。这里提供了笔者实现的 GFM 文档转换工具的下载:[GFM-Converter](https://github.com/CyC2018/GFM-Converter)。
**排版指南**
笔记内容按照 [中文文案排版指北](http://mazhuang.org/wiki/chinese-copywriting-guidelines/) 进行排版,以保证内容的可读性。这里提供了笔者实现的中英混排文档在线排版工具:[Text-Typesetting](https://github.com/CyC2018/Markdown-Typesetting),目前实现了加空格的功能,之后打算实现对英文专有名词提示首字母大写的功能。
不使用 `![]()` 这种方式来引用图片是为了能够控制图片以合适的大小显示。而且 GFM 不支持 `<center> ![]() </center>` 让图片居中显示,只能使用 `<div align="center"> <img src=""/> </div>` ,所以只能使用 img 标签来引用图片。
**声明**
本仓库不参与商业行为,不向读者收取任何费用。(This repository is not engaging in business activities, and does not charge readers any fee.)
**鸣谢**
[TeeKee](https://github.com/linw7)