借助开源项目,学习软件开发 -


署名-非商业性使用-相同方式共享
未知

软件简介

这是一份面向软件开发初学者的文档,所谓初学者,可以定义为:学过的语言不超过2种,在已经学过的语言技能方面,能够完成课程上的大部分习题。从高校教育
的通常情况来说,基本能够完成老师布置的最后的课程大作业。如果要说学得很出色,大概谈不上。要想进一步提高,也很困难。
对于大学毕业(正负1~2年)的同学们来说,他们很难接触到真正较为复杂的项目,即使参与到复杂的项目之中,也会是其中非常细枝末节的部分。他们渴望快速的提升自己的软件开发能力,而恰恰最缺乏提升自身能力的机会。
因此,本文希望能够介绍一种较为合理的方法,帮助各位”同学”,以较为科学合理的方式,提高软件开发的实力。

这份文档本身也是一个开源项目,你可以参与这个文档的写作、维护。

以下是这份文档的 目录

  1. 开始之前
    1. 这份文档的目标读者
    2. 基本条件
    3. 你需要明确的一些事情
  2. 开始
    1. 学习软件开发的几条主要途径
    2. 为什么借助开源学习是最有效的
    3. 选择一门语言
    4. 必须初步掌握的基本功
  3. 选择一个开源项目
    1. 到哪里去寻找开源项目
    2. 什么样的开源项目适合初学者
    3. 值得推荐给大家的开源项目
  4. Hello World
    1. 下载源代码的N种办法
    2. 让代码运行起来
    3. 可能遇到的困难
    4. 碰壁的过程,就是成长的过程
  5. 理解开源项目
    1. 基本结构的掌握
    2. 静态理解与动态理解
    3. 常用工具简介
    4. Debug与Log
    5. 主线与分支
    6. demo/example
    7. 单元测试
    8. 介绍文档
    9. 做点破坏活动
  6. 修改开源项目
    1. 尝试修改代码
    2. 提出一个小小的需求
    3. 如果不能搞定,试试看能不能乱来
    4. 寻求认可的艰难历程
  7. 为开源项目做贡献
    1. 提bug与建议
    2. 帮助完善文档
    3. 提交代码(功能代码与测试代码)
    4. 周边代码(demo/扩展/子项目)
    5. 外部宣传
    6. 其他各种杂务
  8. 成为组织的一员
    1. 交流圈
    2. 组织结构
    3. 开源项目的组织方式*
    4. 基本礼仪
  9. 自己发起一个开源项目
  10. 延伸阅读