cs-self-learning
TutorialPKUFlyingPig/cs-self-learning
A comprehensive guide for self-learning computer science with curated courses and resources.
Overview
This project provides a curated list of high-quality open-source computer science courses, along with learning roadmaps and resources. It aims to help beginners systematically learn CS fundamentals and advanced topics through self-study, covering mathematics, programming, algorithms, systems, AI, and more.
README Preview
\n \n\n\n# CS 自学指南\n\n> _Everyone should enjoy CS if you have a good teacher to teach you a good course._\n\n\n\n[](https://csdiy.wiki)\n[](https://github.com/PKUFlyingPig/cs-self-learning/blob/master/LICENSE)\n[](https://github.com/PKUFlyingPig/cs-self-learning/issues)\n[](https://github.com/PKUFlyingPig/cs-self-learning)\n\n新冠肆虐,网课当道,CS 爆火,这一系列的事件都让自学计算机成为了一种潮流。\n\n随着欧美众多名校将质量极高的计算机课程全部开源,自学 CS 成了一件可操作性极强的事情。毫不夸张地说,只要你有毅力和兴趣,自学的成果完全不亚于你在国内任何一所大学受到的本科 CS 教育(当然,这里单指计算机专业领域,大学带给你的显然不止是专业知识)。\n\n我很庆幸在自己大一的时候就选择了自学 CS 这条路,它让我爱上了计算机这门学科,也无比丰富了我的视野。\n\n但同时,自学这条路也有很多困难和阻力:课程繁多不知如何选择,资料零散甚至残缺,作业难度不知深浅,课内任务还需要花时间应付······这些主客观因素叠加到一起,使得好课虽多,却只能在收藏夹里吃灰。\n\n在大学的第四个年头,我想把这一路自学走来的经验和教训,把那些让我受益终身的课程记录下来,分享给大家,形成了这本 CS 自学指南,以期能给所有想自学计算机的朋友一点帮助。\n\n我的目标是让一个刚刚接触计算机的小白,可以完全凭借这些开源社区的优质资源,少走弯路,在 2-3 年内成长为一个有扎实的数学功底和代码能力,经历过数十个千行代码量的 Project 的洗礼,掌握至少 C/C++/Java/JS/Python/Go/Rust 等主流语言,对算法、电路、体系、网络、操统、编译、人工智能、机器学习、计算机视觉、自然语言处理、强化学习、密码学、信息论、博弈论、数值分析、统计学、分布式、数据库、图形学、Web 开发、云服务、超算等等方面均有所涉猎的全能程序员。此后,无论是选择科研还是就业,我相信你都会有相当的竞争力。\n\n你可以[在线免费阅读这本书](https://csdiy.wiki)。英文版请移步[这里](https://csdiy.wiki/en/)。\n\n## 如何成为贡献者\n\n一个人的力量终究是有限的,对于书中任意章节你若有想要补充的内容,欢迎各位提出 [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)。如果你想贡献一门新的课程,可以参考目前 repo 中的 [template](./template.md) 文件作为模版,并在 [mkdocs.yml](./mkdocs.yml) 文件中添加其 navigation,当然你还可以在 [CS 学习规划](./docs/CS学习规划.md) 里的对应模块为其添加言简意赅的导语。如果你有想推荐的书籍,请参考 [好书推荐](https://raw.githubusercontent.com/PKUFlyingPig/cs-self-learning/master/docs/%E5%A5%BD%E4%B9%A6%E6%8E%A8%E8%8D%90.md) 模块上方的注释按相应格式添加内容。\n\n对于中英混合排版的要点规范,可以参考[这个仓库](https://github.com/sparanoid/chinese-copywriting-guidelines/blob/master/README.zh-Hans.md),我们将会对您的 Pull Request 做相应的校对,具体原因参见这个 [issue](https://github.com/PKUFlyingPig/cs-self-learning/issues/114)。\n\n本书支持英文版,因此贡献的内容需要提供对应的英文翻译,具体流程可以参考这个 [issue](https://github.com/PKUFlyingPig/cs-self-learning/issues/222)。\n\n同时由于个人水平有限,书中难免有笔
FAQ (5)
TroubleshootingHow to fix 'invalid filename' error when cloning Git repo on Windows due to colon in filenames?
The error occurs because NTFS (Windows' default file system) classifies half-width colons (:) as illegal filename characters, so Git cannot pull files containing this character when cloning a repository on Windows.
To resolve the issue:
1. Rename the affected files in the remote repository: you can either replace the half-width colon with a full-width colon (:), for example rename Create Neural Networks: Zero to Hero.md to Create Neural Networks:Zero to Hero.md; or use underscores for naming, e.g. rename to zero_to_hero.md.
2. Merge the pull request containing the filename modifications.
After the fix, Windows users can clone and pull the repository normally.
TroubleshootingHow do I fix the expired MIT 18.330 textbook link in the documentation?
Replace the outdated “课程教材”/textbook URL with the author’s new location: https://fncbook.com/. Update both docs/数学进阶/numerical.md and docs/数学进阶/numerical.en.md, then verify the link opens the new book site.
TroubleshootingWhat should I do if the Z-Library link on csdiy.wiki is blocked or not working?
Use the updated Z-Library URL: https://singlelogin.re/. For the Chinese version, use https://zh.singlelogin.re. Replace the old blocked Z-Library link with this address in the relevant page or configuration.
TroubleshootingWhy does the ASU CSE365 pwn.college course link show a "not found" error?
The old URL https://dojo.pwn.college/cse365/ is outdated. Use the current course page at https://pwn.college/cse365-f2023/. You can also access course materials through the official pwn.college YouTube playlists: https://www.youtube.com/@pwncollege/playlists. If the link is stored in a repository or documentation, update it via a pull request.
TroubleshootingHow to fix GitHub Pages 500 "The Unicorns have taken over" error on only one page?
This is usually a GitHub Pages/server-side deployment issue for that specific path, not a local browser problem—clearing cache or changing browsers will not help. As a workaround, open the archived snapshot: https://web.archive.org/web/https://csdiy.wiki/%E5%BF%85%E5%A4%87%E5%B7%A5%E5%85%B7/workflow/. For site maintainers, verify that the page file exists in the repository, check the exact path/case/Chinese characters, review the GitHub Pages/Jekyll build logs, and redeploy or re-commit the affected page. The reported issue was later marked as resolved, so retrying the original URL may also work.