本文翻译自:http://www.di.ens.fr/~baghdadi/TXT_blog/5_advices_to_get_your_proposal_accepted.lyx.html

本文讲的主要是GCC项目,但是这些技巧也适用于其它的项目。

1. 黄金法则:尽早开始。你越早开始研究你的建议,你被接受的可能性就越大。

2. 注重质量:你应该关注较少的项目,如果你关注大量的项目,那么你提出的建议的质量肯定会下降。 以我来说,我清楚地知道我想要做什么,所以我只需要为唯一的建议而工作。 提出一个出众的建议非常重要。

3. 参与到项目中:

3.1 订阅邮件列表,并且提问和回答问题;

3.2 如果项目有每周的电话会议或者IRC频道,那么你最好也参与到其中(这里是GCC/Graphite的每周电话会议链接)。

3.3 阅读项目的介绍文档,熟悉项目的代码和代码规范

3.4 参与到该项目的社区中

3.5 添加简单的功能到该项目中,解决简单的bug,写一些早期的代码

3.6 发送一些补丁并得到反馈,如下两个原因说明这很重要:

3.6.1 如果你之前没有参与过该项目,那么早期的开发工作会帮助你更好的理解一个内部代码,从而帮助你确定每一阶段需要的时间。

3.6.2 通过早期的开发,你看起来在说:”嗨,我可以做,我的补丁就是证明“

3.6.3 你的代码必须符合该项目的代码规范,在你提交第一个补丁之前一定要确定你读过该项目所有的代码标准。Sebastian POP 已经开发了一个脚本,它可以帮助你检查你的代码(如果你是参与的GCC的项目的话)。

4. 讨论你的想法:

4.1 你的想法是否与项目相关?你如何计划完成这项工作?里程碑是什么?

4.2 寻求关于你的想法的反馈,这对于你的程序来说是十分重要的。该项目的开发人员会帮助你调整完成每个里程碑至少需要的时间,以及你是否能在Google Summer of Code期间完成该项目,有时候一些学生非常乐观 :)。

4.3 讨论一些技术细节,例如如何测试你的程序?如何使用项目的测试框架对你的程序进行测试?你是否需要编写自己的测试用例?

4.4 确定优先顺序,在GSoC后期什么应该被推迟,什么是可选的?确定你能完成你的目标。最好是编写一个小巧的,可靠的,容易理解的,文档化的代码,而不是有很多bug,难以理解的代码。质量十分重要。

讨论你的想法是编写建议之前非常重要的步骤。

5. 编写建议书:

5.1  明确地描述你的想法:

5.1.1 想法本身

5.1.2 该项目的益处?它为什么重要?

5.1.3 技术细节:技术细节表明你清楚地你想做的。

5.1.4 描述你可能遇到的问题以及你打算如何去解决?

5.2 包含具体的工作计划:什么时候做什么?

5.3 个人简历章节:

5.3.1 表明你已经参与过一个类似的项目对你的帮助很大。

5.3.2 而且,一个好的简历,很好的展示了你对该项目非常熟悉,而且你已经贡献过一些补丁,你已经准备好来高效地工作了。

6. GCC GSoc 建议示例

这里有一些关于GCC项目已经被接受的建议:

6.1 我的建议书(GSOC'10):PDF

我大概花了1个月来明确我的想法,并且编写建议书。我与Sebastian POP(来自AMD)Tobias Grosser (来自德国Passau大学)和 Albert Cohen (来自INRIA),讨论了很多细节。

6.2 Lee Feng的建议书(GSOC'09):PDF

6.3 Tobias Grosser的建议书(GSOC'08):Web Page(现在是404)

其它关于Nmap项目的示例:

6.4 Djalal Harouni的示例(GSOC'10):PDF(现在是404)

6.5 Djalal Harouni在GSOC'11提出的建议也被接受了,如果想获得他的建议书,请联系他。

6.6 David Fifield的建议书(GSOC'07):Web Page

7. 常用的链接

7.1 http://drupal.org/node/59037

7.2 http://shlang.com/writing/soc2005.html

7.3 http://weblogs.mozillazine.org/gerv/archives/2006/05/how_not_to_apply_for_summer_of.html

7.4 http://summer.cs.pdx.edu/propose

8. 翻译

如果你想将翻译这些技巧来帮助你的国家的学生,请将翻译的页面和你的主页发送给我,我将他们添加到这里。

8.1 阿拉伯语 翻译:链接

8.2 日语 翻译(多谢 Naohiro Aota):链接

8.3 本文的英文镜像:OpenDZ network

8.4 你也想翻译?

9. 致谢

我想要感谢Brendan和Sergej的给我的反馈。

10. 反馈

如果你想要参与Google Summer of Code, 告诉我你的故事,我可以将其添加到成功地示例中。如果你有其他的建议请告诉我。

10.1 Web Page: Riyadh BAGHDADI

10.2 Email: riyadh.baghdadi [AT] inria.fr

使你的 Google Summer of Code 建议被接收的5个技巧的更多相关文章

  1. Google Summer of Code 建议被接收的5个技巧

    Google Summer of Code 建议被接收的5个技巧 本文翻译自:http://www.di.ens.fr/~baghdadi/TXT_blog/5_advices_to_get_your ...

  2. What is Pay Me to Learn——Google Summer of Code 2013

    原文链接:http://zhchbin.github.io/2013/10/17/what-is-pay-me-to-learn/ 背景 今天早上才想起来,自己还欠着一件事情没有做完.很久在人人上之前 ...

  3. Google Summer of Code 2017 经验谈

    Google Summer of Code (GSoC) 2018 又要开始了. 如果想实现你心中的开源梦想, 用代码让世界变得更美好. 参加GSoC可能是你进入开源的世界最好途径. GSoC是什么 ...

  4. Google Summer of Code礼包

    这个暑假参加google summer of code, 给Google的分布式容器管理系统kubernates开发新的特性,希望从中学习更多的分布式的技术,锻炼自己的编程技巧. 中午在学校的图书馆吗 ...

  5. 做一名开源社区的扫地僧——从Bug report到Google Summer of Code(GSoC):从200个bug到5000美金

    今年的软件自由日(SFD),我在广州Linux用户组的线下活动上做了一个分享,主题叫做<做一名开源社区的扫地僧(上)>.我把演讲的内容重新整理扩充, 写出了文字版, 希望可以跟更多朋友分享 ...

  6. 倒计时第3天!Google Summer of Code报名即将截止!(Casbin社区还有空缺名额)

    Google Summer of Code 介绍 Google Summer of Code ( GSoC ,即 Google 编程之夏)是 Google (谷歌)组织并提供经费,面对全球在读学生的在 ...

  7. vs code的使用与常用插件和技巧大全总结

    vs code的使用与常用插件和技巧大全总结 Author:3# 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@ 极客小俊,CSDN官方首发 ...

  8. Google开发者大会:你不得不知的Tensorflow小技巧

    Google开发者大会:你不得不知的Tensorflow小技巧 同步滚动:开   Google Development Days China 2018近日在中国召开了.非常遗憾,小编因为不可抗性因素滞 ...

  9. Google Chrome 源码下载地址 (Google Chrome Source Code Download)

    1. Google Chrome 源码 SVN 地址:http://src.chromium.org/svn.包含有 Chrome.Gears.Webkit.GCC 等源码以及编译依赖工具.Chrom ...

随机推荐

  1. 文件拷贝以及base64

    File inFile = new File("d:" + File.separator + "test.jpg"); File outFile = new F ...

  2. springMVC使用注解方式进行页面跳转

    <!--控制层-->package cn.org.spartacus.spring; import org.springframework.beans.factory.annotation ...

  3. mysql无法启动 mysqld process already exists

    1.提示:A mysqld process already exists ps 命令用于查看当前正在运行的进程. grep 是搜索 例如: ps -ef | grep mysql 表示查看所有进程里 ...

  4. HTTP原理

    HTTP原理 1 简介 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式. 2.简单快速:客 ...

  5. Java垃圾回收器

    一.Java垃圾回收器要负责完成以下3个任务: 1.分配内存 2.确保被引用对象的内存不被错误回收 3.回收不再被引用的对象的内存空间 二.垃圾回收是一个复杂而又耗时的操作.如果JVM花费过多的时间在 ...

  6. 【转】2D动画:view的Matrix

    Matrix,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放.平移.旋转等操作. 首先介绍一下矩阵运算.加法和减法就不用说了,太简单了,对应位相加就好.图像处理,主要用到的是乘法 ...

  7. 7. 泛化(Generalization)

    什么是泛化关系?用一个例子简单的说:假设A是B和C的父类,B.C具有公共类(父类)A,说明A是B.C的一般化(概括,也称泛化),B.C是A的特殊化. 在编程上,泛化关系(Generalization) ...

  8. uva193 - Graph Coloring

    Graph Coloring You are to write a program that tries to find an optimal coloring for a given graph. ...

  9. 【S16】了解如何把vector和string数据传给旧的API

    1.尽量使用vector和string替换数组,但是老的代码还是使用数组.如果老的接口期望是数组,怎么办? 需要把vector和string,暴露出数组接口,也就是第一个元素的地址. 2.考虑方法Do ...

  10. Html游戏开发-画图

    1. 画矩形和写字 var canvas = document.getElementById('canvas'), context = canvas.getContext('2d'); context ...