
Foreword
This guide is based on CS Self-Learning Guide and curated for BUPT students as a Communication/Computer Science self-learning resource.
The book currently includes:
- User guide: Usage suggestions for different audiences and learning goals.
- CS learning plan: A reference, systematic self-learning plan.
- Productivity toolkit: IDE, VPN, Git, Vim, LaTeX, Docker, workflow, etc.
- Book recommendations: Classic books and resources by topic.
- High-quality CS/EE courses: Course summaries and self-learning tips; many have separate repos for materials and assignments.
Where to start —— CS61A
If you are new to programming, CS61A is a solid first step: clear site, open textbook, and well-designed labs and projects.
Why use this guide
Good courses explain concepts clearly and reinforce them with assignments. This guide organizes courses and resources into a reference path so you can pick what fits your goals.
Pros and cons of self-learning
Pros: Pace your learning, rewatch hard parts and skip easy ones; learn from multiple schools; more flexible schedule.
Cons: Less direct interaction—rely on search and community; most resources are in English; self-discipline matters when there is no DDL.
Who is this for
Anyone who wants to self-learn CS/EE can use it. With prior background, pick only the sections you need; if you are just starting, treat it as one possible route and adapt as you go.
Thanks
Thanks to all who open-source courses and materials. This guide is derived from CS Self-Learning Guide; we thank the original project and its contributors.
Contributing
Pull requests are welcome. To add a new course, see template and the nav in mkdocs.yml.
Community
You can leave a comment on a course page with your study goal and how to join a group (e.g. QQ/WeChat), or check existing discussions in the repo issues.