Computer Science Fundamentals
Computer science basic theories and knowledge
freeCodeCamp.org is a donor-supported, open-source platform offering a comprehensive, self-paced curriculum for learning coding and web development. It provides 12 core certifications, including Responsive Web Design, JavaScript Algorithms, Front End Libraries, Data Visualization, and more, each involving hands-on projects and coding challenges. The platform features thousands of interactive exercises, automated testing, and a supportive community with forums, a YouTube channel, and a Discord server. Designed for beginners, it helps users transition into tech careers, with over 40,000 people securing their first developer job. Contributions are welcome, and the project is licensed under BSD-3-Clause, fostering a collaborative learning environment.
By recreating your favorite technologies from scratch, this project aims to help developers master programming skills through practice. By participating in the recreation of their favorite technologies, developers can gain a deeper understanding of how they work, their design thinking, and implementation details, thereby deepening their understanding and mastery of programming.
This project collects many free programming books, covering almost all programming languages and technologies, with complete classification. For programmers, it is a valuable resource that can help them learn programming knowledge in different fields on their own. Whether you are a beginner or an experienced developer, this project provides a rich variety of book choices to help you continuously expand your technical breadth and depth.
A guide to the path of growth for all developers, designed to provide a fun and challenging development path for both beginners and veterans. This project will help you easily understand various skill trees and technical routes, making your career journey no longer confusing. Whether you are a beginner or an experienced developer, this open-source project provides valuable learning resources and guidance to help you continuously improve your skills.
Learning how to design scalable systems will help you become a better engineer. This repository is for organizing and collecting resources related to system design. Chinese version
Implement all algorithms using Python. This project is a collection of various algorithms implemented in Python, mainly used for education and learning. It includes search, sorting, data structures, machine learning, cryptography, neural networks, etc.
It includes a variety of JavaScript-based algorithms and data structures, each with its own README that contains relevant descriptions and links for further reading (and YouTube videos).
A series of books about JavaScript, which delve into the core concepts and language features of JavaScript, providing developers with an opportunity to gain a deeper understanding of JavaScript. Through this series of books, readers can better master the complexity and flexibility of JavaScript.
A study note summarizing the computer classic books and official technical documents, covering many technical points such as algorithms, operating systems, networks, databases, etc.
The project to the path of free self-study education in computer science. This project collects rich learning resources and provides a clear learning path for self-study learners in computer science. Whether you are a beginner or an experienced developer, you can find learning materials that meet your needs here.
There are more than 60 original articles based on LeetCode, covering all types of questions and techniques. The goal is to provide a comprehensive understanding rather than just a pile of code.
A carefully collected and organized collection of some practical JavaScript code snippets
free-programming-books - free Chinese books on computer programming
A data structure and algorithm tutorial with animated illustrations, supporting multiple programming languages such as Java, C++, Python, Go, JS, TS, C#, Swift, Rust, Dart, Zig, etc. Through visualization, this project helps learners understand and learn various data structures and algorithms more easily.
Learn the basics of JavaScript, CSS and HTML with our comprehensive 12-week course brought to you by Microsoft Cloud Advocates. Each 24-lesson includes pre- and post-lesson quizzes, detailed written instructions, solutions, assignments, and more. Our project-based learning approach aims to help you develop practical skills through hands-on construction. Through our effective project teaching method, improve your skills and optimize your knowledge retention.
Microsoft Azure cloud advocates are pleased to offer a 12-week, 26-lesson machine learning course. In this course, you will learn what is sometimes called classical machine learning, using Scikit-learn as the library, avoiding deep learning, which will be covered in our upcoming "Beginner AI" course. Pair these courses with our "Beginner Data Science" course!
A project that explains complex system design using visual and simple terms. It helps you prepare for system design interviews by helping you understand the principles of complex system design through graphics and easy-to-under understanding. If you are preparing for an interview or interested in system design, this project can help you gain a deeper understanding of the core concepts of system design.
A selected list of computer science video courses covering areas such as introduction to computer science, data structures and algorithms, system programming, software engineering, artificial intelligence, machine learning, etc., including open courses from famous universities and professional lecturer courses.
33 Concepts Every JavaScript Engineer Should Know, Helping Developers Master JavaScript Concepts
A project dedicated to large-scale system design, which gathers the patterns and best practices of scalable, reliable and high-performance systems. It provides developers with rich resources and references to help them design and implement efficient large-scale systems.
A Java algorithm list, which provides a detailed demonstration of the built-in algorithm implementations in Java. It offers Java developers a convenient reference, showcasing the application of Java's built-in algorithms in handling various tasks. This project helps developers better understand and use Java's algorithms through clear code examples and illustrations.
LeetCode - A github user records his journey of solving LeetCode problems
A collection of various excellent resources, tools and frameworks used by full-stack programmers
A front-end open source technology tutorial, the author provides a step-by-step front-end development guide to help you learn JavaScript development. The content mainly includes front-end development environment configuration, VSCode code editor usage introduction, JavaScript syntax basics, JSON processing, DOM object operations, data visualization project writing, etc.
A tool that can quickly package various web pages into MacApp. Compared with Electron, Pake is more compact and easy to use, faster, and has achieved universal shortcut transmission, immersive window, drag-and-drop, and packaging style compatibility features. For developers who need to package web applications into desktop applications, Pake provides a convenient and efficient open-source tool.
C/C++ interview basic knowledge summary, for developers who are preparing to change jobs
A set of learning materials covering computer science introduction, data structure, artificial intelligence introduction, computer composition principle, operating system, modern cryptography, linear algebra, calculus and other fields, courseware, reference textbooks and other contents, which was open-sourced by Tsinghua students on GitHub.
A game programming library designed to provide a pure and efficient experience for electronic game programming. It does not have flashy interfaces, visualization assistants, or debugging buttons; it focuses solely on coding in the most pure way. Inspired by the Borland BGI graphics library and the XNA framework, raylib is suitable for prototyping, tool development, graphical applications, embedded systems, and education.
This project compiles implementations of various algorithms in the Rust programming language, covering a wide range of algorithmic domains. It serves as a valuable resource for learning and utilizing Rust for algorithm development.
A free, open and continuously updated tutorial on programming competition-related knowledge. It includes basic knowledge of competitions, common question types, problem-solving ideas and common tools, aiming to help learners learn programming competition-related knowledge more quickly and deeply. Whether you are a beginner or a player with some experience, you can get valuable learning resources and references from it.
An open-source organization that provides C language implementations of various fundamental algorithms and data structures. The project includes sample code for basic algorithms, covering multiple programming languages, offering valuable resources for learning and understanding algorithms.
The project of programming in classical Chinese has all the official documents, introductory tutorials, IDE, syntax highlighting, and packages.
The open source book "Advanced Programming in Go" covers advanced topics such as CGO, Go assembly language, RPC implementation, Protobuf plugin implementation, Web framework implementation, and distributed systems.
It contains a total of more than 1000 code examples, exercises and quizzes related to the Go language.
An open source Java data structure and algorithm code example library. It organizes the course code examples, assignments, video tutorials, etc. of YouTuber Kunal Kushwaha.
collected many open source software developed based on Python
Open source learning resources on GitHub: "DevOps 2022 Technology Roadmap", which will help you quickly understand the latest DevOps technology stack. It includes various DevOps-related learning materials such as Git, common programming languages, Linux, network security, containers, IaC, CI/CD, etc.
A Python project suitable for beginners, which collects more than 100 small Python projects, including random password generator, batch image download scripts, website content scraping, chat robots, etc., suitable for beginners to practice daily.
A carefully collected and organized list of system design interview resources, providing practical cases from well-known technology companies and basic knowledge of system design, to help pass the system design interview.
Course resources of University of Science and Technology of China
Data Science Cheat Sheet
"Learn-Vim" From this book, you will learn Vim window, tab management, quick file opening and searching, insert mode, integration of external commands, common syntax, and other Vim-related usage skills.
Students who want to learn operating system development can take a look at this open source tutorial on GitHub. This project will be based on Raspberry Pi and Linux kernel, and it will teach you how to create a simple version of an operating system: Raspberry Pi OS.
A course on modern C++ programming, designed to help learners master the latest features and best practices of C++. The course covers C++ syntax, the standard library, object-oriented programming, and more, enabling learners to write efficient and modern C++ code. Whether beginners or experienced developers, all can enhance their skills in the field of C++ programming through this course.
A repository of interview questions, which includes explanations of data structures and algorithm knowledge points, interview questions from Internet companies such as Facebook, Apple, Google, and demo examples based on mainstream programming languages.
Crash Course Computer Science Chinese is the Chinese subtitle translation of the YouTube's computer science crash course, which has 40 episodes and has been carefully proofread. This crash course covers from transistors to operating systems and artificial intelligence, and it is a popular science video aimed at providing the audience with comprehensive and easy-to-under understanding of computer science knowledge.
A comprehensive summary of computer foundation interview questions. This material is compiled by the author from common interview questions and answers after two failed interviews with big companies. After systematically studying computer networks, operating systems, databases, etc., the author finally got an offer from a big company.
A very practical tool, you just need to input the mathematical formula and quickly generate a very beautiful mathematical chart
A relatively practical command-line tool: Dasel, which can perform operations such as adding, deleting, modifying, and querying on JSON, YAML, CSV files, etc., in a chain-like syntax. This tool supports various structured data files, such as JSON, YAML, TOML, XML, CSV, etc.
A programmer from abroad launched a 100-day coding challenge plan on GitHub, stipulating that all participating developers should write at least one hour of code every day and submit it to the repository.
Provides a super detailed tutorial on the basics of "algorithms and data structures", and a detailed analysis of 650+ questions in "LeetCode" in Python version. This tutorial will combine "algorithm theory learning" and "programming practical exercises" to take you from zero foundation to thoroughly mastering algorithm knowledge.
The Chinese translation of the developer-roadmap (2018 Web Developer Roadmap) library with more than 46,000 stars on GitHub
The algorithm competition template library created by Ling Cha Shan Ai Fu provides a series of carefully designed algorithm templates for algorithm competition enthusiasts. This library includes commonly used data structures and algorithm implementations in algorithm competitions, helping developers solve problems more efficiently.
A domestic developer has launched a LeetCode question solution project on GitHub, which currently includes more than 900 questions.
Open source technical resources on GitHub, which includes a series of software engineering papers written by computer experts. The content covers computer and intelligence, integrated circuits, shared databases, cryptography, the essence of software engineering, web search engine analysis, distributed storage systems, smart contracts and decentralized platforms.
Open source learning resources on GitHub: "Game Network Development Technology Map", a knowledge, technology and information repository for game network development, which can serve as a navigation map for game R&D practitioners.
"Go Syntax Tree Introduction" mainly covers CGO, Go assembly language, RPC implementation, Web framework implementation, distributed systems and other advanced topics.