Convert Figma logo to code with AI

CyC2018 logoCS-Notes

:books: 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计

174,630
50,804
174,630
180

Top Related Projects

A complete computer science study plan to become a software engineer.

💯 Curated coding interview preparation materials for busy software engineers

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Interactive roadmaps, guides and other educational content to help developers grow in their careers.

📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings

:books: Freely available programming books

Quick Overview

CS-Notes is a comprehensive collection of study notes and resources for computer science and technology topics. It covers a wide range of subjects including data structures, algorithms, operating systems, network protocols, and more. The repository serves as a valuable reference for students, developers, and professionals in the field of computer science.

Pros

  • Extensive coverage of various computer science topics in one place
  • Well-organized content with clear categorization
  • Regular updates and contributions from the community
  • Includes both theoretical concepts and practical examples

Cons

  • Primarily written in Chinese, which may limit accessibility for non-Chinese speakers
  • Some topics may not be covered in as much depth as dedicated textbooks or courses
  • The sheer volume of information can be overwhelming for beginners
  • Lacks interactive elements or exercises for hands-on learning

Note: As this is not a code library, the code example and quick start sections have been omitted as per the instructions.

Competitor Comparisons

A complete computer science study plan to become a software engineer.

Pros of coding-interview-university

  • More comprehensive coverage of computer science fundamentals
  • Structured learning path with a clear roadmap
  • Includes video resources and links to external learning materials

Cons of coding-interview-university

  • Primarily in English, which may limit accessibility for non-English speakers
  • Less focus on practical coding examples and problem-solving
  • May be overwhelming for beginners due to its extensive content

Code comparison

CS-Notes:

public class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;
        while (curr != null) {
            ListNode nextTemp = curr.next;
            curr.next = prev;
            prev = curr;
            curr = nextTemp;
        }
        return prev;
    }
}

coding-interview-university:

def reverse(head):
    prev = None
    current = head
    while current:
        next_node = current.next
        current.next = prev
        prev = current
        current = next_node
    return prev

Both repositories provide valuable resources for computer science and coding interview preparation. CS-Notes offers more concise, topic-focused content with practical examples, while coding-interview-university provides a broader, more structured approach to learning computer science fundamentals. The choice between the two depends on individual learning preferences and goals.

💯 Curated coding interview preparation materials for busy software engineers

Pros of tech-interview-handbook

  • More comprehensive coverage of non-technical aspects of interviews (e.g., behavioral questions, negotiation)
  • Better organized structure with clear sections for different interview stages
  • Includes a curated list of external resources and study materials

Cons of tech-interview-handbook

  • Less in-depth coverage of specific computer science topics compared to CS-Notes
  • Primarily focused on web development and front-end technologies, which may not be suitable for all roles

Code comparison

CS-Notes example (Java):

public class BinarySearch {
    public int binarySearch(int[] nums, int target) {
        int left = 0, right = nums.length - 1;
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (nums[mid] == target) return mid;
            if (nums[mid] < target) left = mid + 1;
            else right = mid - 1;
        }
        return -1;
    }
}

tech-interview-handbook example (JavaScript):

function binarySearch(arr, target) {
  let left = 0;
  let right = arr.length - 1;
  while (left <= right) {
    const mid = Math.floor((left + right) / 2);
    if (arr[mid] === target) return mid;
    if (arr[mid] < target) left = mid + 1;
    else right = mid - 1;
  }
  return -1;
}

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Pros of system-design-primer

  • Focuses specifically on system design, providing in-depth coverage of this crucial topic
  • Includes visual aids and diagrams to illustrate complex concepts
  • Offers interactive coding exercises and real-world examples

Cons of system-design-primer

  • Narrower scope, primarily covering system design rather than a broad range of CS topics
  • Less comprehensive coverage of fundamental CS concepts and algorithms
  • May be more challenging for beginners due to its focus on advanced topics

Code comparison

While both repositories primarily focus on explanations rather than code, system-design-primer does include some code snippets for illustration. CS-Notes tends to have more algorithm implementations. Here's a brief comparison:

system-design-primer:

def get_user(user_id):
    user = memcache.get("user.{0}", user_id)
    if user is None:
        user = db.query("SELECT * FROM users WHERE user_id = {0}", user_id)
        memcache.set("user.{0}", user, 30)
    return user

CS-Notes:

public class QuickSort {
    public static void sort(int[] arr) {
        quickSort(arr, 0, arr.length - 1);
    }
    private static void quickSort(int[] arr, int low, int high) {
        if (low < high) {
            int partitionIndex = partition(arr, low, high);
            quickSort(arr, low, partitionIndex - 1);
            quickSort(arr, partitionIndex + 1, high);
        }
    }
    // ... (partition method omitted for brevity)
}

Interactive roadmaps, guides and other educational content to help developers grow in their careers.

Pros of developer-roadmap

  • Visual representation of learning paths for various tech roles
  • Regularly updated with modern technologies and practices
  • Community-driven content with contributions from developers worldwide

Cons of developer-roadmap

  • Less in-depth technical content compared to CS-Notes
  • May overwhelm beginners with the sheer amount of information presented
  • Focuses more on web development, potentially lacking coverage in other CS areas

Code comparison

While both repositories primarily focus on educational content rather than code, developer-roadmap does include some code snippets in its explanations. CS-Notes, on the other hand, is more text-based. Here's a brief example from developer-roadmap:

// Example from developer-roadmap
const greeting = 'Hello, World!';
console.log(greeting);

CS-Notes doesn't typically include code snippets, instead focusing on theoretical concepts and explanations.

Summary

developer-roadmap offers a comprehensive visual guide for aspiring developers, covering various technologies and career paths. It's particularly useful for those looking to understand the broader landscape of software development. CS-Notes, in contrast, provides more in-depth technical content, focusing on computer science fundamentals and interview preparation. The choice between the two depends on whether you're seeking a broad overview of development paths or deep dives into CS concepts.

📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings

Pros of javascript-algorithms

  • Focused specifically on JavaScript implementations of algorithms and data structures
  • Includes explanations and examples for each algorithm
  • Actively maintained with frequent updates

Cons of javascript-algorithms

  • Limited to JavaScript, while CS-Notes covers a broader range of topics
  • Less comprehensive in terms of general computer science concepts
  • May not be as suitable for interview preparation across multiple languages

Code Comparison

CS-Notes (Java):

public class BinarySearch {
    public int binarySearch(int[] nums, int target) {
        int left = 0, right = nums.length - 1;
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (nums[mid] == target) return mid;
            if (nums[mid] < target) left = mid + 1;
            else right = mid - 1;
        }
        return -1;
    }
}

javascript-algorithms (JavaScript):

function binarySearch(array, target) {
  let left = 0;
  let right = array.length - 1;
  while (left <= right) {
    const mid = Math.floor((left + right) / 2);
    if (array[mid] === target) return mid;
    if (array[mid] < target) left = mid + 1;
    else right = mid - 1;
  }
  return -1;
}

Both repositories provide implementations of common algorithms, but CS-Notes offers a broader range of computer science topics in multiple languages, while javascript-algorithms focuses solely on JavaScript implementations with detailed explanations.

:books: Freely available programming books

Pros of free-programming-books

  • Extensive collection of free programming resources across multiple languages and topics
  • Community-driven project with frequent updates and contributions
  • Well-organized structure, making it easy to find relevant resources

Cons of free-programming-books

  • Lacks original content, primarily serving as a curated list of external resources
  • May include outdated or deprecated resources if not regularly maintained
  • No standardized format or quality control for listed resources

Code comparison

Not applicable, as both repositories primarily contain documentation and resource lists rather than code.

Summary

CS-Notes is a comprehensive collection of computer science and programming notes in Chinese, focusing on interview preparation and fundamental concepts. It offers original, curated content but is limited to a single language.

free-programming-books, on the other hand, is a multilingual directory of free learning resources for various programming languages and computer science topics. It provides a wider range of resources but relies on external content.

Both repositories serve different purposes and cater to different audiences. CS-Notes is ideal for Chinese-speaking developers seeking in-depth study materials, while free-programming-books is better suited for those looking for a diverse collection of free learning resources across multiple languages and topics.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README


算法 æ“ä½œç³»ç»Ÿç½‘络 é¢å‘对象 æ•°æ®åº“   Java  ç³»ç»Ÿè®¾è®¡  å·¥å…·  ç¼–码实践  åŽè®°  
:pencil2::computer::cloud::art::floppy_disk::coffee::bulb::wrench::watermelon::memo:


:pencil2: 算法

:computer: 操作系统

:cloud: 网络

:floppy_disk: 数据库

:coffee: Java

:bulb: 系统设计

:art: 面向对象

:wrench: 工具

:watermelon: 编码实践

:memo: 后记

排版

笔记内容按照 中文文案排版指北 进行排版,以保证内容的可读性。

不使用 ![]() 这种方式来引用图片,而是用 <img> 标签。一方面是为了能够控制图片以合适的大小显示,另一方面是因为 GFM 不支持 <center> ![]() </center> 这种方法让图片居中显示,只能使用 <div align="center"> <img src=""/> </div> 达到居中的效果。

在线排版工具:Text-Typesetting。

License

本仓库的内容不是将网上的资料随意拼凑而来,除了少部分引用书上和技术文档的原文(这部分内容都在末尾的参考链接中加了出处),其余都是我的原创。在您引用本仓库内容或者对内容进行修改演绎时,请署名并以相同方式共享,谢谢。

转载文章请在开头明显处标明该页面地址,公众号等其它转载请联系 zhengyc101@163.com。

Logo:logomakr

知识共享许可协议

致谢

感谢以下人员对本仓库做出的贡献,当然不仅仅只有这些贡献者,这里就不一一列举了。如果你希望被添加到这个名单中,并且提交过 Issue 或者 PR,请与我联系。