注:写这篇文章时我并未參加CSDN开源夏令营,也不确定是否会參加以及是否能參加上。

欣闻CSDN举办了“CSDN开源夏令营”活动。第一感觉是CSDN作为活动的组织者是很值得称赞的。作为參加了Google Summer of Code的人,这里对照下CSDN开源夏令营和Google Summer of Code。纯粹是个人见解,仅供參考。

开源组织

在了解有这个活动后,第一反应是这不就是中国的GSoC吗,先给CSDN大大的一个赞。但冷静一想:国内有合格的开源组织吗?这里不是贬低国内开源活动,而是说国内是否有组织性的开源软件编写、设计、维护的组织。确实,今年来国人写了非常多优秀的软件,也有非常多人參与了国际的开源组织并做出了杰出的贡献。但因为大环境的原因,国内并没有像样的开源组织。

果不其然,GSoC中入围的组织是真的实打实的开源基金会、开源团体。比方Python基金会、OpenCV、wxWidgets、Julia语言这些,是我了解的。而那些有商业背景的,哪怕是Qt都以LGPL公布了开源版,也不会入围的。反观这个活动,少数不了解,但眼下来看。都是商业公司背景或官方背景的。

但万里长征终究有第一步,在中国开源界,CSDN迈出了第一步。希望这几天有很多其它的组织增加。

日程安排

GSoC的日程安排

先介绍GSoC的流程,这里除去组织筛选的过程,由于我不清楚Google是怎么筛选开源组织的:

第一阶段

20天左右中:学生用来选择项目、课题,并提交申请。这里有个要注意的,那就是不过用这20天想要确保能申请上是有点困难的。夸张一点的,有些学生在前一年年底就開始和开源组织打交道了。晚一点的在春节期间就要開始准备了。而这还是假定參与的学生已经掌握了主要的技术的前提下,想在申请期去学习并掌握相关的技术,然后申请成功的话。不是说不可能,至少是机会非常渺茫。毕竟GSoC中和你竞争的是除了美帝界定的流氓国度之外的全部国家的学士、硕士、和博士。当然,今年来每年申请的也就是7000左右。所以,想侥幸被录用是非常渺茫的。另外,最好联系好一个导师,没确定下来哪个导师指导你的项目,申请是绝对没戏的。

第二阶段

近一个月的时间:开源组织和Google进行闭门筛选。这是全然闭门的,虽说在Google的日程安排中,说这个月用来筛选,开源组织会和潜在的学生进行进一步的沟通。但就我眼下个人掌握的情况来说,已知的开源组织不会和申请的学生进行不论什么非技术性的沟通,不会给出不论什么你可能被录取,或者可能不被录取的暗示。在第一阶段时,邮件列表会很火爆。但第二阶段时,感觉是从大城市的市中心跑到了沙漠的中心,除了日常信息外,基本看不到不论什么有关GSoC的内容。

第二阶段在逻辑上有两个小阶段。第一个小阶段,开源组织内部先对收到的课题申请进行排名,选出前X个递交给Google,比方相同一个课题A,有3个人申请,组织会综合考虑,对这3个人排名,将第一名入围到课题列表中。然后是对课题列表进行排名,依照是否能完毕、课题的重要性进行排序,排在前面的课题入围到X中。每一个提交给Google的课题都会配备一个或多个导师,这些导师是开源组织自己指定的。如前所述,没导师的课题,Google是绝对不会批的,所以开源组织也不会提交那些学生自己拟定,但没有导师的课题。

第二阶段的第一阶段大概10天左右,然后Google给出Y个名额。Y <= X。Google给出的Y值是基于X的数量、前一年该组织的GSoC的完毕度(假设第一次參加,默认Y为2)。假设前一年该组织有课题中途而废,要看情况的严重性。严重的话,连最初的组织申请都不会被批准,轻的话,今年的名额数会少一点。PS:各大基金会的名额数是许多的。

当Google分配完名额后,肯定会有学生同一时候申请不同组织下的课题(同一组织下多个课题的申请冲突会在组织内部排名时消除)。Google列出有反复的申请(申请是在Google 的Malange上完毕的,所以Google知道哪些是反复的),在第二个小阶段中,各个组织会一起商讨这些申请。,有些组织会放弃某些反复的学生,这样确保一个学生仅仅会被一个组织录取。至于后面还有几天来筛选反复。感觉基本上没意义。第二阶段一个月的时间,前20天基本结果就能出来了。但不会提前发布。

PS:今年听说一个悲剧的兄弟,从3月份就開始为某个组织贡献代码,天天写,每次commit上去的代码都迅速的被merge了。组织的管理人员也不吭声,反正你提交了代码,合适了我就合并。但最后,23号的时候。该兄弟说,我都写了这么多了,北京时间凌晨3点知道结果,今晚我能提前知道是否能入围吗?项目管理人员回了一句:Haha, sorry. 如今看来,这个sorry有两层意思啊。。。(听说的,可能与事实有些出入)。

第三阶段

阅读文档。这有一个月的时间。入围的学生熟悉课题的详细内容,阅读相关代码。和导师进行沟通。这个月是很重要的,眼下来看,CSDN开源夏令营缺少这个阶段。

第四阶段,编码。这个阶段有近两个半月。分两个阶段,当中有个一周的时间用于中期审核。中期审核与CSDN的同样。

最后

8月中旬左右,停笔审核。

更具体精确的日程安排请參考GSoC主页的日程表。

CSDN开源夏令营

CSDN开源夏令营就不细说了,但今年可能是第一年,有点仓促吧。对照一下,6月16日到7月4日,CSDN用这段时间让学生选题并提交开题报告,导师选定学生。但最好腾出一段时间专门用来让学生申请,然后截止申请,让參与的组织闭门选择学生。将这两个阶段放在一起,假设导师看重了某个学生,然后这时候又来了新的学生,且从已有的信息来看,这名新同学更有能力完毕这个课题。那导师该怎么选择?

另外,课题冲突怎么解决,多人在不同一时候间点申请同一个课题怎么解决,同一人申请不同组织下的课题怎么办。和申请截止日期和导师选择学生的截止日期定为同一天基本上是没有意义的。尽管终于,CSDN和组织能解决这些问题,但这些流程都不是非常清楚。将阶段细化能解决非常多问题。

另外,7月4日学生报名截止,然后7月5日就開始第一阶段的编码了。这是去饭店点菜,点完就要直接吃吗?还是说CSDN对学生有足够的信心?

至于后面的日程安排,都挺合适的。

结语

CSDN作为活动的组织者举办这个活动是很值得称赞的,希望中国的开源活动能多多进步。也希望国家某一天能大力支持开源活动。另外,小小的一个希望,希望CSDN开源夏令营终于是为开源做活动,不要单纯的成了公司的广告公关会或人才招聘会。

值得赞扬的尝试与进步——CSDN开源夏令营第一印象的更多相关文章

  1. csdn开源夏令营-ospaf中期报告

    1.背景         随着将中期的代码托管到CSDN的平台上,ospaf(开源项目成熟度分析工具)已经有了小小的雏形.当然还远远不够.       首先还是要感谢这次活动组织方CSDN,感觉挺有G ...

  2. CSDN开源夏令营 基于Compiz的switcher插件设计与实现之compiz特效插件介绍及特效实现

    compiz自带的特效插件不够多,也不够强大.为了更好的体验compiz的特效,我们能够安装特效插件,在终端输入命令:sudo apt-get install compiz-plugins就能够下载特 ...

  3. CSDN开源夏令营 百度数据可视化实践 ECharts(8)问题分析

    ECharts问题描写叙述: 问题就是折线图上的点是显示的,有人问能不能一開始不显示,当你点击的时候或者是当鼠标移动到上面的时候,折线上的点才显示? 例如以下图所看到的: 分析:让折线上的点不显示能够 ...

  4. CSDN开源夏令营 基于Compiz的switcher插件设计与实现之编译compiz源代码

    在開始介绍之前先吐个嘈:上周我们暑期ACM集训開始了.平均下来基本上是一天一赛.有时还不止.又是多校联赛,又是CodeForces,又是TopCoder.又是BestCoder,又是AcDream.还 ...

  5. CSDN开源夏令营 百度数据可视化实践 ECharts(8)

    (1)前言 首先谢谢林峰老师,继续接着第七篇提到的内容.CSS布局确实非常累,感觉不好看了就的调整,总的看起来的高大上嘛.好了废话不再多说.今天主要就先解说一个页面的内容,对于CSS布局后面讲会具体的 ...

  6. CSDN开源夏令营 百度数据可视化实践 ECharts(4)

    ECharts知识点总结: 在应用过程中总会遇到一些难以理解的概念和属性,这里就总结了一下比較难的知识点,方便理解概念.进而更好的掌握ECharts. (1)1.  一个完整的option包括什么?能 ...

  7. CSDN开源夏令营 基于Compiz的switcher插件设计与实现之前期准备 git的简单使用

    因为项目的代码须要上传到git上.就须要学习一下git的使用了. 我初步接触了一下git,准备用此帖来记录git的学习,此帖会随着我对git了解的深入动态更新. 一.GIT的介绍 1.概述:git是一 ...

  8. Android开发UI之开源项目第一篇——个性化控件(View)篇

    原文:http://blog.csdn.net/java886o/article/details/24355907 本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍A ...

  9. Android开源项目第一篇——个性化控件(View)篇

    本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Ga ...

随机推荐

  1. java中等于和equals的区别

    面试的时候没答上,很受打击,特写在这里. ==是判断两个变量或实例是不是指向同一个内存空间equals是判断两个变量或实例所指向的内存空间的值是不是相同 除了String和封装器,equals()和“ ...

  2. Android02-Activity01

    1.概念:活动是一种可以包含用户界面的组件, 主要用于和用户进行交互. 2.常见操作:      1.隐藏Activity的标题栏: @Override protected void onCreate ...

  3. Cortex-M3和Cortex-M4 Fault异常应用之一 ----- 基础知识

    1. 摘要 Cortex-M内核实现了一个高效异常处理模块,可以捕获非法内存访问和数个程序错误条件.本应用笔记从程序员角度描述Cortex-M Fault异常,并且讲述在软件开发周期中的Fault用法 ...

  4. Object.prototype.toString.call() 区分对象类型(判断对象类型)

    在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组. ...

  5. 使用JS控制struts的日期控件datetimepicker

    功能需求:页面主要有两个日历框,一个是当前日期,一个是去年同期,要求当用户改变当前日期时,同步修改去年同期为当前日期-1年. 当时刚接触到需求的第一时间想到的就是为< sx:datetimepi ...

  6. poj1423---求一个大数的位数方法,我猜网站上统计输入字符少于多少位的那个算法

    法一:对一个数求它的对数,+1取整为其位数 问题转化为int (log10(N!)+1),对数性质log10(N!)=log10(N)+log10(N-1)+...+log10(1) /*用log10 ...

  7. 普林斯顿大学算法课 Algorithm Part I Week 3 排序算法复杂度 Sorting Complexity

    计算复杂度(Computational complexity):用于研究解决特定问题X的算法效率的框架 计算模型(Model of computation):可允许的操作(Allowable oper ...

  8. NULL和nullptr的区别

    //error C2665: “go”: 2 个重载中没有一个可以转换所有参数类型 #include <iostream> void go(int num) { std::cout < ...

  9. vb.net中让控件内容为空(Control类)

    在平常的敲系统中大家有没有遇到需要让Textbox控件或者其他的控件的显示内容为空,以前直接的做法是直接等于空值,如果此类控件有很多,都需要空值,难道都要设置一下它的值为空嘛,显然这是一个笨办法,有没 ...

  10. java中文乱码解决之道(四)—–java编码转换过程

    原文出处:http://cmsblogs.com/?p=1475 前面三篇博客侧重介绍字符.编码问题,通过这三篇博客各位博友对各种字符编码有了一个初步的了解,要了解java的中文问题这是必须要了解的. ...