成为开放软件的程序员

作者: Morris Wright
创建日期: 24 四月 2021
更新日期: 1 七月 2024
Anonim
腾讯程序员都在用啥编程软件?
视频: 腾讯程序员都在用啥编程软件?

内容

编写和使用开放软件不仅是编程的一种形式(在程序员的世界中也称为“黑客”),它是一种哲学。尽管您只需要知道一种编程语言就可以编写代码,但本文是关于如何加入社区,结交朋友,在出色的项目上进行协作以及如何成为备受尊敬的专家,其个人资料在其他地方无法获得。在开放软件的世界中,可以很轻松地为您分配仅允许公司中的精英,顶级程序员执行的任务。想想这可以带给您多少经验。但是,一旦决定成为开放软件程序员,就必须愿意花时间在这个目标上。如果您已经是IT学生,这也适用。请注意,本文不是关于如何成为黑客或破解者的。

  1. 下载良好的Unix发行版。 GNU / Linux是最流行的编程之一,但是GNU Hurd,BSD,Solaris和(一定程度上)Mac OS X也很常用。
  2. 了解如何使用命令行。 如果使用命令行,则可以在类似Unix的操作系统上做更多的事情。
  3. 学习一些流行的编程语言,直到您达到或多或少令人满意的水平。 否则,您将无法向开放软件社区贡献代码(任何软件项目中最重要的部分)。一些消息来源建议同时使用两种语言:一种系统语言(C,Java或类似语言)和脚本语言(Python,Ruby,Perl或类似语言)。
  4. 为了提高生产力,您需要NetBeans或类似的集成开发环境。
  5. 学习使用高级编辑器,例如vi或Emacs。 它们的学习曲线较高,但是您可以使用它们做更多的事情。
  6. 了解有关版本控制的信息。 对于共享软件开发,版本控制可能是协作中最重要的工具。了解如何创建和应用补丁。社区中的大多数开放软件开发都是通过创建,讨论和应用各种补丁来完成的。
  7. 找到一个合适的小型开放软件项目,您可以轻松地参与该项目以获取经验。 这些天大多数此类项目都可以在SourceForge.net上找到。合适的项目应包括:
    1. 使用您知道的编程语言。
    2. 活跃于最新版本。
    3. 已经由三到五个开发人员组成。
    4. 要使用版本控制。
    5. 您可以立即开始使用一部分,而不必过多更改现有代码。
    6. 除了代码之外,一个好的项目还具有活跃的讨论列表,错误报告,获取和实施改进请求以及类似的活动。
  8. 请与所选项目的管理员联系。 在一个开发人员很少的小型项目中,通常会立即接受您的帮助。
  9. 仔细阅读项目规则,或多或少遵循它们。 起初,编程风格的规则或在单独的文本文件中记录所做更改的需要似乎很荒谬。但是,这些规则的目的是实现共享工作-大多数项目都可以使用它们。
  10. 这个项目工作了几个月。 仔细听管理员和其他项目成员所说的话。除了编程,您还有很多东西要学习。但是,如果您真的不喜欢某事,请停止并切换到另一个项目。
  11. 不要在地下项目中停留太长时间。 一旦发现自己能够在该团队中成功工作,就该开始寻找更严肃的东西了。
  12. 寻找一个严肃的,高级的开放软件或开源项目。 大多数此类项目由GNU或Apache组织拥有。
  13. 因为我们在这里迈出了重要的一步,所以您必须考虑到热情洋溢的情况。 首次可能会要求您在没有直接对代码存储库的直接写访问权的情况下运行。但是,先前的地下项目应该给您带来很多启发-因此,在进行了几个月的富有成效的贡献后,您可以主张自己应拥有的权利。
  14. 承担一项艰巨的任务并将其解决。 是时候了。不要害怕。即使您发现任务比您最初想的要困难得多,也要继续进行-在此步骤中,重要的是不要放弃。
  15. 如果可以的话,请向Google的“代码之夏”申请,为这次冒险投入一些资金。 但是不要担心是否不接受该应用程序,因为与真正优秀的程序员相比,他们的资助职位少得多。
  16. 查找附近合适的会议(“ Linux天”或类似的日子),然后尝试在此处展示您的项目(整个项目,而不仅仅是您编程的部分)。 在您提到您代表的是一个严肃的免费/开源项目之后,组织者通常会向您赔偿会议费(如果没有,则无论如何该会议都不合适)。带上您的Linux笔记本电脑(如果有的话)并运行一些演示。向项目经理询问可用于准备演示文稿或海报的材料。
  17. 在Internet上搜索有关附近安装事件的公告,并尝试首先以用户身份参与(请注意所有出现的问题以及黑客如何修复它们)并下次提供安装程序。
  18. 完成任务,通过自动测试检查您的工作并为项目做出贡献。 大功告成!可以肯定的是,尝试亲自与项目中的一些程序员见面,并共同为结果举杯啤酒。
  19. 为了更好地理解,请看一个开放软件项目的开发历史的真实示例(请参见上文)。 每条上升曲线代表单个开发人员的贡献(代码行)。随着年龄的增长,开发人员往往变得不那么活跃,但是即使有新人加入,该项目也往往会加快速度。因此,如果您掌握了一些有用的技能,那么团队就没有理由不邀请您。

尖端

  • 在询问有关项目内实际要求的问题之前,请在项目文档和邮件列表档案中寻找答案。
  • 始终尝试完成您开始的所有编程工作。无法构建,无法运行,系统崩溃?那里 成为 一切的原因,如果您拥有源代码,通常意味着您拥有系统 出色地 可以强迫您做任何您想做的事情,尤其是在一些在线研究的帮助下。当然,这条规则是有局限性的,但绝对不要轻易放弃,这一点确实很重要。
  • 仅在您被某些真正的黑客社区认可后,才称自己为程序员(或黑客)。
  • 首先,选择一个班级,模块或其他单位,这些人目前都没有非常积极的工作。在同一个班级甚至一个职位上共同努力需要更多的技能和各个方面的照顾。
  • 一些黑客/程序员的雇主似乎有足够的动力来允许在工作时间内做出贡献(通常是因为该机构使用程序员正在开发的免费/开源程序)。想一想,也许您可​​以通过这种方式获得至少一些所需的时间。
  • 如果您仍然对自己没有足够的信心,请从您认为丢失的代码的某些部分开始,并可以从头开始编写。对现有代码的更改更有可能受到批评。

警示语

  • 您在社区项目中的黑客身份更多地反映了您的现在而不是过去。如果您需要项目负责人的建议或类似建议,请询问您是否仍在积极贡献。
  • 不要进行小型代码优化,多余的注释,编码风格的改进以及其他类似的“小规模”工作。与严肃的贡献相比,这可能会受到更多的批评。相反,您可以将这些更改包含在单个“清理”补丁中。
  • 如果您打算亲自与开放软件黑客见面,请将Windows笔记本电脑留在家中。 Mac OS的容忍度稍高一些,但也不是很受欢迎。如果携带笔记本电脑,则笔记本电脑必须运行Linux或其他他们认为是“开放软件”的操作系统。
  • 如果您的电子邮件客户端支持HTML消息,则应禁用此功能。切勿附上只有商业软件(例如Microsoft Word)才能正确打开的文档。黑客认为这是进攻性的。
  • 请勿自愿参与其代码未包含在已批准的开源许可证中的公司的项目。在这种情况下,项目的真正重要部分很可能会被业主关在门外,从而使您无法学习任何有用的信息。
  • 避免对编程或编程工具的基础知识有任何疑问。开放软件程序员的时间很宝贵。相反,请在业余或入门程序员小组中讨论编程的基础知识。
  • 已建立且非常成功的项目可能已经制定了关于永不偿还您工作的书面或不书面政策(没有金钱,没有晋升的能力,无论您的贡献如何都没有晋升的地位,等等-参见:Do_not_expect_reward Wikipedia)。如果您不同意这一点,请坚持承担不起这种态度的更常见的项目。
  • 除非您始终想在骄傲的孤独中度过,否则不要开始自己的项目。出于同样的原因,最好不要尝试恢复以前的团队已经失去的已经废弃的项目。
  • 在您从未向其提供任何代码的项目的非正式会议中,您将有被完全忽略的不愉快的感觉。不用担心,在您以自己的代码赢得尊重后,一些黑客可以稍后成为好朋友。
  • 大型开放式软件项目,尤其是围绕GNU域的项目,不会将您的工作视为个人业务。在与软件相关的公司中找到工作之后,他们会要求您的雇主签署某些协议,[1]该公司将或不会签署这些协议。这可能会迫使您选择要求不那么严格的项目。

生活必需品

  • Linux。许多开放软件项目在Windows上构建更复杂,或者根本无法正确构建。对于致力于手机,USB钥匙和其他设备编程的高级项目尤其如此。
  • 具有相对良好的Internet连接的计算机。如果要与Windows保持双重引导,那么为Linux使用第二个硬盘驱动器或分区可能是一个很好的解决方案。
  • 至少一种编程语言的基础知识,并且有强烈的学习欲。当前最流行的语言似乎是C和Java。
  • 大量的时间,每周至少五个小时(一个典型的硬核程序员贡献了多达14个小时的时间)。
  • 正规的IT教育将使您的工作变得轻松许多,仅此而已 不是 强制性要求,没有真正的黑客社区会向您询问。程序员/黑客是通过某人的编程来相互评判的,而不是根据等级,年龄,种族或职位等虚假标准来进行判断。请注意,至少有60%评估您的补丁程序的开放源代码黑客具有“正确的”大学学位,并且不允许您为该项目做些废话。
  • 在最后的步骤(会议和“安装聚会”)中,您可以从自己的笔记本电脑中受益。但是在家中工作是不行的,因此,如果您负担得起第二台机器,则只能购买一台。
  • 被描述为成为开源软件“黑客”的路径至少需要两年时间才能完成。