Convert Figma logo to code with AI

CyC2018 logoCS-Notes

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

183,999
51,117
183,999
195

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,请与我联系。