10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

开源社区为职业发展带来机会,助力开发者实现“加薪”梦想

作者:Nithya Ruff

  • 2023-09-28
    北京
  • 本文字数:3723 字

    阅读完需:约 12 分钟

大小:1.97M时长:11:28
开源社区为职业发展带来机会,助力开发者实现“加薪”梦想

开源的作用

软件开发过去主要在公司或组织内进行,与外部的合作很少。只有存在合同关系的情况下,才会与合作伙伴及其他人合作。开发人员很少能够分享或讨论他们正在进行的工作。你需要加入一家公司并按照他们的指示进行编码。在整个行业中,过往的工作几乎没有得到利用,工作的重复性很高。所有这些在 20 世纪 90 年代的开源软件运动开始后发生了改变。

 

在过去的 30 年里,世界变得互联互通而且越来越数字化。越来越多的企业和组织是建立在软件上,尤其是开源软件。行业研究显示,超过 90%的公司使用开源软件,我们的软件技术栈中有 60-90%是开源的。每一天我们都在使用开源软件。

 

开源也是我们进行现代软件开发的方式,我们将下载的开源库、框架和其他代码组合在一起,创建新的应用程序或功能。这就是为什么每个开发人员和高级角色都需要了解什么是开源以及它是如何工作的原因。

 

开源项目中的高级角色

许多科技公司的高级员工角色,如首席工程师或杰出工程师,可以在开源项目中工作。我在亚马逊的团队中有三位首席工程师,他们在开源战略方面处理公司范围内的激动人心的挑战。他们指导、影响并对整个组织的开发人员产生很大影响。许多人对人员管理没有兴趣,但希望在公司中产生广泛影响并解决重大问题。

 

在科技行业,一些高级员工角色可以管理一些专家团队,这些团队是特定技术主题的首选团队。我之前的公司的高级员工角色几乎都是个体贡献者(IC)角色。但现在时不时地,你也会看见带领小团队的高级员工角色。这使得高级领导者可以将他们作为技术专家的工作与人员管理角色相结合。这些小团队通常是专家团队,他们是该技术主题的首选人员,并可让个体贡献者将他们的知识扩展到整个公司。

 

我作为康卡斯特公司的工程研究员是这样的角色。我可以领导一个小团队,同时还有时间从事个人贡献工作,比如撰写论文和在会议上演讲。这是可能的,因为我领导的团队,即开源项目办公室(OSPO),是一个小型专家团队,为公司各个部门的开发人员和业务负责人提供咨询。这使我有时间从事个人工作,如战略规划、撰写论文或在活动中演讲。

 

通过灵活地选择只做个人贡献者,一个人可以将管理和个人贡献角色结合起来,为职业生涯增加更多的灵活性。即使作为高级个人贡献者,一位高级工程师也需要具备人际交往技巧,如指导他人、传达观点、谈判和影响力。

 

高级开发者为开源项目做贡献时所面临的挑战

首要的挑战是在工作之外腾出时间为开源项目做贡献。很少有机构会给你时间来为与你日常工作无关的开源项目做贡献。你可能需要在晚上和周末找到时间。特别是女性,她们通常有照顾他人的责任,很难找到额外的时间。

 

你需要说服你的组织,为什么应该允许你或你的团队花费一部分时间回馈开源社区。对一个组织来说,这些好处通常是长期的,包括信任和影响项目的能力等软性好处。因为组织都关注硬性、可量化的底线影响,所以管理者不愿意为团队腾出时间来提交补丁或志愿服务。

 

高级技术人员,比如那些高级职位的角色,拥有组织的信任,并且可以展示投入开源的时间如何有助于维持项目,尤其是如果它是公司路线图的关键依赖的时候。一位与我密切合作的首席工程师通常了解与开源项目密切合作的回报。他们向业务提供建议,指导我们的开发人员如何与开源社区项目建立关系,以便支持我们的客户。当我们在公司中对云原生开源项目建立起更多的专业知识时,事情变得非常有帮助。高级领导者可以借用他们的信誉和知识,帮助管理者投资对组织至关重要的开源项目。

 

高级技术人员或高级领导者还可以在开源活动中发表演讲,并在公司参与的社区中展示自己。公司内部会发生的困难讨论之一是是否应该开源公司开发的技术。公司重视对新想法进行专利保护并建立专利组合。当组织将他们的技术开源时,担心会让竞争对手得到机会,而不得不放弃他们的知识产权。然而,当你仔细研究这项技术时,你会意识到并非所有内容都需要保密。开源可能会使整个行业团结在你所创造的标准化方法周围。它可能使你创建出一个更具可扩展性的项目,具有新的用例或对新硬件的支持。特别是在该特定领域,高级技术人员可以在帮助组织思考为何要这样做方面发挥关键作用。

 

有些开源社区可能不太友好,很难参与进去。通常是因为他们没有太多时间来帮助新加入者。通过观察邮件列表,了解社区需要帮助的地方,你可以通过满足他们的需求来赢得他们的信任。让自己能提供帮助是打入困难社区的最佳方式。有时候,你可能不会成功,但需要继续前进。通过付出时间和代码贡献来赢得你的位置,这件事情需要坚持不懈。

 

开源项目和代码可能很复杂,没有文档或提交信息。这可能会让人难以理解并做出贡献。如果你坚持下去并付出时间,你就会有回报。

 

我的开源旅程

很多年前,我就成为了一名开发者,并对其他的技术角色充满好奇。这促使我去探索产品管理、市场营销和战略,在我的不同角色中广泛涉猎。

 

通过广泛涉猎而非深入研究,我能更有效地参与技术战略,并理解我们的创新和将产品和技术推向市场的不同方面。我在上世纪 90 年代末开始参与开源,这让我在公司中扮演了许多角色,从管理基于开源的产品到为财富 50 强公司运营开源办公室。

 

这些角色一点都不无聊,因为开源涉及法律、技术和社交等多个维度,这让我能够充分探索创建新技术的各个方面。我很幸运能够结识一些优秀的人,并参与一些伟大的社群。由于开源跨越组织边界,我经常与不同公司和来自非营利基金会的人合作。我有机会参加各种会议和会谈,游历世界各地。这是一段又有回报又令人兴奋的旅程。

 

参与开源贡献的软件工程师所获收益

了解开源的社会技术方式对职业发展有许多好处。参与贡献的人学会了如何沟通自己的工作,学会了与全球的人合作,并了解如何在开源项目和社区中运作。这些技能在高级及以上级别员工尤为重要,因为你必须发展自己的影响力和沟通技巧。

 

同时,确保一个项目生存下去并为用户提供服务,也给人一种使命感,尤其是如果这个领域是你热衷的。

 

许多知名的贡献者和维护者备受依赖他们项目的公司的追捧,这些公司需要他们的专业知识。维护者甚至可以在公司工作的同时继续做他们自己的工作。

 

我非常感激能够发现和参与开源项目,以及我所属于的伟大的全球社区的成员们。

 

开源对组织的好处

各个组织都在使用开源软件,并且需要雇佣懂得如何使用开源软件和参与开源社区的人员。拥有开源专家可以帮助组织管理对开源项目的依赖关系。使用开源就好像组织拥有了外部的开发团队,需要与他们密切合作。

 

通过参与开源社区和项目,公司还能够支持那些急需资源或资金以继续运行的项目。作为组织,我们广泛使用开源软件。开源项目通常是由志愿者运营的,并且很难维持项目的运作。通过为项目提供财务支持或所需的工作,公司可以维持项目的发展,尤其是那些公司可能依赖的项目。

 

支持开源的组织在招聘、保留和培养技术人才方面更加成功。他们可以在开源项目中展示自己的工作,并展示他们正在进行创新工作。

 

最后,开源有助于公司更快地创新,并让他们小而专的团队集中在他们擅长的领域,同时依赖开源来处理无差异的领域。

 

如何将人们的才能运用到开源中

参与开源项目或社区的门槛很低。你不需要签订合同或加入一家公司。你可以在 GitHub 或 GitLab 上找到喜欢的语言或项目,加入邮件列表,并找到帮助项目的方法。

 

项目通常会列出需要帮助的内容和初学者问题。你可以修复一个 bug,提交一个问题,帮助编写文档或翻译,甚至宣传这个项目。通常,项目需要帮助审查用户提交的问题,决定如何解决这些问题,或者审查开发者提交的合并请求。

 

项目的维护者希望你能帮助他们,而不是给他们增加更多工作。在开源中,我们称这些需要帮助的任务为"砍柴和打水"。这些通常是基础性的任务,如管理项目——保持文档更新、回答问题等。这些工作可能不够吸引人,但非常必要。

 

根据 Tidelift对开源项目维护者的报告,41%的开源项目只有一个维护者,并且非常需要帮助。通常,这些项目被全球数千名开发人员使用。这些资源匮乏的项目需要额外的帮助,以支持全球用户。

 

在开源中所做的工作可以丰富你的晋升或绩效故事。使用开源的公司认可开发人员在开源中的工作。成为项目的贡献者(有权接受代码并加入项目)或担任领导角色往往被公司内部视为一项成就。

 

我对积极参与的开发人员和高级员工的建议

参加开源活动,比如 Linux 基金会的开源峰会Raleigh的开源大会。了解社区并参与其中。通常会有针对首次参会者和 101 课程的会议,它们帮助你参与其中。活动期间的走廊交流是与开源专家见面并了解他们的好方法。

 

看看你所在的组织是否有一个开源办公室(OSPO),以及你是否可以参与到办公室的工作中。查看你使用的项目及其社区,看看你如何贡献和支持它。

 

像首席工程师和高级研究员这样高级角色通常是成为开源办公室顾问和战略家的最佳选择。他们通常能够提出为什么公司应该开源某个项目的论点,并向业务上提供建议,以投资于员工和支持该项目。在我负责开源办公室的所有组织中,与高级技术人员的合作是制定正确策略和在开源方面投资的关键。

 

从小处着手,并持之以恒,这将是一次有回报的体验,有助于你的职业发展并带来个人满足感。我见过的最好的贡献指南之一是 GitHub 创建的开源指南


原文链接:

https://www.infoq.com/articles/developers-staff-plus-open-source/

2023-09-28 08:008178

评论

发布
暂无评论
发现更多内容

架构师训练营 1 期 -- 第十三周总结

曾彪彪

极客大学架构师训练营

PostgreSQL高可用:多主复制解决方案

PostgreSQLChina

数据库 postgresql 开源

《O2O实战:他们是如何利用互联网的》.pdf

田维常

互联网

985研究生熬夜23天吃透845页架构宝典 终收割腾讯Java岗offer!再也不用怀疑人生了

比伯

Java 编程 架构 面试 程序人生

架构师训练营第 13 周学习总结

netspecial

极客大学架构师训练营

等保数据备份和恢复关键点,这些你该知道!

华为云开发者联盟

数据 容灾 恢复

几款Java开发者必备常用的工具,准点下班不在话下

华为云开发者联盟

Java 工具 开发

从面试角度分析LinkedList源码

Java旅途

Java List 集合 linkedlist

90分钟10个手写案例,从源码底层给你讲解7种线程池创建方式

996小迁

Java 源码 架构 资料 笔记

LeetCode题解:127. 单词接龙,双向BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

建议收藏,mybatis插件原理详解

田维常

mybatis

干货丨如何使用Redash连接DolphinDB数据源

DolphinDB

数据处理 时序数据库 DolphinDB 数据库开发 redash

OpenKruise v0.7.0 版本发布:新增周期任务分发控制器

阿里巴巴云原生

阿里云 容器 开发者 运维 云原生

flink 使用curl,通过RESTful api,上传和删除jar包

Geek_de9857

flink RESTful curl 上传jar 删除jar

架构师训练营第 1 期第 13 周作业

业哥

盘点2020 | 一个三线程序员的2020年,不卑不亢

沉默王二

程序员 盘点2020 沉默王二

扩招1W人,字节跳动内部公开12月份Java岗71道面试题

比伯

Java 编程 架构 面试 程序人生

程序员因重复记录日志撑爆ELK被辞退!

Java架构师迁哥

阿里华为等大厂如何处理数值精度/舍入/溢出问题

Java架构师迁哥

DAPP软件系统开发

系统开发

盘点2020|多线程的遥感大数据行业产品经历

老壳有点爽

大数据 盘点2020 InSAR

从阿里离职后人虚了,头也秃了,就剩这份Java性能优化的PDF了

Java架构追梦

Java 架构 面试 性能优化 并发

forsage以太坊矩阵系统软件开发|forsage以太坊矩阵APP开发

系统开发

智能微卡口监控系统搭建,智慧平安小区建设解决方案

t13823115967

智慧城市

Tufin联合Cisco,将网络安全自动化进行到底

Geek_448e23

网络安全 自动化管理 云安全

5张图搞懂Java引用拷贝、深拷贝、浅拷贝

bigsai

Java 浅拷贝和深拷贝

边缘计算和5G:我们从何而来?

VoltDB

云计算 大数据 5G 物联网 边缘计算

女朋友突然问我DNS是个啥....

乱敲代码

计算机网络 DNS DNS服务器

Mysql中,1=1和 1=1=1 和 -1=-1 和 -1=-1=-1 和 5=5 和 5=5=5 有什么区别

Geek_de9857

MySQL sql 返回值 1=1=1 -1=1=1

盘点2020 | 微服务架构下该如何技术选型呢?

xcbeyond

微服务 技术选型 盘点2020 选型原则

架构师 3 期 3 班 -week4- 作业

zbest

作业 week4

开源社区为职业发展带来机会,助力开发者实现“加薪”梦想_开源_InfoQ精选文章