如何为开源项目和社区做贡献 -- 你应该知道的十件事(一)

2024-01-01 16:20

本文主要是介绍如何为开源项目和社区做贡献 -- 你应该知道的十件事(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 前言

  大家好,我叫颜国进,现为英特尔边缘计算创新大使、百度飞桨开发者专家。回溯至2021年12月,那时的我,身为机械专业研一新生,仅在C和Python编程语言上有些许基础,对于深度学习的殿堂还只敢在门口窥探,对于OpenCV图像处理以及模型部署等技术更是所知甚少。然而,通过不懈的努力和对知识的执着追求,如今我已经能够娴熟地运用C++、C#等编程语言进行项目开发,并且能够使用Python和各类深度学习框架来训练自己的模型。值得一提的是,我已经发布并运营了一项名为OpenVINO C# API的开源项目,为在C#平台开发深度学习和计算机视觉应用的开发者提供更便捷的工具。围绕该项目,产出了多篇富有深度的技术文章,分享了我在使用OpenVINO部署深度学习模型过程中的洞见和体会。

  在深入参与开源项目的过程中,我也广泛参考了网上的一些成功项目经验,得到了无数宝贵的经验和技能提升,这使得我的技术层次上升到了全新的高度。经过两年的探索与实践,技术能力得到了显著的提高,而更重要的是,我的努力得到了越来越多人的认可和支持,从而扩大了我在技术社区的影响力。时值我开展开源项目的两周年,我有幸应张晶和李翊玮老师的邀请,以及武卓博士的悉心指导,有机会整理与分享我从一个技术新手逐步成长到拥有自己开源项目的经验与感想。我希望我的分享能为刚刚踏入开源领域的新手们提供一些有价值的参考,帮助他们更迅速地融入这个富有活力和创新精神的开源社区。
下面,我将从四个层面并结合具体的问题分别向大家:

2. 为什么要做开源

问题一、为什么要给开源项目和社区做贡献?

  首先,我们来探讨一下为什么应该为开源项目和社区做出贡献。对于那些还在犹豫不决是否投身于开源项目的小伙伴们,我希望能够提供一个有力的依据。参与开源项目不仅有助于个人的技能提升和职业发展,更能推动整个技术社区的进步。通过你的贡献,我们可以共同创造一个更加开放、协作和创新的技术生态,让每个人都能从中受益。

  • 参与开源项目和社区对个人具有多方面的积极影响。

    • 技术提升——通过参与开源项目,个人能够接触和学习到更多的技术工具和前沿技术,推动自身技术的不断提升。并且开源项目可以获取全部源码,这对你深入了解一项技术实现以及应用,会有很大的帮助。

    • 提升个人的声誉和影响力——通过专注于某一领域并在其中深耕,你可能成为该领域的专家,吸引其他技术专家的关注和求助。这些互动和认可不仅有助于建立个人的专业声誉,还可能带来一些荣誉称号,为未来的发展提供有力的支持。

    • 塑造个人的未来发展轨迹——开源的自由性和包容性使得个人能够自主选择感兴趣的领域进行探索和发展。你可以将开源项目中的经验和技能应用到自己喜欢的领域中,或者通过开源项目发展新的兴趣和专业方向。这将为个人的职业发展带来更多的可能性和机遇。总之,参与开源项目和社区对个人技术提升、声誉建立以及未来发展都具有积极的影响。这是一个充满挑战和机遇的舞台,值得每个有志于技术领域的人积极参与和贡献。

  • 开源还对当前行业以及企业发展带来了更多的红利。

    • 开源已经成为软件行业的基础——开源促进了技术的快速发展和创新,第一点,由于代码是公开的,开发者可以基于现有的项目进行创新,而不需要从零开始,这样的协作和共享精神加速了新技术的诞生和成熟。第二点,开源软件通常是免费提供的,这降低了企业和个人使用和实施新技术的成本,企业可以使用开源软件来构建复杂的系统,而无需支付昂贵的授权费用。第三点,开源软件赋予用户更大的自由度,用户可以自由地修改和改进软件以满足自己的需求,这种灵活性对于需要定制解决方案的企业和开发者来说是非常重要的。第四点,开源项目通常有一个活跃的社区,社区成员可以相互支持,解决问题,分享经验。这种广泛的协作和支持网络是传统闭源软件难以比拟的。第五点,开源项目可以非常迅速地迭代和改进,社区贡献者可以快速响应问题,提交补丁,添加新功能,从而保持软件的活力。基于此,可以看出开源软件已经深刻地影响了软件产业的各个方面,并且在很多情况下成为了技术创新和应用的基石。
      在这里插入图片描述

    • 开源已经成为当前最前沿技术的发展的强大动力——开源模式鼓励全球范围内的协作和知识共享,由于开源项目可以被任何人审查、使用、修改和改进,这样的透明度和可接触性降低了进入门槛,极大地促进了创新的速度和质量。此外开源社区的参与者可以迅速识别和修复软件中的错误,增加新的功能,并持续改进产品,这种集体智慧的应用使得技术能够快速迭代和演进,经常超出单一组织的开发速度。开源项目往往吸引来自不同组织和行业的贡献者。这种多元化的视角和专业知识结合在一起,可以解决复杂的问题,推动前沿技术的发展。开源项目还是人才发现和发展的平台,许多开发者通过参与开源项目获得实战经验,进而成为行业内的专家。最后开源项目提供了高质量的软件基础设施,许多公司和组织可以直接使用或构建自己的产品,比如Linux操作系统、Apache Web服务器、MySQL数据库、TensorFlow机器学习框架、OpwenVINO模型部署框架等,都是开源项目,它们为最前沿的技术发展提供了坚实的基础。开源项目围绕它们构建了强大的生态系统,这个生态系统是持续创新的土壤,帮助技术不断进步。
      在这里插入图片描述

  废话了这么多,但也很难完全表述给开源项目和社区做贡献的好处,下面我将从个人经历简单讲述一下做开源项目这两年,到底给我带来了啥?

  • 技术方面:刚开始做开源项目时,我的状态就是一个非计算机专业、没有编程经验和算法基础的新手小白,蜕变成为一个可以实现在C/C++、C#和Python环境下使用多种部署工具套件落地AI设备全流程开发,并且在稳定运行了多个小型开源项目。在这过程中,我学习了C++、C#以及Python编程语言,这样我就可以能够看懂开源新项目的源码;我做的主要领域时深度学习模型部署,因此我自学了OpenVINO、TensorRT、ONNX runtime 等模型部署工具,实现在各种平台下部署深度学习模型。并且由于所做工作为开源项目,为了遵循开源社区规范,自己也养成了良好的编程习惯以及代码规范,学会了开源项目从创建、提交、完善、维护、更新以及发布等全套流程。
    在这里插入图片描述

  • 开源贡献:结合自己接触的一些开源项目,自己选者了一个方向去做,主要是在C#平台部署深度学习模型。基于OpenVINO模型部署工具创建了OpenVINO C# API项目,并结合该项目,开发了当前流行的模型部署案例。截止到目前,自己已经在开源平台GitHub平台贡献了100,000多行代码,推出了10多个开源项目。除此以外,自己还结合所做的开源项目,在多个平台与开源社区发布了了多篇技术文章,获得了上千人的阅读,并且在CSDN平台打造自己的博客平台,截止目前已经发表了42篇文章,获得了80000+的阅读量以及1400+的粉丝关注,在分享自己案例指导指导其他开发者的同时,也收获了更多人的关注,提升了自己的影响力。同时由于自己专注于英特尔以及百度飞桨的开源项目工作,因此获得了英特尔边缘计算创新大使、百度飞桨开发者专家等荣誉称号。

  • 在这里插入图片描述

  上面只是简单总结了自己这两年以来做开源项目所获得的东西,可以看出,给开源项目和社区做贡献,在成就开源社区的同时,更大的就是成就了自己。

备注:本文中所使用的所有插图,标注“AI作图”标记的图片均由百度文言一心(文心大模型4.0)生成,其图片生成思路与文字均有作者提供。

这篇关于如何为开源项目和社区做贡献 -- 你应该知道的十件事(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/559828

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP