# cyc2018/cs-notes

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/cyc2018-cs-notes).**

184,601 stars · 50,876 forks

## Links

- GitHub: https://github.com/CyC2018/CS-Notes
- Homepage: http://cyc2018.xyz
- awesome-repositories: https://awesome-repositories.com/repository/cyc2018-cs-notes.md

## Topics

`algorithm` `computer-science` `cpp` `interview` `java` `leetcode` `python` `system-design`

## Description

This repository serves as a comprehensive educational resource covering core computer science concepts, software engineering principles, and system architecture. It provides detailed explanations of fundamental data structures and algorithms, alongside in-depth analysis of database management systems, including transaction properties, storage engines, and concurrency control mechanisms.

The collection also offers extensive documentation on the Java programming language, ranging from collection internals and memory management to concurrency primitives and object-oriented design patterns. Furthermore, it covers essential networking protocols, operating system fundamentals such as process management and file systems, and architectural patterns for distributed systems. Development tools, including version control and project configuration utilities, are also documented to support standard software engineering workflows.

## Tags

### Education & Learning Resources

- [Computer Science Curricula](https://awesome-repositories.com/f/education-learning-resources/educational-resources/courses-training-certifications/courses-structured-learning/computer-science-curricula.md) — Organizes a broad collection of academic notes covering fundamental computer science topics and software engineering principles. ([source](https://cdn.jsdelivr.net/gh/CyC2018/CS-Notes@master/README.md))
- [Hash Maps](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/data-structure-implementations/data-structures/hash-maps.md) — Illustrates how bucket-based arrays and collision resolution strategies enable efficient key-value lookups. ([source](https://github.com/CyC2018/CS-Notes/blob/master/notes/Java%20%E5%AE%B9%E5%99%A8.md))
- [Disjoint Set Unions](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/data-ordering-and-retrieval/disjoint-set-unions.md) — Describes efficient algorithms for managing partitioned sets through union and find operations. ([source](https://github.com/CyC2018/CS-Notes/blob/master/notes/%E7%AE%97%E6%B3%95%20-%20%E7%9B%AE%E5%BD%95.md))

### Data & Databases

- [ACID Properties](https://awesome-repositories.com/f/data-databases/database-management-systems/database-architectures/acid-properties.md) — Explains the core principles of atomicity, consistency, isolation, and durability required for reliable transaction processing. ([source](https://github.com/CyC2018/CS-Notes/blob/master/notes/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F%E5%8E%9F%E7%90%86.md))

### Software Engineering & Architecture

- [Distributed Computing Paradigms](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/distributed-computing-paradigms.md) — Details distributed locking mechanisms essential for maintaining consistency across independent nodes in networked environments. ([source](https://github.com/CyC2018/CS-Notes/blob/master/notes/%E5%88%86%E5%B8%83%E5%BC%8F.md))
- [Associations](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/object-oriented-foundations/associations.md) — Defines structural relationships between classes that maintain independence from specific execution states. ([source](https://github.com/CyC2018/CS-Notes/blob/master/notes/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E6%80%9D%E6%83%B3.md))

### Part of an Awesome List

- [Developer Skills](https://awesome-repositories.com/f/awesome-lists/devtools/developer-skills.md) — Extensive computer science notes covering algorithms and interview preparation.
- [Computer Science Foundations](https://awesome-repositories.com/f/awesome-lists/learning/computer-science-foundations.md) — Essential technical interview and CS foundation notes.
- [Interview Preparation](https://awesome-repositories.com/f/awesome-lists/learning/interview-preparation.md) — Essential computer science foundations and technical interview study guides.

### Development Tools & Productivity

- [Version Control](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/developer-tools/version-control-ecosystems/version-control.md) — Summarizes standard version control workflows and commands for tracking source code changes. ([source](https://github.com/CyC2018/CS-Notes/blob/master/notes/Git.md))

### Operating Systems & Systems Programming

- [Process and Memory Management](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management.md) — Covers system calls used to monitor and manage the execution states of child processes. ([source](https://github.com/CyC2018/CS-Notes/blob/master/notes/Linux.md))

### Programming Languages & Runtimes

- [Serialization Mechanisms](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/java-ecosystem/serialization-mechanisms.md) — Outlines the transformation of object states into byte streams for effective storage or network transmission. ([source](https://github.com/CyC2018/CS-Notes/blob/master/notes/Java%20%E5%AE%B9%E5%99%A8.md))
