如何高效地在网上找开源项目

开源项目是发展技能、分享想法和成为开发社区一员的好方法。开源意味着软件功能背后的源代码与所有想要阅读它的人公开共享。这意味着你可以准确地看到一个系统是如何工作的——一旦你愿意冒险,就为它做出贡献。除了向所有人开放贡献外,这种开放代码库通常还为免费安装和使用的应用程序和服务提供支持。因此,它为商业模式提供了一种重要的替代精神。

开源运动致力于扩大此类技术的范围,帮助更广泛的社区学习并为他们每天使用的软件做出贡献。而且使用它的不仅仅是本土项目。谷歌、微软和IBM等大型国际公司越来越依赖开源技术来开发自己的软件。

那么,您如何找到开源项目以及如何做出贡献呢?起初它们似乎有点令人生畏,特别是如果您的技术知识有限。但是,从小的干预开始是完全可能的。更重要的是,大多数项目都欢迎来自不同技能的贡献者的贡献。有许多社区资源和活动可以帮助您立即启动。二月是开源月,所以还有什么更好的时间来仔细观察并为自由软件世界做出自己的贡献呢?

开源月

每年二月,程序员和贡献者聚集在一起庆祝自由和开源软件(FOSS)月。在世界各地,组织黑客马拉松、用户组、社交媒体活动和其他活动,以促进和鼓励开源技术。该活动由Onyx Point创立,Onyx Point是一家对合作软件开发有浓厚兴趣的小型IT企业,自2017年以来已获得官方认可。

FOSS运动活动的各个方面都受到庆祝,从小错误修复到快速节奏的软件工程聚会,其中应用程序是从头开始开发的。这些“黑客马拉松”通常围绕敏捷软件开发实践(如冲刺)构建。它们涉及工程师、设计师和项目经理共同努力,在有限的时间内生产高质量的软件。除了非常有趣之外,这些活动还有助于展示从头开始密切合作工作的重要性,与许多企业项目的长期发展形成鲜明对比。但是你不需要加入黑客马拉松来为自由软件尽自己的一份力量。

在二月份,我们庆祝开源精神。

如何贡献?

如果你对开源软件有任何兴趣,你几乎肯定会找到一种贡献的方式。自由和开放源码软件运动主要由其社区推动,因此它受益于其多样性和全球影响力。你不需要在世界黑客联盟的顶级联赛中 - 所有级别的技术能力都可以提供一些东西。技术技能可以是前端和后端编码、数据库、网络、DevOps 等。事实上,你根本不需要成为一名编码员,因为许多开源项目也需要贡献来帮助UI设计,文档和翻译。大型项目需要许多与专有软件生产(如营销和项目管理)相同的技能。那么如何开始呢?

开源软件使用 Github 等工具来管理代码和资源,并主持有关未来方向和修复的讨论。看看主要FOSS项目的存储库,如Mozilla Firefox或LibreOffice。您可以自由加入这些社区,并添加自己的功能想法或报告错误。此外,如果您想成为第一个尝试前沿新开发的人,请留意 beta 测试人员的空缺。

在哪里可以找到开源项目

知道如何找到开源项目很重要,特别是如果您是初学者。如果您已准备好将自己的贡献添加到代码库中,您会发现许多资源来帮助您找到参与的方法。在Github存储库中,注意标记为“Good First Issue”的问题,这是一个旨在帮助新手在FOSS社区中找到立足点的公约。您应该能够找到小错误修复、文档、测试等的空缺。您贡献的任何内容都将由维护者或项目所有者进行审查,社区可以帮助您解决任何问题。

还有许多网站致力于帮助您找到适合初学者的空缺。以下是一些可以尝试的方法:

First Contributions 是一个 GitHub 项目,为您提供资源,帮助您在短短 5 分钟内开始贡献。

Codetribute 是专门为 Mozilla 项目的第一批贡献者设计的。它具有合适的项目和问题,您可以按各种条件进行搜索。

Ovio Projects 提供了一个社区平台,其中包含大量适合初学者的项目,让您咬牙切齿。

Up For Grabs为您提供了非常适合初学者的精选任务列表。

Hacktoberfest Projects通过编码语言列出机会。Hacktoberfest每年十月举行,但您可以随时做出贡献。

这些平台中的每一个都提供了适合您的技能组合的操作系统项目选择,以及如何做出贡献的指导。另请查看开源指南,全面介绍如何入门、如何加入社区、贡献最佳实践、法律问题等等。

开源适合初学者吗?

尽管它在更广泛的软件开发社区中建立起来,但关于谁可以为开源项目做出贡献,以及如何以及为什么这样做,仍然存在一些不确定性。你需要成为一个特立独行的黑客吗?它只适合业余爱好者吗?还是专业开发人员也参与其中?

事实上,FOSS社区非常广泛,包括各种技能水平和职业情况的开发人员以及文档编写人员,测试人员,管理员等的贡献。IBM和谷歌等国际软件系统的主要参与者使用开源的事实应该足以表明它不仅仅是业余爱好者的追求。

看看FOSS最成功的一些项目:Mozilla Firefox被公认为顶级网络浏览器之一已有大约二十年的历史。Linux是服务器使用最广泛的操作系统之一,也是开源的,还有Apache和Nginx等Web服务器软件。因此,您不必怀疑开源的专业性。

但是,如果您只是迈出第一步,开源也是获得实际项目经验和发展职业生涯的好地方。由于其充满活力的社区,您几乎总能找到专家为您提供指导和支持。而且由于公共风气,人们的谨慎程度比你在专有项目上发现的要少。通过开源,共享使每个人都受益。

代码库的作用

如果你对编程比较陌生,可能很难将你用来学习代码结构的示例转化为主要项目的复杂架构。大型项目通常具有大型代码库,根本无法一次性理解,入口点可能不明显。那么如何开始呢?

如果你还没有,你需要获得一些关于 Git 和 Github 的知识。Git 是一个协作版本控制系统,允许您管理代码库,随时提交更改,并在出现问题时进行还原。GitHub 是一个基于 Git 构建的免费、可访问 Web 的平台,托管许多开源项目以及问题跟踪器和文档。它允许开发人员跟踪和共享代码,并进行分叉以尝试新功能或修复。因此,如果您想在FOSS生态系统中留下自己的印记,这些技术的工作知识是非常宝贵的。

但是,大型代码库一开始可能有点令人生畏。对于外行来说,浏览包含数百万行代码的项目并非易事。数十个分叉可能看起来像是极端多任务处理的练习,问题跟踪器可能会让人不知所措。但没有必要惊慌。

关键是要从小处着手。首先克隆、构建和运行应用程序,这将使您了解其中的利害关系。然后,您可以开始探索您可能做出贡献的问题。查找需要简单修复的问题,例如更改方法名称以匹配 API 更新。这将帮助您开始您的工作流程。完成分叉存储库、进行更改并提交以供审批的过程。如果您遇到困难,您可以随时向社区寻求指导。

查找开源代码库是了解大型项目如何工作的好方法,但在开始时可能会让人不知所措。

一旦你打破了僵局,你就可以进一步工作了。尝试扩展测试覆盖率 – 测试也是了解代码功能的好方法。 随着您的进步,您可以开始考虑功能更改和更多重大更新。请记住,要执行任何操作,您不需要一次了解所有代码库。

希望本文已经证明,有很多资源可以帮助您找到适合您的经验和需求的开源项目。您不必一蹴而就成为专家,一旦开始,您就会成为世界上最令人兴奋和最具活力的开发人员社区之一的一部分

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/22472.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

经典JavaScript手写面试题和答案

文章目录 实现一个函数去重?实现一个函数,判断指定元素在数组中是否存在?实现一个函数,将给定字符串反转?实现一个函数,检测指定字符串是否为回文(即从前往后和从后往前的字符序列都相同&#x…

Systrace系列4 —— SystemServer 解读

本文主要是对 SystemServer 进行简单介绍,介绍了 SystemServer 中几个比较重要的线程,由于 Input 和 Binder 比较重要,所以单独拿出来讲,在这里就没有再涉及到。 窗口动画 Systrace 中的 SystemServer 一个比较重要的地方就是窗口动画,由于窗口归 SystemServer 来管,那么…

react学习3 生命周期

componentDidMount()与render()一个级别的,在组件挂载完成之后调用 卸载组件:REACTDOM.unmountComponentAtNode() componentWillUnmount() 组件马上被卸载的时候 老生命周期: 新的生命周期: 废弃了(加上Unsate_还是…

RabbitMQ --- 死信交换机(一)

前言 当我们在使用消息队列时,难免会遇到一些消息被拒绝,重复投递或者超时等异常情况。这些异常消息如果不被正确处理,将会阻碍整个消息系统的正常运行。而此时,死信交换机(Dead Letter Exchange,简称DLX&…

FAT NTFS Ext3文件系统有什么区别

10 年前 FAT 文件系统还是常见的格式,而现在 Windows 上主要是 NTFS,Linux 上主要是Ext3、Ext4 文件系统。关于这块知识,一般资料只会从支持的磁盘大小、数据保护、文件名等各种维度帮你比较,但是最本质的内容却被一笔带过。它们最…

MySQL-索引(2)

本文主要讲解MySQL-索引相关的知识点 联合索引前缀索引覆盖索引索引下推索引的优缺点什么时候适合创建索引,什么时候不适合?如何优化索引 ? 索引失效场景 ? 为什么SQL语句使用了索引,却还是慢查询 ? 使用索引有哪些注意事项 ? InnoDB引擎中的索引策略 目录 联合索引 联合…

【C++】函数重载 - 给代码增添多彩的魔法

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、函数重载概述 3、函数重载注意事项 4、总结 1、缘起 函数重载,是编程世界中的一抹迷人色彩&#xff0c…

动态规划-状态压缩DP

[SCOI2005] 互不侵犯 题目描述 https://www.luogu.com.cn/problem/P1896 在NN的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。 …

堪比ChatGPT,Claude注册和使用教程

新建了一个网站 https://ai.weoknow.com/ 每天给大家更新可用的国内可用chatGPT资源 Claude简介 Claude是一款人工智能聊天机器人。主要有以下特征: 使用自己的模型与训练方法,而不是基于GPT-3等开源框架。模型采用Transformer编码器与解码器的结构,并使用对话上下文的双向…

实验六 自动驾驶建模与仿真

【实验目的】 了解Matlab/Simulink软件环境,熟悉Simulink建模步骤;了解车辆运动控制的基本原理,学会简单的车辆运动控制建模及仿真;了解自动驾驶建模的基本过程,了解典型ADAS系统模型的应用特点。了解自动驾驶相关函数…

老司机解读香农定理、奈奎斯特定理、编码与调制

工程师都会考虑一个问题:信道上到底可以传输多大的数据,或者指定的信道上的极限传输率是多少。这就是信道容量的问题。例如,在xDSL系统中,我们使用的传输介质是仅有几兆带宽的电话线,而上面要传送几兆、十几兆甚至几十…

用 Python 写 3D 游戏

vizard介绍 Vizard是一款虚拟现实开发平台软件,从开发至今已走过十个年头。它基于C/C,运用新近OpenGL拓展模块开发出的高性能图形引擎。当运用Python语言执行开发时,Vizard同时自动将编写的程式转换为字节码抽象层(LAXMI),进而运行…

WorkPlus AI助理 | 将企业业务场景与ChatGPT结合

近年来,人工智能成为了企业数字化转型的热门话题,作为被训练的语言模型,ChatGPT具备模拟对话、回答问题、写代码、写小说、进行线上内容创作的能力,还能根据聊天的上下文进行互动。作为一款新兴的人工智能应用程序,对于…

【IDEA】DeBug(图文并茂)

文章目录 01_Debug简介和意义02_IDEA中的Debug步骤03_跳转到当前代码执行的行04_步过调试的使用05_步入调试的使用06_强制步入调试的使用07_步出调试的使用08_回退断点调试的使用09_运行到光标处10_计算表达式11_条件断点12_多线程调试 IDAEA(Interactive Data Anal…

【Linux高级 I/O(3)】如何使用阻塞 I/O 与非阻塞 I/O?——poll()函数

poll()函数介绍 系统调用 poll()与 select()函数很相似,但函数接口有所不同。在 select()函数中,我们提供三个 fd_set 集合,在每个集合中添加我们关心的文件描述符;而在 poll()函数中,则需要构造一个 struct pollfd 类…

分享18个好用的ChatGPT插件

上周ChatGPT又进化了,支持联网还有70几种第三方插件,不过还是老样子,只服务氪金玩家,免费端可能还得等等。之前只开放了俩插件,网络浏览器和代码解释器,只能说是真的不够用。 ChatGPT:不够&…

(一)before initialization of D3D(初始化D3D之前你需要了解的D3D基础知识)

什么是D3D? D3D全称Direct X 3D,即一组API可以用来针对GPU编程,不过他最主要的作用是用来渲染(不过现在也有很多其他应用比如d3d11va[Direct X 3D 11 Video API]用来进行硬件加速解码) Tips:Direct X 3D主要用来渲染,既然我们说到可以针对GPU编程了,当然不只是渲染的工作可以…

布隆过滤器和布谷鸟过滤器

过滤器使用场景: 比如有如下几个需求: 1.原本有10亿个号码,现在又来了10万个号码,要快速准确判断这10万个号码是否在10亿个号码库中?   解决办法一:将10亿个号码存入数据库中,进行数据库查询&…

iptables防火墙

iptables防火墙 一、iptables概述1.netfilter 与 iptables 的关系1)netfilter2)iptables 2.四表五链1)四表2)五链3)表的匹配优先级4)规则链之间的匹配顺序5)规则链内的匹配顺序 二、iptables防火…

CodeForces.1806A .平面移动.[简单][判断可达范围][找步数规律]

题目描述: 题目解读: 给定移动规则以及起始点,终点;分析终点是否可达,可达则输出最小步数。 解题思路: 首先要判定是否可达。画图可知,对于题目给定的移动规则,只能到达起始点(a,b…