拥抱开源的程序员,凭什么拿到更高的薪水?
作者 丝瓜2018-07-10阅读 1549

上个月微软重金收购 GitHub 的消息宣布,在程序员群体里炸开了锅,开源技术一时成为技术搜索排行的热门讨论话题。 相比于以往,开源技术近年来愈发流行。在此趋势下,开源经验能为程序员的职业发展带来哪些筹码?国内的互联网企业如何看待开源技术?这些问题都值得深思。


程序员为什么乐于分享代码?

下班后,乘着地铁穿越了大半个上海的 Daris 带着一身疲倦打开了家门。一番洗漱之后,Daris 看了一眼手表,已经是北京时间周日凌晨,假期终于到了。

作为一个程序员,Daris 早已习惯了 996 的工作作息。在这一周一度的放松时间,他的室友们一个在开黑,一个在看电影,享受着工作日的暴风雨前难得的宁静。

然而,Daris 却被一种神秘的力量召唤,「叮」的一声打开了电脑,迅速登上了自己的GitHub。他打算把今天工作中想到的一段很棒的代码共享到社区。一阵操作之后,Daris 没有停下,他又浏览了一批更新的项目,运行了一些看着还不错的新代码。

这是 Daris 工作以后一直在坚持的事。早在学生时代,他就已经开始在 GitHub 上学习和贡献开源项目,也舍不得放弃这个让他受益匪浅的习惯。但本职工作并不轻松,有限的精力让 Daris 不得不经常在工作和开源之间做取舍。

不少候选人告诉100offer,他们和身边的小伙伴其实都有和 Daris 类似的情况,没有足够的时间和精力投入到开源项目中,因此绝大多数人也并不是项目发起者。但他们基本上都曾为某些项目贡献过自己的一行代码。

100offer 通过统计也了解到,程序员对开源项目的参与度非常广泛,在 100offer 的候选人中,主动展示 GitHub 账号的占了 30%。

从开源项目参与的广泛度来看,程序员们并不拒绝分享,甚至是乐于去贡献代码。

刚工作两年的小白目前正在北京的一家创业公司做大数据分析,日常工作繁忙的他时常不忘去开源社区兜兜转转,学习最新的技术或是贡献一些代码。谈起为什么乐于去贡献开源代码,他特别强调了贡献的精神。小白说:「身为一个程序员,最值得骄傲的事情就是自己写的代码被别人用到而带来的成就感。」他认为,开源精神其实也是极客精神的一种体现。

在 GitHub 获得众多小星星的死月在大搜车工作的时候曾用到阿里的一些服务,其中有一个服务没有 Node.js 的 SDK,于是他就做了一个 SDK 并开源出来。问起初衷,死月说:「当时觉得肯定也有人会有这样的需求,不希望有人因为这个问题放弃用自己熟悉的语言去做这个项目。」强烈的同理心让死月把自己好的想法和非利益相关的产出输送给社区共享,造福更多同行。

程序员在此过程中收获的不止是精神上的满足感,在开源社区贡献代码的同时,这个贡献者在社区中的声望也在不断提升。就像打怪升级一样,当你从默默无名的青铜努力攀升到王者,一路上你会与越来越多的人合作,被更多的人知晓,你自身的影响力也就不断地扩大。

死月告诉 100offer,因为在社区做的一些贡献,他被提名为 Node.js 项目的 Core Collaborator,近日还出版了一本名为《Node.js:来一打 C++ 扩展》的书。这种在个人名誉上的收获,也是程序员们乐于去参与其中的原因之一。

从更实质化的角度来看,参与到开源项目中,对程序员们的技术提升也有帮助。为一个项目贡献代码的前提必然是这个程序员本身对现有的项目代码有一个全面的通读,潜移默化之中也就自然对其内部有了更深的了解。根据 100offer 的采访结果,一个优质开源项目的发起人,往往是互联网和 IT 界中站在「食物链」顶端的技术大牛。学习这些大牛的开源项目代码,也是一种不断精进技术、提升「程序员的自我修养」的有效途径。除此之外,程序员还可以把自己所参与过的开源项目经历写入简历,为自己在求职市场上增加筹码。


国内互联网公司的「开源乱象」

在国外的开源技术愈发火热的情况下,国内的互联网公司也纷纷跟上了开源的潮流,以 BAT 为代表的大厂都有自己的开源项目。但是国内互联网企业们对开源技术的真实态度令人寻味:是真正地为了技术发展而开源,还是只是标榜自我的「面子工程」?

看似危言耸听,但的确存在一部分持有第二种态度的国内互联网大公司。他们为了提高自己在业界的声望,也会象征性地贡献一些开源项目,但后续的投入和维护则捉襟见肘。还有一些公司则是直接将某些开源项目封装之后,简单粗暴地将其闭源,作为自己的产品发布,比如某翻墙软件,这种行为十分令业界诟病。


1、开源技术在企业中的发展为何如此艰难?


一方面,一个开源项目的建立往往需要公司大量的精力,而一般的公司对此投入较少。比如程序员小白就在采访中提到,他们公司涉及到开源的部分,也只不过是用一些成熟的开源项目来搭技术的框架,然后再往其中添加一些针对业务的开发。想要公司自身发起一些项目,对于国内的许多公司而言要求过高。

另一方面,许多程序员认为开源项目的商业化道路比较难,在初始阶段就打算将一个开源项目做成产品或以此成立公司的近乎不存在,大部分的开源项目盈利都是通过后续服务收费实现的,比如 Docker。

除此之外,与闭源的项目相比,开源项目的利益导向会稍显微弱。死月也提到,闭源项目是以公司业务为导向的,为公司的需求而添加功能;开源项目则更具创造力,偏向以技术为导向,针对某个特定功能不一定能短期内实现,但在获得公司赞助的条件下能将需求的优先级提高,在最短时间内满足。因此,指向性更强的闭源项目在以往会更受企业的欢迎。


2、「中国化」问题


其实,开源项目商业化的难题在全球范围内都存在,「中国特色」却让这个问题更加复杂。

国内的互联网发展历史从 1992 年至今还未满 30 年,发展速度却令人咂舌,速度的背后隐藏的是不规范。盗版的横行,让国人向来缺乏版权意识。如果一个开源项目靠服务赚钱,在网上可能会出现各种山寨服务,或者破解工具。这种付费意识的落后,成为开源项目难以商业化的「中国化」原因之一。

一直以来,多数的中国企业对开源社区的索取大于回馈,不仅是中国公司的发起项目数量远小于世界其他地区的同量级公司,而且这些公司在一些项目上所做的改进极少有反馈回开源社区。

技术不断在进步,代码不停在更新。抛去道德伦理问题,当一个产品以开源项目为基础而全然不顾回馈之事,也就会与原项目越走越远,最终与社区分离。这种以公司少数的技术智慧与全球的代码相抵抗的事,注定要走向失败。


3、顺应潮流:技术开源在国内的重要性逐渐提升


在国内还没有把开源技术纳入发展计划的现在,以微软为首的美国科技公司开始尝试把开源作为未来技术发展战略的方式。此次微软对 GitHub 进行收购就是典型的代表之一。

相较于已经走在商业模式探索前沿的科技公司,国内这些开源社区的发展还停留在被开源方式渗入技术生态的「原始阶段」。目前在大搜车担任前端团队负责人,开源技术爱好者芋头君给 100offer 举了一个例子:许多程序员在以前会使用开源的编辑器而不用微软的,但是后来微软把编辑器开源之后,大家就会发现还是微软的东西好用,并且是开源的,从而大部分人都会选择用微软的编辑器。

在不可逆的开源大势下,国内的公司虽然技术开源条件并不成熟,但也不得不走上开源之路,最为典型的就是近期腾讯将自己研发的 TARS 和 Tseer 项目贡献给 Linux 基金会,以及阿里将一些开源项目贡献给其它创业公司,让对方继续孵化。

这些行动都表明,国内公司对开源的重视程度和投入正在逐渐增加。

「一个IT公司有没有勇气拥抱开源,是一个公司是否对自己的技术有足够自信的一个表现。」芋头君这样总结道。在国际潮流大势和程序员技术选择的双层驱动下,国内公司也会逐步打开怀抱,拥抱开源技术。当国内的公司对开源项目的重视程度提升到战略级高度时,从资金到人力的投入自然会随之增长。有了充分的投入作为支持,开源的发展也能进入新的阶段。


开源经验能否在求职中获得优势?

对程序员自身而言,最直接的求职优势,就是在自己的简历上展示 GitHub 等开源社区的账户,能够吸引到一些公司的目光,从而获得更多的机会。根据 Linux 基金会和 Dice 网站 2017 年发布的开源招聘调查报告,开源领域的专业人士中高达 86% 的人表示,加入开源领域使自己的职业发展得到了提升。小白最近通过 100offer 面试了两家杭州的公司,他表示正是自己在 GitHub 上参加的一些不错的项目,让 HR 向他伸出了橄榄枝。

从用人单位来说,Linux 的调查报告中指出,相比其他类型的程序员,67% 的管理人员更希望雇佣到在开源技术上有一技之长的程序员;42% 的管理人员表示,他们正在增加对开源技术的使用,也因此针对熟悉开源技术的程序员加大了招聘需求;甚至有 30% 的管理者表示,开源技术正在成为公司业务的核心技术支持。

在这种情况下,用人单位如果在一份简历上看到附有开源项目的链接,绝对会是一个加分项。「Talk is cheap, show me the code」,让面试官在筛选简历时便能知道应聘者的代码能力。参与过招聘的死月和芋头君都认为,能在简历中附上链接的,基本代表着候选人对开源项目的参与度很活跃,并且其参与项目比较优质;否则,把没有亮点的开源经历放在简历中,完全是自爆缺陷,反而会成为减分项。

在团队建设方面,芋头君指出,在团队领导者有丰富的开源经验情况下,他在业内的影响力和号召力相比其他人会更大,因此会有更多的优秀人才「慕名而来」。

从团队工作来看,开源的经验对工作方式也会有影响。在参与开源项目过程中,程序员需要保持和他人的合作,为了共同的目标而贡献自己的想法和代码,而社区的开放性就必然要求参与者严格遵守规范。所以,拥有开源经验程序员的团队,往往会有更为强烈的合作精神以及更为规范的工作方式。

薪资水平上,100offer 曾在《跳槽第一步:2018 年四大热门技术岗位跳槽指南》电子书中,对有和没有 GitHub 账号的 Java 工程师和前端工程师跳槽前后的薪资做了对比:






无论是 Java 工程师还是前端工程师,有 GitHub 的程序员在跳槽前后的薪资均高于没有 GitHub 的程序员。程序员经常和复杂业务打交道,在 GitHub 上参与项目和分享代码有利于他们在踩坑之后进行积累,从而避免重复性的工作。这种职业素养训练的积累,最后会作为筹码直接体现在薪资水平上。


100offer说


开源以一种共享的模式打破了技术封闭的牢笼,程序员在开源社区中能更多地接触到核心的技术,与更大范围内的同行合作。在此之中,程序员获得的不仅是精神上的满足,机遇与声望也随之而来。经验积累和个人能力打磨后,程序员们能在日常工作中更高效地处理项目,在求职中赢得加分,争取到更高的薪酬,这都是开源社区回馈给贡献者的礼物。

虽然国内互联网公司在开源项目的建设上存在诸多乱象,但当市场日趋成熟与规范时,我们也欣喜地看到国内企业正在逐渐提高对开源的重视程度。100offer 乐于见证有越来越多热衷于技术的程序员和科技企业,参与到拥抱开源的大潮中来。



Blank
丝瓜
码字中。。
评论
0条评论