前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >参与开源能让人更幸福

参与开源能让人更幸福

作者头像
石云升
发布2022-08-25 21:09:01
2480
发布2022-08-25 21:09:01
举报
文章被收录于专栏:石云升

互联网经过这么多年的发展,可以肯定的说,大部分程序员遇到的问题都被其他人碰到并解决过。行业里经常听到一句话,不要重复造轮子。因为你造的轮子可能还没现成的好。与其自己打造,不如加入到现成的开源项目中,把原来的轮子打造的更好。

什么是开源模式?

在《大教堂和集市》这本书非常详细的解释了大教堂和集市两种开发模式。大教堂就是公司聘请员工,有规划的开发软件。集市则是开源的方式,大家因为兴趣或者因为某个问题而驱动去开发。我认为这本书想要表达的一个核心观点就是,大教堂模式开发的软件问题多,修复慢,不如开源出来,让所有人一起来完善软件。而公司则不再通过软件的“销售价值”来赚钱,可以通过对其他公司使用软件服务来赚钱。

Linux是第一个通过开源模式被开发出来的非常复杂的操作系统。在当时是不可思议的。就像是一群“乌合之众”造出来世界上最精致的工具一样,让人难以置信。从此,开源模式开始流行。我们现在使用的很多中间件、软件工具都是开源的。

大家最近熟知的可能就是区块链,区块链的底层也都是开源的。这是怎么做到的呢?要知道,在《人月神话》这本书里,有一个Brooks定律,讲的是项目的复杂度和沟通成本与开发人数的平方成正比。对于软件开发来说,参与研发的人数越多,项目需要完成的时间越长,出错的可能性也就越大。那linux系统是怎么做出来的?我的理解是,因为开源的规则本身就把任务切分为一个个非常小的模块,每个开发人员参与研发都遵循特定的编码规范。这样,只针对这一个模块是不需要进行大量沟通的。复杂度就不会增加。而且,每个提交的修改版本,都会有人专门审核,这样就建立了一种自我纠错的能力。

为什么应该参与开源项目?

1. 可以提高编码能力

开源项目是能力的一种体现,你的编码风格,你的逻辑思路都可以从代码中看出来,读懂一个人的代码也就读懂了这个人。我曾经推荐过一些程序员拿开源项目来学习,毕竟在工作中用到了,看看它底层源码实现,对使用也很有好处。有时候因为业务需要,你还不得不修改底层代码。这时候可以尝试去提交PR,就算被拒了也没关系,千万别因此而沮丧。这是一个非常好的学习机会。而且,你很有可能会收到到某个领域大牛给你的反馈。

有时候并不是说你的代码不能解决问题,而是因为你写得不够简单,高效。但只要你持续地看和写,持续地提交,总有一天你会收到开源项目管理者的反馈。当有一天,你提交的代码,在开源项目里运行时,你就已经是一个非常厉害的程序员了。如果你真的想精进自己的编码能力,那么可以选择加入一个开源社区。

当然如果刚刚入行的程序员,可能看不太懂开源的代码。那么可以选择去读你们团队里最厉害的那个人的代码。不懂的就当面请教。这种学习方法既能了解业务,还能学习编码思维。这个方法并不难,适用于各个行业,亲测有效!

2. 参与开源能让人更幸福

我从很多书里看到过类似的观点,幸福来源于贡献感。你帮助了他人,就能获得幸福。注意是贡献感,只要自己认为自己有贡献,那就能获得幸福感。我自己非常认可这个观念,只要能想到可以帮助到其他人,工作动力都很足。

很多参与开源的程序员大多不是为了利益性。我曾经听到一个案例:讲的是一家做开源的公司,因为不怎么赚钱,决定放弃项目。但下面的员工不愿意,说不给工资也要坚持下去。我相信驱动员工坚持的一定是幸福感。

上面是我认为最重要的两点。其实,不仅仅是个人,对企业来说参与共建开源社区也是很有好处的。现在的软件大部分都依赖于一些开源项目,如果企业能参与其中,首先可以接触到更多这方面的人才,这对招聘是会起到很多积极作用的。其次,降低自研成本,公司的技术难点只能靠公司人员,而开源软件的问题,是有一群大佬在解决。

如何参与开源项目?

1. 从修复bug开始

既然工作中你已经修复了这个bug,那么顺带提交一下PR就是一个顺其自然的事情了。

2. 写一个简单的实例

既然你用了开源项目,那么案例其实也是现成的。其实参与开源很简单,关键是先从最简单的事情做起。

开源项目的现状

关于开源的现状,我推荐大家下载《中国开源发展研究分析2022》的报告,里面有非常详细的讲解。

下载地址:https://sourl.co/hUUTD4

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 石云升 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是开源模式?
  • 为什么应该参与开源项目?
    • 1. 可以提高编码能力
      • 2. 参与开源能让人更幸福
      • 如何参与开源项目?
        • 1. 从修复bug开始
          • 2. 写一个简单的实例
          相关产品与服务
          区块链
          云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档