image.png图片来源:https:mend.io

“互联网的开源本质既是福也是祸,因为我们可以看到世界各地正在发生的事情,我们也可以被关注。” ∼_Alicia Garza_

什么是开源?

开源在此称为开源软件,是一种源代码可公开获得,允许用户免费使用、更改、重新分发、修改或贡献的软件。开源软件是一个协作社区,您可以在其中通过提交提交或建议修改自由地给予和接受社区。

开源已成为当今科技行业的重要组成部分。因此,如果您是 Tech World 的新手,首先,欢迎您!到技术人员社区,您来对地方了,在这里您将获得关于开源社区的 A-Z 以及您周围的机会。

开源和免费源软件有什么区别?

开源和免费源这两个术语重叠但不可互换。开源软件强调许可和安全性,而免费源(也称为免费软件)选择开源,但开源软件不一定是免费的。 Free Source Software 让您可以自由地运行程序、研究其工作原理并根据我们修改其计算。因此,它具有获得源代码访问权的先决条件。

因此,如果您不确定该软件是否是开源的,您可以在opensource.org/licenses/category查看它的 API

描述软件项目这些意识形态的一些术语是:

  1. FOSS:免费[和]开源软件

  2. FLOSS:免费 / Libre [免费] / 开源软件

为什么要选择开源?

作为最终用户、开发人员或经理,开源被认为是软件开发的重要组成部分。开源树立了这样一个例子,即利润和收益不是编程的目标,而是在全球范围内贡献它并进行协作。

说明为什么选择和使用开源的一些因素 -

  1. 通常没有成本或成本较低(某些项目的分销费用可能较低)。
  1. 没有颁发合同许可。
  1. Bug 和安全问题可以快速解决。
  1. 由于软件是定制的,因此支持公共论坛和文档。

一些流行的开源许可证和技术。

  1. GNU 通用公共许可证: 在此许可证下编写的任何源代码都必须作为开源发布。

  2. LibreOffice: Microsoft Office 的真正开源替代品。

  3. Rave: 用于私人开源浏览体验。

  4. **Apache License 2.0:**在颁发 Apache 许可证时,只要遵循 Apache 许可规则,您就可以免费运行、修改和共享软件代码。

  5. **MIT许可:**MIT许可没有限制,可以在其他许可下重新许可。

  6. Swift 编程语言: Apple 创建了 Objective C 的替代品,并将其作为开源技术发布。

  7. **Kubernetes:**这项 DevOps 技术利用开源原则普及了容器编排的使用。

  8. Flutter: Google 用于构建原生 UI 的开源解决方案使世界各地的开发人员更容易制作出令人惊叹的应用程序。

  9. **TensorFlow:**这个端到端的开源平台现在是机器学习工具包的重要组成部分。正是社区的工作使这个软件变得有用。

  10. **Linux:**这个开源平台为我们提供了全球网络搜索和访问操作系统技术的机会。

  11. Android: 该操作系统因其开源特性而广受欢迎,开放了对 Google 服务的访问权限。

  12. WordPress: 最大的自托管博客工具之一,一个开源商业市场,合作提供免费软件和付费服务。

开源中协作的重要性是什么?

获取实时体验

如果您是编程世界的新手,并且想要在软件开发生命周期中获得实践经验,那么开始为开源项目做贡献比封闭项目更好,因为开源项目可以从积极贡献的人那里学到很多东西。您可以轻松学习 Git 流程、问题跟踪、代码审查、修改或软件开发生命周期 (SDLC)。

验证并获得认可

在开源领域工作有助于使您成为您所在领域的专业人士或专家,而无需任何专业经验。如果您在简历中包含您的开源贡献,它可以帮助您从其他候选人中脱颖而出。科技公司经常雇用对代码库和工作流程感到满意的人。有一些组织会组织活动和黑客马拉松,并奖励您的贡献。

技能提升

当你在一个开源项目上工作时,它会让你在技术上听起来不错并提升你的技术技能。因此,您将深入了解程序中的基本问题,甚至是微小问题。因此,使您成为更好的程序员。

帮助社区

是时候回馈社区了,无论您从社区有意或无意地获得的一切。因此,为社区做出贡献为与人们以及当地社区建立联系提供了广泛的机会。

*“开源的免费分享和教学与孤独天才的概念格格不入。”

~戈兰·莱文*

每个程序员都应该知道的一些常见的关键开源术语 -

image.png图片来源:zesium.com

1. 维护者:他们被称为工程师,他们是构建者并管理开源系统。

2\。存储库:存储代码库的地方。在这里,您将了解历史的要点以及您以文件形式存储的任何进度。

3\。问题: 指源代码中的修改或修复错误。贡献者致力于解决问题。

4\。 Fork: 用于在您的用户名下创建存储库的副本。用于在处理某些问题时更改代码。

5\。提交: 这是由用于保存的代码版本的提交消息组织的,以跟踪更改并了解最新版本。

6\。拉取请求(PR): 当您提交更改的提交时,它不会在原始文件中进行修改,而是保存到分叉的存储库中。在经过同行评审和合并之前,这是贡献的首选方式。

7\。合并: 它将建议的 PR 列表导入到原始开源存储库。这是在维护者的帮助下完成的。

8\。 Git: 已知是用于保存所有代码版本的版本控制系统。例如,您可以将其视为存储单元或银行。

9.GitHub: 一个最受欢迎的托管 Git 存储库的站点。

如何开始使用开源?

要开始使用开源,您只需要按照流程图进行操作,然后您就可以启动它。

1\。组织你的想法和技能

在开始之前,请考虑一下您想要做什么。做一些研究,找到你的兴趣。从您熟悉的编程语言开始。您最喜欢其中的哪些框架?你遇到过哪些问题?

一旦你了解了你正在使用的语言,你应该缩小项目范围。然后跳到 Github,Github 展示了项目,只需浏览你想要工作的顶部。如果你是新手,不要跳大型项目。一些项目有“简单”或“仅限初学者”之类的标签。

2\。熟悉 Git 和 Github

创建一个帐户并熟悉如何克隆存储库、发送拉取请求 (PR)、审查更改和分配提交等基础知识。

这是一个视频,您可以访问以了解 Git 和 Github:youtube.com/watch?vu003dapGV9Kg7ics

3\。加入社区

在学习了 GitHub 并确定了一个项目之后,您现在可以加入一个适合您的社区。最简单的加入方式是订阅 Github 上的邮件列表,这样你就会被接受加入团队。现在您可以开始与成员交流了。

我列出了一些我参与的社区,这些社区对我的技术之旅产生了深远的影响,并帮助我发展了其他核心技能。

**

  • 编码记录:(Discord)-discord.gg/p7AnfRNAvf
  • EddieHub : Discord 和 Github 组织链接) -discord.gg/3s45nGZn
  • MLH :discord.mlh.io
  • 社区课堂 : (Discord) -discord.gg/wAkJHPyy
  • 4C : (Discord) -discord.com/invite/TcmA2kbJeA
  • Devstrons : (Discord) -discord.gg/A7jkAnWU
  • Devsnest : (discord)-discord.gg/mJx8BpwQ**

4\。指导时间 一旦您成为会员和经验丰富的贡献者,现在是时候回馈社区了。您应该乐于助人并欢迎新人成为贡献者的一部分。通过您的项目在全球范围内回答疑问、指导和传播知识。您也可以创建自己的项目并提供帮助,以防开发的项目无法提供所需的解决方案。

科技公司正在进行的一些开源项目:

image.png

图片来源:geeksforgeeks.org/(GeeksforGeeks)

  • Google Summer of Code (GSoC):

image.png该计划邀请所有人为18岁以上或以上人员的开源软件开发做出贡献。它为您提供组织的导师。它与 Google 或 Google 的薪酬或工作无关。根据项目,您可以在印度获得 1500 到 3000 美元的有偿津贴。

在此处申请并阅读:summerofcode.withgoogle.com

  • Linux 基金会导师计划(LFX):

它由 Linux 基金会组织,是一个有助于开源软件开发的远程学习机会。您一次最多可以申请3个项目。您可以从 3000 美元到 6600 美元的津贴中获得该计划的报酬。

在这里申请并阅读:lfx.linuxfoundation.org/tools/mentorship

  • MLH 奖学金:

一个为期 12 周的在家工作计划,涉及学生参加 2 个不同的计划,其中一个是开源项目,学生为 Meta、Facebook 和 Adobe 等公司做出贡献,而软件工程项目的学生在 Github 组织下做出贡献。如果您完成为期 12 周的课程,您将获得 1000 美元的助学金(适用于印度学生),并且在 4 周内您不会获得助学金,因为这是一个专注于准备的短期课程。

在这里申请并阅读:Fellowship.mlh.io

  • Google 文档季 (GSoD):

该程序涉及大量文档。这是一个开源程序,适用于18岁或以上的学生注册。在这个项目中,很多开源组织和技术作家一起工作。技术作家为这些开源组织编写文档并获得丰厚的报酬。

在此处申请并阅读:developers.google.com/season-of-docs

  • 外展:

这是一个为期3个月的实习机会,因为只有少数学生被选中,因此进入它非常困难。该计划主要侧重于编程、项目营销和文档。这也是一个带薪实习,你可以获得 5500 美元的报酬。

在此处申请并阅读:outreachy.org

  • KDE 的季节:

它由 KDE 提供支持,KDE 是一个国际自由软件开发社区贡献者,他不仅可以为开源软件做出贡献,还可以为集成系统、KDE 应用程序、文档和其他事物做出贡献。

在这里阅读并申请:season.kde.org

  • 超级账本导师计划

如果您喜欢区块链技术,那么这个程序适合您。它为您提供指导和接触开源开发的实际学习环境。您可以通过提交您的利基和项目提案来指导学生。

在此处阅读并申请:wiki.hyperledger.org/display/INTERN

  • 挖掘代码热:

FOSSASIA 是一个非营利组织,专注于支持开发人员为开源项目和技术做出贡献。 Codeheat 是一个编码竞赛,该计划由导师、开发人员、教授或贡献者组成,他们贡献并成为开源社区的一部分。这是一个为期 2 个月的计划,每个月后都会宣布获奖者。

在此处阅读并申请:codeheat.org

  • Girlscript Summer of Code:

image.png图片来源:Girlscriptsummerofcode 这是一个为期 3 个月的项目,为期 3 个月,面向初学者在夏季进行,从开源软件开发开始。你会得到令人兴奋的机会和好东西。它让新开发人员更多地接触到现实世界的软件开发(例如 - 软件许可、测试等)。

在这里阅读并申请:gssoc.girlscript.tech

  • 自由软件基金会(FSF)实习:

这是一个实习计划,具有网络开发、网络、软件测试和许可方面的知识的先决条件。它有很好的机会与软件开发领域的自由软件基金会成员合作。

在此处阅读并申请:fsf.org/volunteer/internships

  • Linux内核导师计划:

Linux 内核指导计划为渴望成为 Linux 内核开发人员的人们提供了远程机会。要参与其中,您可以同时学习和完成一些课程。

在这里阅读并申请:wiki.linuxfoundation.org/lkmp

  • 段开放团契:

这是一个为期 3 个月的项目,专注于 3 到 5 名开源开发人员,为他们提供 8000 美元的全职机会,以便专注于全职项目。

在此处阅读并申请:segment.com/opensource

  • 开放大型机项目导师计划:

Mainframe Project 是一个开源程序,可扩展您对大型机技术的了解。您将帮助参与涉及在大型机上运行的基础设施应用程序的开源项目。该计划的时间表是从二月到九月。

在这里阅读并申请:openmainframeproject.org

  • 打开代码之夏

该计划由开放知识比利时组织。它也是一个开源项目,为学生提供团队合作和来自不同合作伙伴组织的创新项目。无需留在比利时即可申请,但必须根据比利时的规章制度以学生身份工作。

在这里阅读并申请:osoc.be

一些奖励机会:

  1. CNCF指导倡议:github.com/cncf/mentoring

  2. 无尽的代码假期: EvoC:x.org/wiki/XorgEVoC

  3. Julia Seasons of Contributions (JSoC):julialangblogmirror.netlify.app/jsoc

  4. Haskell之夏:summer.haskell.org

  5. Linux Foundation Networking (LFN) 导师计划:wiki.lfnetworking.org/display/LN/LFN+Mentor..

  6. 红帽开源大赛:research.redhat.com

  7. 24个拉取请求:24pullrequests.com/about


感谢您阅读文章。我希望这篇文章对你有所帮助。

                      With love from Kriti Nigam ❤********
Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐