一年前,我非常喜欢.NET。我定制开发应用程序,了解如何通过这种工作方式生活并不困难 - 客户要求您制作一个定制应用程序,您确定价格,完成工作并赚钱。
现在,我听到越来越多的人谈论开源项目和集体智慧,这似乎是为创新做出贡献的绝佳概念。但当然,作为全职员工,很难找到时间免费工作,并且我不明白除个人满足感外,参与开源项目有什么其他好处。
如果您能解释一下如何通过为开源项目做出贡献来获得回报,我将非常感激。
谢谢。
一年前,我非常喜欢.NET。我定制开发应用程序,了解如何通过这种工作方式生活并不困难 - 客户要求您制作一个定制应用程序,您确定价格,完成工作并赚钱。
现在,我听到越来越多的人谈论开源项目和集体智慧,这似乎是为创新做出贡献的绝佳概念。但当然,作为全职员工,很难找到时间免费工作,并且我不明白除个人满足感外,参与开源项目有什么其他好处。
如果您能解释一下如何通过为开源项目做出贡献来获得回报,我将非常感激。
谢谢。
参与开源项目有几个好处。我将简要介绍,让你在实践中了解细节。
仅因为某物是开源的,并不意味着它没有“商业价值”。例如,你可能会收费安装、配置和指导客户使用应用程序,而软件开源是一个很大的卖点。你不是从许可费中赚钱,而是从咨询中赚钱。
就就业能力而言?街头信誉。
同行面试者常常会在一位程序员在开源项目中的贡献方面给予(不同程度的)重视,特别是如果你是初级水平。这表明了自我激励、积极性、能够在分布式团队中工作的能力以及证明你实际上使用了某种版本控制等方面的能力。
另一个原因是:假设您使用的是开源产品的1.4版本,想要添加一个功能。您在自己的副本上添加它,并且没有贡献到开源版本中。当1.5版本发布时,其中包含了许多其他有用的功能,您也想拥有。那么您需要再次将所需功能打补丁到1.5版本上。如果您已经贡献并且它已经进入开源版本中,您将不会遇到这个维护问题。
许多人希望为开源项目做贡献,因为他们自己也经常使用这些项目。只有通过人们的贡献,这些开源项目才能得以存在。此外,如果有人想添加功能,他们可以通过放出代码来帮助其他人。
对于很多公司来说,创建开源软件意味着他们可以从其他人所做的改进中获益,同时还能获得他们需要的软件。
此外,参与开源项目可以积累大量个人经验,并成为简历上的亮点。
然而,最终,大多数开源项目都是由那些为了让他们工作的软件变得更好、帮助他人的人来运营/创建的。
参与开源项目表明您喜欢软件开发,而不仅仅是为了薪水 - 这可能会使您在潜在雇主眼中更加有趣。
以下是我的原因:为什么我要花这么多时间在开源项目上工作
而我对有偿工作和参与开源项目的区别的看法也可能会在这里引起兴趣。
帮助改善代码
您可以获取软件的全部更新。如果其他人编辑了您的代码中的某些功能,您可以发现其中的缺陷和问题。
添加功能
任何人都可以为您的软件添加功能。通过这样做,您将了解到您在设计中忽略了哪些事项,并可为未来的软件开发做出贡献。
你可能会喜欢阅读Eric S Raymond(一位重要的开源贡献者)所写的The Cathedral and the Bazaar。这是一本非常好的概述开源运动历史、运作方式以及未来发展方向的书籍,采用了非正式和易于理解的风格。虽然我对开源的内外情况比较熟悉(我丈夫过去两份工作都是在基于开源的公司),但我仍然从中学到了很多。