当前位置: 首页 > 科技观察

被低估的开源编程:忽视开源会影响你的职业生涯……

时间:2023-03-21 16:20:55 科技观察

被低估的开源编程:忽视开源会影响你的职业……,这无疑是令人震惊的。高级开发人员往往对开源编程怀有极大的尊重和欣赏,但大多数初学者往往意识不到开源编程的潜在机会。在网上找实习拿工资更有吸引力,忽略开源的重要性似乎也可以理解。虽然实习真的很重要,而且我完全赞成实习,而且我自己也做过一些实习,但忽视开源可能会对你的职业生涯造成影响。从几个月前开始,我就一直在研究开源世界。这么短的一篇文章可能无法完全表达我从中学到的东西,但我会尽力而为。首先,笔者将简单介绍一下什么是开源软件。什么是开源?开源软件与大多数人每天使用的软件并没有什么不同。事实上,如果您最近上网并尝试查找所有流行的开源软件的列表,您会感到非常惊讶。例如,MozillaFirefox、Ubuntu、WordPress、VLC媒体播放器等等。究竟是什么让它们与其他软件区分开来?是因为它们有资格成为“开源”而其他流行的软件却没有吗?很简单,它们有一些预定义的特征来定义我们一直在谈论的内容。期限。自由:这可能是开源软件最明显的特征。开源软件对所有人免费,无论是开发人员、用户还是所有者。它不为其服务收取任何费用,如果收费,它就不能称自己为开源。透明度:这意味着使软件运行的所有代码都可以在互联网上自由浏览。你可以看到它,使用它,用它做任何你想做的事。最重要的是,您可以参与其中,添加您自己的代码,并将代码插入其中以改进软件。公平:这对许多人来说似乎是一个很普遍的观点,但实际上它是开源的一个非常重要的方面。即将发布的软件将面向所有人开放,无论其种姓、宗教、领土、性别或任何其他可能使人们彼此不同的因素。软件是开放的,人人平等。FreeFurtherUsability:好像是第二点的重复?不同的是,这是从程序员的角度来看的,任何程序员/开发人员都可以自由地将开源软件编写的代码用于自己的个人用途或项目。任何功能、任何特性都可以按原样使用,没有任何法律问题。以上就是对开源实际含义的基本概述。了解所有这些,很明显最终用户不会注意到开源软件和非开源软件之间的任何区别,除了前者更有可能是免费的。谁参与开源,为什么?这个问题此刻萦绕在许多人的脑海中。我们知道该软件是完全免费的,最初从事该项目的开发人员似乎没有得到任何报酬。那么,为什么有人愿意将宝贵的时间投入到这上面呢?另外,我在本文开头提到的机会是什么?首先开源“付出”,而且付出的代价高。人们从开源中赚钱的方式有很多种,但在深入探讨金钱之前,我想指出一些比金钱更重要的其他好处:知识、经验:当然,不断从中获取新知识的能力工作总是有帮助的,但远不止于此。在我个人看来,对于初学者来说,最好的积累经验的方式就是参与开源。人们会寻找实习机会,或者只是简单的付费项目,而这些项目大部分都在公司名下,他们想从你身上获得价值。以笔者为例,虽然我参加过的每一次实习都有非常支持我的manager和senior,但是能参加其中的一个还是很不容易的。你将与??大量的候选人竞争,而且竞争者中很有可能是拥有数月甚至数年工作经验的“老手”。实际参与现实世界的项目变得很困难,而开源为此提供了一个极好的平台。在这个平台上,无论你付出多少努力,你都是有价值的。它会比实习压力小得多,学习体验也会好得多。因此,这是获得更多经验和参与更多实际项目的最有效方式。价值:在这个领域工作最重要的因素之一,你获得的价值将是惊人的。这些价值可以来自公司、个人、这些项目的所有者以及各种编程社区,拥有良好的开源档案总是一个很大的优势。专业网络:我在这方面有很多经验。在线做项目时,你会和很多人合作,而合作包括很多交流。在交流过程中,我们形成了很多专业的联系。我在LinkedIn的活跃联系人中有来自伦敦和阿姆斯特丹的人,你永远无法想象你的专业网络何时会帮助你。机会:这一点与第二点密切相关。具体来说,来自公司的价值。许多公司,包括像谷歌这样的行业领导者,都非常关注开源,他们最负盛名的项目之一GSoC(GoogleSummerofCode)完全基于开源。只有拥有良好的开源形象,参与的项目也是开源的,才能进入公司,可见该领域目前在业界的重要性。GSoC并不孤单,有数百个享有盛誉的实习职位供具有良好开源技能的人使用。Outreachy、MLH、LinuxFoundation只是其中的几个例子,一览全貌,一目了然。这些公司对开源的依赖直接体现了它的价值。当然,你会得到报酬,开源不会带来收入的想法是完全错误的。当你达到一定水平时,你很有可能从各种来源(实习、赞助、公司付款)赚到很多钱。很多人都非常努力地构建系统,以确保人们不会因为无法为系统提供资金而放弃参与开源。即使是我刚才提到的实习,他们给实习生的薪水也很好,例如,Outreachy有3个月的6,000美元津贴。我该如何开始??这也是让我很困惑的问题,一直怀疑我所遵循的方式,直到我参与了第一个项目。答案是:您只需按照您能想到的最直接的方法进行操作即可。然而,在我们知道如何去做之前,我们应该知道需要什么技能吗?不,直到现在,无论我说什么,感觉你需要擅长编程才能从事项目。当然,这是因为软件是由代码构成的。但问题是软件不仅仅是由代码组成的。向市场发布的单个软件有很多方面:设计、内容、使用文档,甚至报告错误都是软件的重要部分。这些都需要编码吗?没有。你只需要做你已经擅长的事情,并积极参与需要你的项目。就这样。不过,在这里忽略编程是非常不公平的。通常,您不需要学习一些新技能。但是作为程序员,参与开源确实是有一些要求的。Git:Git是使用软件的传统方式。它不是一种软件制作语言,它只是一个检查代码的辅助工具。利用Git的强大功能,可以在代码中创建检查点或创建分支,这意味着在处理代码的同时保持以前的版本完好无损,以确保可以在需要时恢复它。从本质上讲,Git是软件的版本控制系统。它不以开发软件为目的,但对于在开发软件的过程中与他人协作极为重要。此外,由于在参与开源时协作是最重要的,因此Git变得同样重要。Github:Github是所有开源托管发生的站点,它不是唯一的站点,但它肯定是行业领导者。这基本上是Git版本的用户界面,当紧密集成时,它会成为完全托管的协作资源。因此,它在工作流中与Git一样重要。编程语言:涉及到一个软件,归根结底,一切都只是代码。所以很明显,了解编写代码所用的语言是至关重要的。就这样。对于大多数程序员来说,他们已经了解一些编程语言,因此需要的新技能是Git和Github。好消息是:它们非常容易学习,可以在一两天内掌握。在YouTube上找到一个好的教程并开始使用。整个过程中唯一困难的部分是找到一个可以参与的软件。作为初学者,您可能需要一些时间才能找到您真正需要掌握的技能(当然是在编程语言方面),最好继续寻找。您可以手动执行此操作,也可以在Github上查找带有“good-first-issue”标签问题的存储库,这肯定会让您走上正轨。接下来是什么?只需复制系统上的代码,进行所需的更改,然后将代码放回网站上即可。如何?这就是Git和Github的用武之地。当您学习它们时,执行这些步骤是轻而易举的。恭喜你,你已经参与了第一次开源,成为了一名开源开发者!为什么每天有4000万人“免费”做2800万个项目?希望本文能帮助您找到答案,也希望您能成为其中的一员。