问题

为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习?

回答
这个问题很有意思,也很值得深入探讨。让咱们聊聊为啥这么多写代码的,愿意把辛辛苦苦敲出来的东西,就这么大方地放网上,还让人随便拿去用,随便学,还不收钱。这背后可不只是“助人为乐”那么简单,里头门道多着呢。

1. “代码即学问,分享即进步”的信仰

首先,得承认,很多程序员骨子里就有一种“代码就是学问”的信念。就像古时候的学者喜欢把自己的研究成果写成书,公开给同行交流一样,程序员也觉得自己的代码是一种思考方式、一种解决问题的方法论。把这些东西开源,就是把自己的知识和经验传播出去,让更多人看到,学到,甚至在此基础上做得更好。

想象一下,你花了好多心思写了一个精巧的算法,解决了一个棘手的 bug。如果你把它藏着掖着,只有你自己能用。但如果你把它开源到GitHub,可能在全球某个角落,有人正被同样的问题困扰,看到你的代码,就像发现新大陆一样,豁然开朗。这种“启发了别人”的感觉,对很多程序员来说,是一种无形的成就感,比什么都强。

而且,开源这个过程本身也是一个学习和进步的催化剂。你把代码丢上去,有人会发现你代码里的bug,给你提建议,甚至直接给你提交修改(Pull Request)。这些反馈,比你自己一个人闭门造车效率高太多了。别人用你的代码,还能发现你没想到的用法,给你带来新的灵感。这就像给你组建了一个免费的、遍布全球的测试和开发团队,何乐而不为?

2. “社区驱动”的强大力量

GitHub之所以能成为开源的圣地,很大程度上是因为它建立了一个强大的、活跃的社区。在这个社区里,大家互相帮助,共同进步。

同行认可与声望建立: 在社区里,你的代码质量、贡献大小,都会被大家看在眼里。一个被广泛使用的开源项目,会让开发者在业内获得极高的声望和认可。这对于职业发展来说,是相当宝贵的“软实力”。很多公司招聘时,都会看候选人的GitHub主页,了解他们实际的项目经验和技术水平。
协作与共同创造: 开源项目往往不是一个人能完成的。很多成功的开源项目,背后都有成百上千个开发者贡献力量。大家基于共同的目标,一起讨论、一起编码、一起维护。这种“众人拾柴火焰高”的感觉,能够驱动出非常强大和健壮的项目。
解决共同的痛点: 很多开源项目,是为了解决某个领域普遍存在的难题而诞生的。比如Linux操作系统,是为了给普通用户提供一个免费、强大的操作系统;比如Python的各种库,是为了简化数据分析、机器学习等任务。当一个痛点是很多人都遇到的,那么集合大家的力量去解决它,效率和效果都会非常显著。

3. “实践出真知”的自我提升

对于很多程序员来说,GitHub上的开源项目不仅仅是分享,更是一个巨大的“练兵场”。

学习最佳实践: 看看那些高质量的开源项目是怎么写的,它们的架构是怎么设计的,它们是怎么处理错误和异常的。这是一种非常直接的学习“最佳实践”的方式。你可以在这些项目中看到业界顶尖的开发者是如何思考和编码的。
熟悉新技术和工具: 很多时候,新技术和新工具最先在开源社区得到应用和推广。通过参与或研究开源项目,你可以最快地接触到前沿的技术,并学习如何使用它们。
构建个人作品集: 将自己的项目开源,就像在为自己打造一份“技术简历”。这些项目是你能力的直接证明,比任何空泛的描述都更有说服力。

4. “回报的另一种形式”——职业发展与机会

上面说的声望和认可,最终都会转化为实际的职业发展机会。

获得工作机会: 许多公司会主动去GitHub上寻找有潜力的开发者,或者寻找能够维护和改进他们正在使用的开源技术的工程师。一个活跃在开源社区、贡献出优秀项目的开发者,自然更容易受到关注。
创业与商业化: 有些开源项目,虽然最初是免费分享的,但随着项目的发展和影响力扩大,可能会催生出商业模式。比如提供基于开源软件的付费支持、增值服务,或者将开源项目作为公司核心技术的一部分。
建立个人品牌: 持续地在GitHub上贡献高质量的代码,可以帮助开发者建立起个人的技术品牌。这使得他们在技术圈内拥有更高的知名度,更容易被同行认可,也更容易获得各种合作和演讲机会。

5. “技术自由”的哲学理念

还有一部分程序员,他们对“技术自由”有着更深的理解和追求。他们认为,技术不应该被少数人垄断,而应该开放和自由地流传,才能真正推动人类社会的进步。开源就是实现这种技术自由最有效的方式。

反对垄断与封闭: 很多人对闭源软件的“黑箱”操作感到不适。开源允许人们查看、修改和分发代码,这提供了一种透明和可控的解决方案,也能够防止某些公司利用技术进行不公平的垄断。
赋能他人: 通过开源,可以为那些资源有限但有才华的个人和团队提供强大的技术工具,让他们也能参与到技术创新和发展中来,不被商业壁垒所阻碍。

总结一下,程序员们之所以愿意在GitHub上开源自己的成果,其实是多种动机交织在一起的结果:

知识分享与学习进步的内在驱动。
社区协作与同行认可的外部激励。
个人技术能力提升和职业发展的战略考量。
对技术自由和开放精神的哲学追求。

这是一种“先付出,再获得”的良性循环。通过分享,他们不仅帮助了别人,更重要的是,他们提升了自己,获得了认可,甚至打开了新的职业大门。所以,与其说他们是“免费”地给予,不如说他们是在进行一种高回报的“投资”,只不过这种回报,很多时候是无形的、长期的,并且超越了单纯的金钱利益。

网友意见

user avatar

这个其实是很奇特的。

这或许是互联网免费策略的一种。

看个网站如果要花钱,你猜多少人会来看?

所以,如果这是一个信息爆炸(过度)时代,信息就是广告,开源也就很好理解了。

当年互联网免费的时候,谁想到广告那么值钱?游戏那么值钱?流量那么值钱?


个人觉得,谁再github 上做一个广告的新模式,或许就是个超级机会。

user avatar

因为什么:

明明很多项目闭源的话可以赚很多很多钱。

纯粹就是YY……


如果我的开源项目闭源可以赚很多很多钱的话,它压根儿就不会出现在Github上……

相信我像我这样的人并不是少数,而是绝大多数……


另外,音乐是分享给大家免费听的,听音乐本身并不需要钱,听电台就是。你想听什么就听什么,还可以用各种音效工具给增强你的视听享受,或者拿来招徕顾客,为你的作品烘托情绪,这些是要钱的……

书本也是分享给大家免费看的,去图书馆就是,借书收取的费用其实只是维持图书馆的正常运转和防止你无限期的独占图书资源而已……

你在图书馆里面看书是不要钱的……



至于如何把开源精神应用到别的领域,我觉得首先要分清楚开源精神和开源运动……


开源运动这个东西就和众包、众筹或者维基差不多的东西,就是每个人都参与进来创造社会福利,最终所有人都可以从中受益。

而开源精神,说白了就是认为开放比封闭能够更大化社会总福利并为之付诸行动的精神而已。

user avatar

从2008年4月10日正式上线到今天,GitHub已经完成了它的第一个十年,正式进入下一个十年。Chris DiBona(Google的开源代码经理)认为“Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。

来一句我们程序员们接地气的话:分享是一种快乐!



既然这里都谈到分享了,小慕再不拿出点干货就说不过去了!


抛开“代码闭源是否就能赚很多钱”这个话题先不谈,我们直接总结一下程序员愿意在GitHub公开自己的源代码的几点主要原因:


1、通过代码的展示,提升自己的知名度


先来讲一个闻名全球的案例吧。有一家很著名的公司叫37signals,是一间非常小的公司,员工很少,但是在业内却非常出名。它的出名,很大程度上得益于一次机缘:员工大卫·海纳梅尔·韩森在工作的时候,用Ruby写了一个划时代的web快速开发框架——Ruby on Rails,其革命性的设计理念,大大的提升了WEB网站的开发效率。37signals选择了将此项目以开源的方式发布,在业内引发了轰动效应。


随着Ruby on Rails的快速蹿红,作为ROR诞生的产房——37signals公司也进入了大众的视线,并于2008年被《连线》评为十大最值得关注的创业公司,继而该公司的几款产品都取得了非常好的销售业绩。在37signals出版的畅销书《Rework》里,有一段这样的文字:最好的大厨都乐于在公共频道上教授自己的厨艺,这不仅无损大厨的商业利益,反而大大增加了大厨的知名度,对大厨来说这是非常棒的举措。



我们处在一个技术更新迭代越来越快的行业里,最可怕的并不是你高超的技术外泄,而是没有足够多的人透过你的技术了解你,拼技术的同时还要拼知名度,才能双丰收。


以目前的GitHub而言,它不只是一个简单的代码仓库,更是程序员的社交平台和炫技舞台。在这个平台上展示自己的代码,可以让程序员们更快地在行业圈子内提升自己的知名度。当然,如果能够像大卫·海纳梅尔·韩森那样足够幸运的话,还可以在业内创造一个属于自己的传奇。


2、展示作品,获得好的工作机会


展示自己的作品,是获取优秀工作机会的最佳手段之一。在“Talk is cheap,show me the code!”的程序员行业里,尤为如此。



GitHub同时为程序员与企业双方提供了非常便利的平台。


作为企业雇主,可以通过这个平台了解应聘者的作品,评估其技术实力,判断是否符合公司的要求。这种把一个程序员在GitHub的表现视为人才评估标准的操作,在程序员面试中越来越普遍。


作为程序员,GitHub上的关注数、星数、fork数量等数据,在一定程度上证明了你的编程能力是否出色,你的技术理念是否为更多的人所理解、赞同。越是在GitHub上受欢迎的程序员,越会被优秀的雇主青睐。


因此,这种现象,也进一步激励了程序员在GitHub上努力展示自己,使得开源氛围更加浓厚。


3、开源代码,利己利人


Adobe公布了Photoshop 1.0的源代码,这些代码对Adobe已经没有太多价值了,不如公开出来,供其他程序员们观瞻学习,同时还能为自己带来一点新闻性和关注度;Linux之父林纳斯为了一个非常“自私”的目的——能够有一个适合自用的免费操作系统,便把Linux的内核开源了,让全世界的感兴趣的人一起来对Linux进行维护。


所有的程序员在学习编程、解决BUG、交流心得的过程中,无可避免的会用到别人的劳动成果,同时也会帮别人去解决问题,这就形成了一个利己利人的生态。在这个生态中,所有的程序员都无需重复的造轮子,大家在一个开源共享的氛围中付出,在付出中享用所有的产出成果,在享用成果中不断的再创造,从而形成一个良性循环的利己利人生态,所有人都能在这个生态中收益。



4、练习技能的同时结交业内朋友


前面我们说过,GitHub可以是程序员的社交平台和炫技舞台。在这里,会有众多的技术大牛出没。也许平时很难有机会与他们接触,但通过GitHub这个平台,自己的作品将有可能得到技术大牛的点评及建议,帮助自己快速提升技能;同时,还可以与其他程序员交流BUG解决经经验以及需求实现等专业问题,从而产生联系,建立起属于程序员的社交圈。




在程序员的世界里炫技简单粗暴,每当他们写出自认为很牛的程序,他们就迫切需要一个渠道来展示自己的才华,博客、论坛都可以成为他们的阵地,而Github等开源论坛则渐渐成为主战场。在程序员看来只有优秀的完整的代码才是有灵魂的,不懂程序的人都是麻瓜,这可能也是GitHub如此成功的一个重要原因。对于程序员极客来说,代码比言语更能让对方产生共鸣。


5、如果你愿意,也能赚一点钱


吹个牛,虽说我们程序员不差钱(正确读音:qian er),但是有钱可收,总不是一件坏事。如果是非常好的开源项目,在GitHub能引来相当好的流量,并且是与项目相关的精准流量,所以你懂的,适当做些广告是可以额外带来一些收入的。


(图片截自GitHub,中国最火的开源项目VUE.js页面,就展示了不少赞助商的内容。)


所以,在GitHub上展示自己的作品,已经是一个优秀程序员的标准操作,这或许能带来很多比赚钱更重要的东西。当然关乎项目发展最核心、最关键的技术和机密,应该还是很少会有人在GitHub上进行展示的。


除了GitHub,现在程序员也可以去慕课网的“手记”栏目分享你的编码心得。“手记”目前正在招募认证作者,申请通过后可获得专项福利:


  • 专属身份展示、文章免审特权、全平台曝光等8项专属福利
  • 有机会被推荐到“推荐作者”模块展现,提高个人曝光


  • 认证作者文章数量、质量均达到网站要求,可以兑换精美好礼
认证作者连续3个月文章数量、质量均达到网站要求,可以兑换以上奖品(任选其一)


认证作者连续6个月文章数量、质量均达到网站要求,可以兑换以上奖品(任选其一)


认证作者连续9个月文章数量、质量均达到网站要求,可以兑换以上奖品(任选其一)


认证作者连续12个月文章数量、质量均达到网站要求,可以兑换以上奖品(任选其一)


至于题主所说的开源精神为什么没有被应用到其他领域,比如音乐、文学,更多的原因可能在于大家对于艺术与文学的审美标准不同而难以保证最后的一致性,而代码却不一样,代码具有确定性、标准化和通用性,这是开源精神得以应用的必要前提。



推荐链接:

如何学习区块链技术?

Android 开发时你遇到过什么相见恨晚的工具或网站?

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有