SUMMARY
- 1.
- 1.这份文档的目标读者
- 2.基本条件
- 3.你需要明确的一些事情
- 2.
- 1.学习软件开发的几条主要途径
- 2.为什么借助开源学习是最有效的
- 3.在学习一门语言之前
- 4.选择一门语言
- 5.必须初步掌握的基本功
- 6.MOOC 课程
- 7.关于开发工具
- 1.关于开发工具的分类(by 李路)
- 2.各种参考资料
- 8.
- 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.
- 1.到哪里去寻找开源项目
- 2.什么样的开源项目适合初学者
- 3.值得推荐给大家的开源项目
- 4.各语言的Awesome List重点讲解:按语言,按难度选择示例讲解
- 4.
- 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.
- 1.改一个游戏来练手
- 2.二分查找捉虫记
- 6.
- 1.提bug与建议
- 2.帮助完善文档
- 3.提交代码(功能代码与测试代码)
- 4.周边代码(demo/扩展/子项目)
- 5.外部宣传
- 6.其他各种杂务
- 7.
- 1.交流圈
- 2.组织结构
- 3.开源项目的组织方式
- 4.基本礼仪
- 8.
- 9.
- 1.
- 10.
- 11.
Last modified 3yr ago