> For the complete documentation index, see [llms.txt](https://zhuangbiaowei.gitbook.io/learn-with-open-source/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zhuangbiaowei.gitbook.io/learn-with-open-source/zh/summary.md).

# SUMMARY

1. [前言](/learn-with-open-source/zh/before-start.md)
   1. 这份文档的目标读者
   2. 基本条件
   3. 你需要明确的一些事情
2. [预备](/learn-with-open-source/zh/start.md)
   1. 学习软件开发的几条主要途径
   2. 为什么借助开源学习是最有效的
   3. 在学习一门语言之前
   4. 选择一门语言
   5. 必须初步掌握的基本功
   6. MOOC 课程
   7. 关于开发工具
      1. 关于开发工具的分类（by 李路）
      2. 各种参考资料
   8. [版本管理，包管理和语言环境搭建](/learn-with-open-source/zh/hello-world.md)
      1. 下载源代码的N种办法
      2. 关于源代码管理与版本控制
      3. 寻找早期开源项目的源代码
      4. SVN、Git、Mercurial快速介绍
      5. 基于包管理的方式获取源代码
      6. 让代码运行起来
      7. Ruby版
      8. PHP版
      9. Java版
      10. Python版
      11. JavaScript版
      12. C/C++版
      13. 如何克服可能遇到的困难
3. [如何选择开源项目](/learn-with-open-source/zh/select-an-open-source-project.md)
   1. 到哪里去寻找开源项目
   2. 什么样的开源项目适合初学者
   3. 值得推荐给大家的开源项目
   4. 各语言的Awesome List

      **重点讲解：按语言，按难度选择示例讲解**
4. [理解源代码](/learn-with-open-source/zh/understanding-the-source-code.md)
   1. 寻找文档，熟悉功能，先玩一遍，记下功能。
   2. 静态理解：
      1. 目录结构
      2. 包名与文件名
      3. 类名、函数名与变量名
      4. 注释与Readme
      5. UML图
      6. 外部文档
   3. 动态理解
      1. 输出日志
      2. 设置断点与单步跟踪
      3. 抛出异常
      4. 修改代码，破坏性尝试
   4. 主线与支线
      1. 寻找入口
      2. 跟踪关键流程
      3. 寻找挂接点
   5. 外围代码
      1. 必须存在的外围功能
      2. demo/example
      3. 单元测试
   6. 知其所以然
5. [修改开源项目](/learn-with-open-source/zh/modify-the-open-source-project.md)
   1. 改一个游戏来练手
   2. 二分查找捉虫记
6. [为开源项目做贡献](broken://pages/-LrmD1HnHUsh_U5IlfUO)
   1. 提bug与建议
   2. 帮助完善文档
   3. 提交代码（功能代码与测试代码）
   4. 周边代码（demo/扩展/子项目）
   5. 外部宣传
   6. 其他各种杂务
7. [成为组织的一员](/learn-with-open-source/zh/join-the-group.md)
   1. 交流圈
   2. 组织结构
   3. 开源项目的组织方式
   4. 基本礼仪
8. [自己发起一个开源项目](broken://pages/-LrmD1Htrv8Uji3lZfai)
9. [延伸阅读](broken://pages/-LrmD1I89VpOPrOBidI5)
   1. [指导开发者快速学习编程的网站推荐](/learn-with-open-source/zh/useful-websites-to-learn-how-to-code-quickly.md)
10. [贡献者](/learn-with-open-source/zh/contributor.md)
11. [开源问答](broken://pages/-LrmD1I-wCwwSIkXROYj)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://zhuangbiaowei.gitbook.io/learn-with-open-source/zh/summary.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
