这是一份面向软件开发初学者的文档,所谓初学者,可以定义为:学过的语言不超过2种,在已经学过的语言技能方面,能够完成课程上的大部分习题。从高校教育 的通常情况来说,基本能够完成老师布置的最后的课程大作业。如果要说学得很出色,大概谈不上。要想进一步提高,也很困难。
对于大学毕业(正负1~2年)的同学们来说,他们很难接触到真正较为复杂的项目,即使参与到复杂的项目之中,也会是其中非常细枝末节的部分。他们渴望快速的提升自己的软件开发能力,而恰恰最缺乏提升自身能力的机会。
因此,本文希望能够介绍一种较为合理的方法,帮助各位"同学",以较为科学合理的方式,提高软件开发的实力。
这份文档本身也是一个开源项目,你可以参与这个文档的写作、维护。
以下是这份文档的目录
- 开始之前
- 这份文档的目标读者
- 基本条件
- 你需要明确的一些事情
- 开始
- 学习软件开发的几条主要途径
- 为什么借助开源学习是最有效的
- 选择一门语言
- 必须初步掌握的基本功
- 选择一个开源项目
- 到哪里去寻找开源项目
- 什么样的开源项目适合初学者
- 值得推荐给大家的开源项目
- Hello World
- 下载源代码的N种办法
- 让代码运行起来
- 可能遇到的困难
- 碰壁的过程,就是成长的过程
- 理解开源项目
- 基本结构的掌握
- 静态理解与动态理解
- 常用工具简介
- Debug与Log
- 主线与分支
- demo/example
- 单元测试
- 介绍文档
- 做点破坏活动
- 修改开源项目
- 尝试修改代码
- 提出一个小小的需求
- 如果不能搞定,试试看能不能乱来
- 寻求认可的艰难历程
- 为开源项目做贡献
- 提bug与建议
- 帮助完善文档
- 提交代码(功能代码与测试代码)
- 周边代码(demo/扩展/子项目)
- 外部宣传
- 其他各种杂务
- 成为组织的一员
- 交流圈
- 组织结构
- 开源项目的组织方式*
- 基本礼仪
- 自己发起一个开源项目
- 延伸阅读