代码之家  ›  专栏  ›  技术社区  ›  domlao

新手程序员的开源贡献[关闭]

  •  8
  • domlao  · 技术社区  · 16 年前

    我正在教我的侄子编程,我希望他们通过参与开源项目来提高自己的技能。现在我的问题是,你知道适合新手程序员的开源项目吗。我的意思是,这个项目没有一个大的代码库,这个项目是非常有趣的,这个项目是用C写的,因为我选择C语言作为他们的开始语言,但你可以建议其他项目用其他语言。

    我在这里的目标是通过阅读其他源代码来改进他们的逻辑,熟悉可用的开发工具,如bug tracker、版本控制系统等,并打开他们对开源社区的兴趣。

    4 回复  |  直到 16 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    以前有人问过这个问题吗?

    Open source project: beginners [closed]

        2
  •  2
  •   trijezdci    16 年前

    在我看来,在有人准备为任何非琐碎的开源工作做出贡献之前,他们应该对数据结构以及adt和信息隐藏的概念有一个坚实的理解。理想情况下,他们会自己实现一些基本的adt。

    在我的经验中,这是非常经常缺乏的,尤其是当用于指导初学者的语言是C时,因为C没有内置的ADT,也没有标准的ADT库,开发人员通常希望能够编写自己的或选择第三方库,并在必要时根据自己的需要进行定制。

    一个熟悉ADTs的贡献者很快就会惊恐地逃离这样一个项目。一个不熟悉ADT的投稿人只会在那里学到坏习惯。

    然后你可以检查他们为任务所做的工作,如果你发现任何错误,你可以使用bugtracker来提交一个bug,然后他们必须相应地处理这个bug。然后,您可以通过使用bugtracker等再次提交特性请求来扩展分配。

    此外,像Github和Bitbucket这样的站点有一个克隆此存储库功能。这也有利于教学协作。根据学生的技能,您可以选择一个现有的存储库供他们克隆,然后在您的作业之后扩展,或者您可以要求他们搜索一个存储库(可能与某些条件匹配),然后为自己选择一个存储库,然后在您的作业之后再次扩展该存储库。

    我个人认为,还有一件事应该是参与任何非琐碎的开放源码项目的先决条件:理解契约式设计,如何记录函数契约,在函数契约中思考,开发出一种规程,在没有先记录函数契约的情况下,决不编写任何代码。不幸的是,使用契约式设计的开源项目太少了。同样,熟悉这种做法的投稿人很快就会惊恐地逃离这样的项目,而不熟悉的投稿人只会染上坏习惯。

    一旦你的学生掌握了我上面概述的技能,我确信“我们可以为哪些开源项目做出贡献?”这个问题将变得很难回答,因为在那个阶段,你的学生将能够找到并选择适合自己的项目。

    同时,如果您觉得您的学生仍然需要一些用C编写的adt和如何编写函数契约的示例代码,而您手头没有任何这样的示例,那么您可能需要看看我在Bitbucket的存储库。它在C中有各种常见的ADT,所有源代码都包含函数契约。您可以随意复制其中的任何回购协议,并将其用作练习的基础:

    我敢肯定,如果你环顾四周,也有许多其他作者的合适材料。

        3
  •  1
  •   Vincent Cantin    15 年前

    我建议使用GitHub,因为他们不需要联系其他人就可以开始访问存储库,而且错误的提交不会产生问题,因为它只是一个“本地”提交。

        4
  •  0
  •   ms4720    16 年前

    我一直发现freebsd项目很适合教人们如何用C编程。他们将得到提交人的代码审查,他们将解释如何做得更好,他们有很棒的文档, http://www.freebsd.org/doc/en/books/developers-handbook/book.html . 您可以自愿修复错误: http://www.freebsd.org/cgi/query-pr-summary.cgi http://www.freebsd.org/projects/ideas/ideas.html 有的简单,有的难