我目前是一名学生(应用信息技术),我们用C#和Java进行大多数编程。我想知道作为开发人员,我如何才能通过开源赚钱。我知道有提供支持或提供服务的故事,但我不是sysadmin,我不喜欢sysadmin的工作。实际上,我很希望将来能使用一些C和C ++并进行一些低级开发。 ,以及如何?

编辑:仅指出启动我自己的开源项目不是必需的。

评论

阅读埃里克·雷蒙德(Eric Raymond)的书:大教堂和集市

向开源“提供支持/提供服务”不一定涉及sysadmin工作。例如,如果客户制作了一个小型代码mod,可能会发现一个开源应用几乎可以满足他们的需求,他们会雇用您来编写该代码mod。

为什么开发免费的开源程序的可能重复项? “为什么一切都必须与金钱有关?您如何看待维基百科?没有人付钱在维基百科上放置内容,但是围绕着最好的百科全书……可以说是金钱……”

每个人都提到,大多数OSS开发人员都不会因为自己的努力而获得报酬。这是一个出色的商业模式。试想一下,巨大的公司通过使用OSS节省了数十亿美元的许可费用。这些公司的高管必须每天早上捏自己,以确保他们没有做梦。他们以某种方式说服了一群人免费为他们工作。它与软件的配合效果非常好,他们现在将模型扩展到其他领域,包括新闻和摄影。发展OSS有点像宗教,这一次又一次提出了一大堆的大笨蛋

#1 楼

该答案总结了以下问题的许多答案,并提供了一些其他研究和意见。

开源:平衡利他主义并赚取工资
以开源为开发者来赚钱吗?

概述
开放源代码可以是可行的主要或辅助业务模型,无论是直接通过特定的项目工作,还是间接获得技能,经验和声誉,都可以成为开源的可行模型。可能还有其他动机。产生对他人有用的软件的满意度,“刮擦个人的痒”(根据埃里克·雷蒙德(Eric S. Raymond)所说,迈向任何一款好的开源软件的第一步)或哲学上的原因,通常基于免费软件,或者是Richard Stallman提倡的Copyleft方法,或者是BSD许可中较为宽松的方法。
通过Open Source赚钱的方法
1。由公司赞助
这可以通过多种方式进行。这可能是最罕见的情况。如果您是Linus Torvalds,Guido van Rossum,Theo de Raadt之类的大型开源项目的高级成员,那么您可能能够在获得大型公司(例如Google或IBM。尽管这种支持方式相对少见,但您不一定非要成为开源巨星才能获得这类资金。许多Linux内核开发人员部分或全部由Red Hat等公司提供资金。

为特定功能或扩展付费。一些公司提供赏金,以便在用于业务功能的开源软件中实现特定功能。通常不需要使该功能保持封闭源代码,因此将大量代码贡献给社区。这已被描述为开源开发的养蜂人模型。在某些情况下,需要其他功能来保持专有性,但是这些功能是基于开放源代码库的。在这两种情况下,开源专业知识对开发人员来说都是明显的优势。

您的日常工作代码可以开源。一个相关的案例是,您在日常工作过程中为公司编写的代码的某些方面可能是开源的,而不会损害公司。该代码可能基于也可能不基于现有的FOSS项目。一般有用的工具和库可能经常以这种方式发布,并且轶事证据表明,一旦成为志愿者驱动,这类项目通常就可以加速。为现有项目增值
个人或公司可以将自己定位为向现有开源项目增值的主要提供商。有很多通过打包,分层,组合或扩展现有项目来提供服务的公司的示例。它们大致分为两类。


支持。 Enthought通过打包针对科学库的定制Python发行版来增加价值。 Redhat和其他Linux发行版通过整理和测试许多不同的开源项目并提供易于使用的安装和升级机制来增加价值。这些公司以与许多专有提供商相同的方式出售支持服务。

免费增值模式。在这种模式下,该软件或服务的基本版本是免费的;额外的“高级”功能通常需要额外付费。 Sleepycat软件根据专有许可为Berkeley DB提供了额外的功能。 Cedega提供了Linux下Windows API的重新实现,以免费和专有代码的混合形式发布。该模型不必是开源的。适用于组织的Gmail是提供免费(如啤酒)和高级选项的服务的示例之一。

3。在双重许可模式下提供代码
一种强大的方法是在两个替代许可下提供软件,一个copyleft许可要求在分发软件的情况下将修改发布回社区,而商业许可则允许使用该软件无开源限制。这种方法已被Qt和Open Office等大型项目以及一次性的小型项目成功应用。
4。咨询
开源工作可以提供一种获得有价值的社区知名度的方法。


能力展示。通过查看开发人员参与的开源项目来验证开发人员的工作和能力,对于潜在的雇主来说是一个强大的吸引力。

建立声誉。在开源社区中享有很高声誉,可以根据您的专业知识进行演讲,培训或撰写书本。

成为专家。成为公司所需技术的重要参与者,意味着需要对该技术进行定制咨询,支持和培训。这样可以在您的专业领域中创建特定的工作环境。

5。辅助通道
最后,收入可以通过诸如广告(如Stackoverflow那样),捐赠之类的辅助渠道,或通过在软件本身中使用旨在使用户烦恼的用户向作者提供经济贡献的na软件技术来获得。这些技术并非特定于开源开发模型。例如,非免费共享软件产品经常使用它们。

#2 楼

因为您是该系统的创建者,所以您是“最终专家”。使用或希望使用您的软件的营利性公司可能会带您进行一些咨询工作。另外,您有资格在我听到的薪水较高的惯例上发言。您贡献越多,在寻找合同工作时就越有信誉。

#3 楼

这是一个示例。

如果您在Qmail社区中闲逛,就会发现有一些人完全了解Qmail。如果您想扩展Qmail的功能,则只有几个成为首选。他们得到的承包工作包括让他们坐在家里,编写Qmail扩展程序并为此支付报酬。合同工作。您可能会为客户提供不同的条款,具体取决于他们是想拥有自己生产的封闭源代码,还是将代码发布为开放源代码,但是他们可以使用。

思考这样-在很多情况下,客户只是希望该代码存在。然后,他们不在乎是否拥有对它的独占访问权。

评论


承包工作是不定期的,我认为这不是一个好的职业选择。似乎有一份薪水工作(可靠)或一家创业公司(一次赌博,但至少有潜在的回报)似乎更好。

–sixtyfootersdude
2010-6-27 at 16:26

#4 楼

以我的经验,编写OSS不会给您任何收益。但这确实使您变得更有价值,因此可以就业。不仅因为您从实践中获得了高度调整的能力,而且还因为当您能够使用现有的OSS时,对生态系统的熟悉度使您可以浪费更少的时间评估已有的内容,从而避免重写车轮。

#5 楼

大多数时候,企业使用养蜂人模型赚钱。从本质上讲,您的开源贡献者可以免费使用最新的和最出色的产品,而您的客户可以获得可靠,成熟的产品。 Red Hat,Novell和Sun都使用此模型的变体。

另一个选择是咨询和培训。如果您有使用某种产品的丰富经验(或者更好的发明了它),那么人们可能会愿意付钱给他们教他们使用它。这是Canonical使用的模型。这不一定意味着您必须进行sysadmin类型的工作,除非那是您的事。毕竟,程序员,最终用户和执行人员也需要培训。

作为学生,您应该认真考虑明年夏天的Google Summer of Code。

可以说,无论您是否直接从开源软件中赚钱,开源软件都是值得的。虽然,我担心您短期内可能不会意识到这些好处。

#6 楼

真的要看许多人只是将开源开发作为一种业余爱好,并且有一份日常工作(这通常也是软件开发,尽管并非总是如此)。源项目。 LWN.net发布了一篇有关谁向Linux内核开发人员付款的文章,例如:内核开发,而不仅仅是Linux发行商。

一些开发人员还经营咨询业务,并使用软件开发来支持其主要工作或作为展示。

#7 楼

有很多不同的方式


由另一家公司提供资金(例如google,它支付Guido van Rossum一半的时间从事Python工作)
销售支持服务
销售咨询服务
通过开源构建自己的个人资料,希望它会导致诸如演讲,写书,获得高薪工作等其他事情
为“企业”旋转产品的商业版本例如,客户

,然后我认为最大的客户正在扩展他们的知识,并从他们的产品用户中得到爱。

#8 楼

创建一个有关开源产品的网站(您的应用程序,论坛,支持网站等),然后在其中放置一些广告。
可以解决问题。

评论


当然,您可以赚一些钱,但不能靠广告谋生。

– Zifre
09年8月27日在14:31

尽管google在em方面有些运气;)

–迈克尔·杜兰特(Michael Durrant)
13年11月27日在2:47

#9 楼

我和一个朋友一样,无意间通过开源软件赚了钱。我们有类似的情况,但我只说说自己的情况:我写了一个开源VCDiff解码器,基本上是因为该规范看起来不错。 (长话短说,但我原本打算在公司时间写这本书,但最终却在星期五晚上写。)

几年后,一家公司想找我联系以商业包装形式使用它,但没有必要的署名。他们很乐意为此支付许可费用,并向我提供了极为合理的非排他性许可。我们做了交易,双方都很高兴。

目的绝不是为了赚钱-发生这种事情基本上是产生另一方想要的东西的副作用。

评论


我认为您遇到了一个重要的问题:您不会为了金钱而开源。

–伯纳德
08-10-12在22:29

@伯纳德:我假设您的陈述不包括Sun,Novell,Red Hat,Google,IBM,Apple甚至Microsoft?

–杰森·贝克(Jason Baker)
08-10-13在0:48

不,我的意思是作为个人,一个人的意图不应该是赚钱。并不是说这是不可能的,甚至是困难的或不需要的。

–伯纳德
08-10-13在22:40

@Jason-我认为微软从未“涉足”开源。

–克里斯·卢茨(Chris Lutz)
09年8月27日在8:25

#10 楼

我认为常见的情况是他们也有工作。许多开放源代码工作都源于开发人员的业余时间以及他们有偿工作的要素。帮助其他面临类似情况的开发人员。

#11 楼

仅开发一个开源软件项目可能不会赚到很多钱。可以提供高级支持,定制等。通过开发Firefox,Thunderbird,Red5和其他一些开源项目的扩展和自定义版本,我在方面做了很大的改变。我创建的大部分内容也都提供给了开源社区。

还存在双重许可系统的可能性。例如,您可以在GPL类型许可下发布软件,也可以在商业许可下发布软件,在商业许可下,允许购买商业许可的人保留所有修改的专有权,并在不发布源代码的情况下出售该软件。

#12 楼

如果您真的想通过制作自己的开源项目来赚钱,我认为这是一个相当长的路要走。另一方面,在Red Hat,Sun,IBM,甚至Microsoft等公司中,有许多薪水丰厚的工作需要使用开源技术或开发开源软件。

#13 楼

您实际问题的答案


开发开源软件能赚钱吗?如何?


是的,并且有不同的方式。如果您只是想成为一名开发人员,即不创办自己的公司,那么最好的开始就是参与您喜欢的项目。然后,您可能会发现这样的机会:http://webapps.ubuntu.com/employment/canonical_GDOS/(MySQL在不同领域中有很多,只是提到另一个“大”名字)。

然后,在LinkedIn上创建您的个人资料,并加入与您的技能和/或兴趣相关的OSS组。

最后但并非最不重要的是,加入本地组(例如LUG,JUG)并阅读邮件列表。通常在这些列表中会出现很多工作机会(不幸的是,我只有在得到工作后才发现)。

#14 楼

一些开源软件公司提供服务并赚钱。 (例如应用程序托管等)在大多数情况下,它们会根据客户的要求提供一些自定义功能,并随着时间的推移提供支持和维护。

我认为“捐赠”不会带来很大的变化,但是也会对他们产生一些影响。

这是一家基于开源产品的斯里兰卡公司的很好的例子。

WSO2

#15 楼

据我所知,有两家成功的,盈利的开源公司:


SleepyCat Software在被Oracle收购之前,一直通过支持和增强Berkeley DB来赚钱。尽管其中一位创始人有一份日常工作,但另一位却没有,并且他们只有十几名员工。
Chez Scheme通过为他们的编译器添加增强功能并出售其编译器的本机代码版本来赚钱。典型的增强功能可能包括新的后端。最近更具雄心的增强功能是本机线程程序包。创始人(Kent Dybvig)从事日常工作;我不知道他有多少雇员。 Chez与众不同之处在于,解释器是开源的,但编译器不是开源的。

Cygnus和Red Hat都出售“支持”以及其软件的专用版本,但该软件也被赠与。我不太了解这种业务模型。

我从这些示例中脱颖而出的是,如果您的软件在同类产品中很出色,人们会付钱给您帮助他们使用您的东西来解决问题。所以这几乎就像咨询服务。

评论


我认为Chez Scheme的翻译是免费的,但不是开源的。我只看过Chez Scheme解释器的二进制文件。和谷歌没有帮助。

– Shannon遣散费
2011年8月15日在18:24

#16 楼

从本质上讲,您通常无法直接从代码中赚钱-因为它是开放的。您可以使用双重许可,但这也可能会使OSS社区陷入困境。

可能最简单的方法是在一家生产开源软件的公司工作。您可以因编写代码而获得报酬,并且公司可以通过支持等获得收益,但是您不必直接参与其中。

也可以编写OSS来构建销售代表并希望获得合同工作/全职工作的支持。

评论


无需双重许可。没有什么可以阻止您出售GPL代码。唯一的问题是,您不能阻止买方自己出售或赠与它。比作为代码的商品更好地出售编写代码的服务。

–苗条
08-10-13在11:45

这不是真的。您确实可以出售它,但是随后您将在GPL(您有权做的版权所有人)的条款范围之外分发它。但这并没有使其成为公共领域。最好使此替代许可证明确。

– ra龙
08-10-14在3:58

#17 楼

您可以通过多种方式执行此操作。目前,免费增值模式非常流行。
或者,由于其他人已经发布了开放源代码工作,人们对此持观望态度。我使用的模型是在我的工作地点使用开源并将我的贡献回馈给主线。您需要获得管理层的支持,但它可以正常工作。还请记住用Stallman Free的话和Freedom中的话

#18 楼

我认为,现在可以接受的事实是,一旦安装了该软件,其价值就已经超过其价格,因为它现在已经“已经存在”。我说的是更多企业风格的应用程序。

许多公司在您购买软件时向您收费,然后与维护合同站在一起,最终从中获得更多收益。如果您已购买7次以上。我知道使用某些拥有30多年历史的专有软件肯定是这种情况!第一”的商业模式)。当然,挑战在于选择一个维护良好且在线上拥有良好支持社区的项目。但是同样,非自由软件也是如此。

迁移到开放源代码上和从开放源代码迁移往往比专有应用程序容易得多,因为它们倾向于更频繁地支持开放格式。专有应用程序通常会“放弃”迁移到它们的服务以及其他服务,以使您更轻松地与它们保持在一起。

O / S应用程序一开始往往具有较高的学习曲线,这非常需要维护合同,因此有很多机会来制定$$

,我认为,两种商业模式都不是更好,只是不同而已。专有模型恰好更普遍。

#19 楼

我在这里看到两个问题:
1)开发人员如何赚钱。
大多数开发人员都不是为了赚钱。原因可能很多,但如果我们缩小范围,结果会降为1 )抓痒2)争取信誉3)增强特定语言/领域的知识。
2)企业如何赚钱。
通常通过支持,培训,认证和增强。但是随后出现了一个问题:如果您的产品真的很好,那么它不需要太多支持。因此,它必须是Joel所说的Consultingware。

#20 楼

如今,一些公司(很多?)向开发人员付费以为开源软件做出贡献,因为他们的业务基于开源软件或源自开源软件。