著做权申明
- 本做品选择采用:署名-非商业性使用-相同方式共享 的CC协议。
- 您能够:复制、发行、展览、表演、放映、广播或经过信息网络传播本做品。以及创做演绎做品。
- 唯须遵照下列条件:
- 署名 — 您必须按照做者或者许可人指定的方式对做品进行署名。
- 署名方式为:在转载或新做品开头的显著位置,注明原做者的姓名、来源及其采用的知识共享协议,与本做品在Huihoo Code上的原发地址创建连接
- 非商业性使用 — 您不得将本做品用于商业目的。
- 相同方式共享 — 若是您改变、转换本做品或者以本做品为基础进行创做,您只能采用与本协议相同的许可协议发布基于本做品的演绎做品。
如何参与这个写做项目
- 注册成为 http://code.huihoo.com 的会员,并在申请说明里注明参与开源学习的写做项目。
- 发送邮件到zhuangbiaowei # gmail dot com,介绍你但愿参与的章节,若是可以附上过去曾经写过的blog,则更好。
- 通过几回来回邮件的简单交流,我可以理解你的基本思想,则会帮你激活会员账号,并将你的账号加入这个项目。
- 共同编辑这个wiki。
- 若是对于这个写做的内容,有任何意见和建议,也欢迎随时给我发邮件。
- 在讨论区 能够发起各类话题的讨论。
- 在问题区 能够提交各类issues,监督进度。
- 如何认领某一小节并开始写做?先写起来,你们能够再后续帮助修改,先到先得。
目录
- 开始以前
- 这份文档的目标读者
- 基本条件
- 你须要明确的一些事情
- 开始
- 学习软件开发的几条主要途径
- 为何借助开源学习是最有效的
- 选择一门语言
- 必须初步掌握的基本功
- 关于开发工具
- 关于开发工具的分类(by 李路)
- 各类参考资料
- 选择一个开源项目
- 到哪里去寻找开源项目
- 什么样的开源项目适合初学者
- 值得推荐给你们的开源项目
- Hello World
- 下载源代码的N种办法
- 关于源代码管理与版本控制
- 寻找早期开源项目的源代码
- SVN、Git、Mercurial快速介绍
- 基于包管理的方式获取源代码
- 让代码运行起来
- Ruby版
- PHP版
- Java版
- Python版
- JavaScript版
- C/C++版
- 如何克服可能遇到的困难
- 理解开源项目
- 静态理解
- 目录结构
- 包名与文件名
- 类名、函数名与变量名
- 注释与Readme
- UML图
- 外部文档
- 动态理解
- 输出日志
- 设置断点与单步跟踪
- 抛出异常
- 修改代码,破坏性尝试
- 主线与支线
- 寻找入口
- 跟踪关键流程
- 寻找挂接点
- 外围代码
- 必须存在的外围功能
- demo/example
- 单元测试
- 知其因此然
- 修改开源项目
- 尝试修改代码
- 提出一个小小的需求
- 若是不能搞定,试试看能不能乱来
- 寻求承认的艰难历程
- 为开源项目作贡献
- 提bug与建议
- 帮助完善文档
- 提交代码(功能代码与测试代码)
- 周边代码(demo/扩展/子项目)
- 外部宣传
- 其余各类杂务
- 成为组织的一员
- 交流圈
- 组织结构
- 开源项目的组织方式*
- 基本礼仪
- 本身发起一个开源项目
- 延伸阅读
- 贡献者
- 开源问答
via:http://www.teamhost.org/projects/learn-with-open-source/wiki/Wiki网络