@XAMTO_AI: Self-taught programming - who hasn't been knocked down by reality a few times when starting out? A Peking University undergraduate dove into computers from his freshman year, and after four grueling years, the very obstacles that tripped him up and almost made him give up became his most valuable lessons. He organized all the truly effective learning materials and courses into an open-source document, arranged in a practical learning sequence. The fundamentals...
Summary
A Peking University undergraduate compiled high-quality open-source course resources (from MIT, Stanford, Berkeley, etc.) accumulated over four years of self-taught computer science into an open-source document arranged in a practical order, aiming to help beginners learn programming systematically from scratch.
View Cached Full Text
Cached at: 07/22/26, 04:35 PM
When it comes to self-taught programming, who hasn’t been knocked down by reality a few times at the beginning?
A Peking University undergraduate dove headfirst into computer science on his own from freshman year. After four grueling years, the obstacles that tripped him up and nearly made him give up became his most valuable experience—he turned all the learning materials and courses that actually worked into an open-source document, organized in a practical, battle-tested order.
The foundational courses are all sourced from open resources at top institutions like MIT, Stanford, and Berkeley.
The knowledge spans from discrete mathematics all the way to operating systems and deep learning. The coding exercises involve at least a dozen languages—C, C++, Java, JavaScript, Python, Go, Rust, all included.
It’s laid out plainly: a complete beginner following this pace can reach the baseline for an engineering role in two to three years.
https://csdiy.wiki
CS Self-Learning Guide
Source: https://csdiy.wiki/ Image title
Preface
🎉🎉Release v1.2.0 (https://github.com/PKUFlyingPig/cs-self-learning/releases/tag/v1.2.0): Updated the Deep Generative Model Learning Roadmap (https://csdiy.wiki/%E6%B7%B1%E5%BA%A6%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B/roadmap/)🎉🎉
This is a self-study guide for computer science, and also a memento of my own three years of self-learning in college.
It is also a gift for the junior students in the School of Electronics Engineering and Computer Science at Peking University. If this book can be of any help, however small, to your computer science journey, it will be a great encouragement and comfort to me.
This book currently includes the following parts (if you have any suggestions or want to join the contributors, feel free to email [email protected] or ask in an issue):
- Usage Guide: Since the book covers many resources, I have created usage guides based on different people’s available time and learning goals.
- A reference CS learning plan: a comprehensive, systematic CS self-study plan based on my own experience.
- Essential Tools: Introduction to some CSer productivity tools, such as IDE, VPN, StackOverflow, Git, GitHub, Vim, LaTeX, GNU Make, Docker, Workflow, etc.
- Recommended Classic Books: Are you troubled by obscure and incomprehensible textbooks? Don’t blame yourself; maybe the textbook is just poorly written. Students who have read the CSAPP book will definitely appreciate the importance of a good book. I will list and recommend must-read books and resource links for various computer science fields.
- Summary of High-Quality CS Courses (Domestic and International): I will categorize and summarize the high-quality CS courses I have taken and those contributed by the open-source community, introduce their content features, and provide corresponding self-study suggestions. Most courses will have an independent repository to maintain related resources and homework implementations for everyone’s reference.
The Place Where Dreams Begin – CS61A
When I first entered university as a freshman, I was a total novice about computers. I installed dozens of gigabytes of Visual Studio and fought daily with online judges (OJ).
With my high school math foundation, I did well in math courses, but in major courses, I could only look up to the contest experts. When it came to programming, I would only open that bulky IDE, create a new command-line project without really knowing what it was for, and then do cin, cout, for loops, followed by a cycle of CE, RE, WA. At that time, I was in a painful state of desperately wanting to learn well but not knowing how—listening attentively in class but still unable to solve problems, and spending an enormous amount of time on homework.
I still have on my computer the source code from my freshman year’s final project for the Introduction to Computing course—a 1200-line C++ file with no header files, no classes, no encapsulation, no unit tests, no Makefile, no Git. Its only merit was that it actually ran; its drawback was the complement of “it runs.”
I once doubted whether I was suited for computer science, because all my childhood fantasies about being a geek had been shattered by my first semester’s experience.
The turning point came during my freshman winter break, when I took a sudden interest in learning Python. I came across a recommendation on Zhihu for CS61A, said to be a freshman introductory course at UC Berkeley, teaching Python. I will never forget that day—the moment I opened the CS61A course website (https://cs61a.org/), it was like Columbus discovering a new world; I opened the door to a new universe.
I completed the course in three weeks without stopping. It made me feel for the first time that CS could be so rewarding and interesting, and that such excellent courses existed.
To avoid any suspicion
Similar Articles
@tan_maty: This girl is incredibly driven. At 20, she taught herself computer science for two years and landed a job at Microsoft as an AI engineer. I checked her GitHub repo — it's impressive. She has generously shared everything she learned about CS and AI over those two years, and it's definitely worth our time. For incoming college freshmen and current students, and honestly even us veterans...
A 20-year-old woman taught herself computer science for two years and became an AI engineer at Microsoft, sharing her learning notes and resource repository X-Plore.
@XAMTO_AI: Many people murmur: Since AI coding is so powerful, do we still need to learn the basics? Yes, and increasingly so. I'm recommending a gem of a project on GitHub: Professional Programming, covering everything from algorithms to system design to code quality. The learning path is clear, not the kind that just throws a list of books at you and leaves you hanging...
Recommending the Professional Programming project on GitHub, covering programming basics like algorithms, system design, code quality, providing a clear learning path and hands-on exercises, emphasizing the importance of foundational knowledge even in the era of AI coding.
@Jolyne_AI: A course list on GitHub hailed by countless self-learners as a 'computer science bachelor's degree substitute': open-source-cs, already with 20k+ Stars. It curates free open courses from top universities like MIT, Stanford, and Princeton, restructured along the traditional CS undergraduate curriculum: from introductory to advanced levels, …
A curated list of open-source computer science courses on GitHub, open-source-cs, featuring free public courses from top universities like MIT and Stanford, arranged according to the undergraduate curriculum. Already with 20k+ Stars, it's ideal for self-learners seeking systematic study.
@manateelazycat: AI is powerful, but newcomers in computer science still need to accumulate knowledge to solve complex problems. Let me re-share the computer science foundational books I previously recommended. As for my own reading habits, especially when learning computer science, I prefer books that are easy to understand and explain why the code works the way it does. Only by understanding the underlying principles can you apply them later.
A seasoned developer shares a curated list of computer books accumulated over many years, covering mainstream languages such as Python, C++, Java, and Rust, along with multiple technical fields, emphasizing the importance of building a solid foundation for solving complex problems.
@XAMTO_AI: A veteran engineer packed decades of practical engineering experience into this open-source project, which shot to #1 on GitHub trending, amassing 124k stars. The author, a former Vercel engineer who participated in early Next.js development, compiled 16 practical techniques for collaborating with Claude, installable with a single command. The most impressive…
Former Vercel engineer Matt Pocock open-sourced a project called 'skills' that provides 16 practical tips for collaborating with AI coding agents like Claude, including 'Grill Me' and red-green test cycles. Aimed at solving common AI development issues, it has garnered 124k stars.