我从短暂的开源职业生涯中获得的经验和教训

很多人都曾经回答过“你长大以后想成为什么”这个问题,但我不认为有多少人会回答:“我想在开源工作”。

从我自己的经验来看,在开源社区工作是因为做别的事情而导致的。我做开源的时间很短 - 事实上,我所在的公司的使命宣言就包括“开源”一词,但我的工作路线不是和它直接挂钩的。

我做了一个重大决定

我曾做过平面设计,然后我开始思考职业规划。我应该留在图像领域还是去尝试其他的?我有通信学士学位,在同一领域再去获得硕士学位似乎是多余的,所以经过多番思考,我决定追求网络安全和计算机取证硕士学位。

直到这时,我依然对开源没有任何想法,甚至不知道它是什么。我没有了解任何关于开源软件和开源智能的东西。直到有一天我不得不用 Linux 创建虚拟机来做我的课程和“编译”东西,并成为“超级用户”时,我开始才对开源的东西感兴趣。当时我购买了一个自带 Windows 7 的便宜的华硕笔记本电脑,后来被我重装成 Linux。

开源是一个很酷的东西,一旦进入,就被吸引住了。你会想要更多,想探索所有的开源提供。这是非常不同于使用 Windows 或 Mac 的感觉,开源在软件和用户之间创建了一个特殊的绑定。

寻找工作

获得学位后,我开始找工作。这有点令人沮丧,我不再有安全保障,我不再是一个孩子了。我主要很多招聘网站上进行寻找,只是在网络安全领域或计算机取证方面并没有取得什么进展。然而,我注意到许多帖子使用像“Linux”和“开源”这样的字眼,我认为这可能是一个更好的路径。所以,去参加了几个免费的在线课程,以提高技能并积累经验。

这很重要吗?天知道?但是,你可以将它们添加到自己的简历中,表明正在努力学习该技术,然后才能开始工作。

接受挑战

我在网站上看到有一个入门级 Linux 管理员的工作。我读了工作说明,发现自己完全不合格。此外,公司指明它只想要招本地人,而我住在大约1,000英里外。只是,我还是申请了。

申请后不久,我收到了公司的电话。我没有他们需要的技能,没有住在他们附近的任何地方。但他们说这些都不是问题,因为可以学习和搬过去。但由于我没有适用的技能,不得不参加考试。测试涉及使用某些开源程序,GitHub、Linux 和文档。我不知道这家伙在说什么,但我接受了挑战。

我做了一些研究,创建一个 GitHub 帐户,下载我需要的信息,并执行所需的任务。幸运的是,我正确的完成了任务,得到了这份工作。我成功进入开源社区工作,并使用上在硕士课程中学到的一些技能。

不幸的是,我的岗位在四个月后被淘汰,并外包到海外。这很令人失望,我又回到了图形领域工作。但我还保持着对开源领域的兴趣,并继续我的研究和主题写作。

保持真我

我对所有在开源领域中寻求工作的人的建议是拥抱开源提供的一切。 利用所有免费培训和认证。 尝试开源世界中的不同特色:图形、商务、数据库、教育等等。

寻找那些触及开源的职位,并申请职位,相信自己可以,即使工作说明可能看起来超越了自己当前的水平。

技术趋势可以改变,公司可以换。 什么都是灵活的,但请注意,永远不要停止学习。

我发现,随着雇主和候选人相互了解彼此的优势,工作描述和期望会有所改变。 这大致也正好印证了开源的理念:开放、协作和灵活。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-23 13:33:21

我从短暂的开源职业生涯中获得的经验和教训的相关文章

开源软件中说明文件guide与tutorials有什么区别

问题描述 开源软件中说明文件guide与tutorials有什么区别 开源软件中说明文件guide与tutorials有什么区别? 解决方案 guide的话偏指南,更像是熟练者查询用的东西. tutorials的话偏教程,更像是初学者初学时要看的东西. 解决方案二: 就好比中文中指南.教程有什么区别一样. 说实话,没啥区别.

开源代码中的安全隐患 要从DevOps的角度 进行6个方面的预防

各行各业的组织,无论规模大小,都会使用开源应用,眼下这种趋势有增无减.在开发阶段,将源代码嵌入软件中既经济.又高效.借助于其他资源,开发人员可以将更多的精力集中于组织的内部代码.但 DevSecOps 的问题不容忽视. 据GitHub调查,94%的受访者表示至少会时不时地使用开源应用,而81%的人则经常使用.实际上,82%的开发人员透露,所在单位接受使用开源软件,而84%的人被鼓励在应用中使用开源代码. 虽然使用开源代码 还需要在持续交付中确保安全 虽然开源部件可节约时间和成本,但其许可协议中均

superword开源项目中的定义相似规则

两个词之间的关系有同义.反义.近义(有多近?).相关(有多相关?)等等.我们如何来判断两个词之间的关系呢?利用计算机能自动找出这种关系吗?当然可以,不仅能找出来,而且还能量化出有多近和有多相关. 本文描述了superword开源项目中的定义相似规则,利用词的定义计算词和词之间的相似性.词的定义使用的是韦氏词典,同时也支持牛津词典.相似性算法使用的是word分词提供的10大相似性算法. 定义相似规则主要包括以下6步: 1.获取要计算的词的定义: String wordDefinition = My

开源项目中经常出现的七种错误

启动一个新的开源项目可能会遇到一些困难.也许你脑子里有一个很棒的想法,但是想把它们变成富有成效的.健康的.吸引人的社区还需要做很多工作.令人叹息的是,相同的错误总是被无代价的重复,出现低级错误是团队中的忌讳.下面就请跟随笔者一起,看看开源项目中经常出现的错误,并且尝试去规避它们.相信会对你的项目开发有所帮助. 1.聊天代替发送 在数以千计的开源项目中,有太多人因为松散的渠道.邮件列表问题或其它方面在一开始就陷入困境.讨论围绕着房子而展开,范围也越来越大,把许多不同的想法和考虑纳入其中.一个早期的

Palo Alto研究员称 未知攻击者使用恶意程序Dimnie攻击Github开发者 企图在开源项目中注入后门

过去几个月间,在GitHub网站上发布代码的开发者陆续遭到攻击,这些攻击都使用了一种鲜为人知却切实有效的网络间谍软件.攻击始于1月份,通过精心构造的恶意邮件吸引开发者注意,如请求他们为开发项目提供帮助或邀请他们参与有偿定制编程工作. 恶意邮件诱骗开发者下载恶意程序Dimnie 邮件中的.gz附件包含Word文档,其中嵌入了恶意宏代码.运行后,宏代码会执行PowerShell脚本,连接远程服务器,下载恶意程序Dimnie.根据Palo Alto Networks(PAN)研究员所说,Dimnie至

5个开源项目中常见的陷阱

提及开源,从软件.硬件以及理念已经越来越流行,应用形式也越发丰富.如果企业想开始一个新的开源项目,opensource网站提出的五个开源项目"陷阱"值得关注,同时即便是已经展开项目执行,通过了解无论在哪个阶段都可以有效.平稳的完成. 仅你自己支持 如果你计划发布一个开源产品,需要深刻理解"你需要的支持"的含义.不要指望社会各界来帮助你提供产品支持,每个人都会以为他们所做的事非常重要.得到千百万人的支持.同样不要指望大批社区志愿者会自发涌入你的支持论坛,帮你回答问题.

Google 在 47 个开源项目中发现了 1000 多个 bug

在过去五个月中,Google 的 OSS-Fuzz 计划已经在 47 个开源软件项目中发掘了超过 1000 个 bug . OSS-Fuzz 是 Google 在去年12月推出的一个开源安全计划,针对开源软件进行持续的模糊测试,利用更新的模糊测试技术与可拓展的分布式执行相结合,提高一般软件基础架构的安全性与稳定性.项目结合了多种模糊测试技术/漏洞捕捉技术(即原来的libfuzzer)与清洗技术(即原来的 AddressSanitizer),并且通过 ClusterFuzz 为大规模可分布式执行提

开源选型中的基因论

传统的选型方式 一般而言,我们会按如下的方式进行选型验证: 功能上是否契合.也就是我的需求能通过该组件来完成 性能如何(会做一些压测) 稳定性如何 社区活跃度如何 是否能方便和其他的组件配合 如果能通过上面的几条,我么可能就会采用该套技术了.然而这往往会导致很多误用.比如很多人就把zookeeper当存储用了,因为倒也满足上面的一些需求. 基因论 这里的基因指的是,某个开源组件是因为什么而诞生到这个世界的.仍然以zookeeper为例,我们可以说zookeeper 是为分布式协调而诞生的,他的基

我们在各种开源项目中发现的 10000 个 bug

为了改善我们的静态代码分析的方法论,以及改进我们的静态分析工具PVS-Studio,我们会定期地用他们验证各种各样的开源项目.我们找到了很多bug,事实证明,再牛的人也会拼写错误 / 注意力不集中,没有人能保证不犯错.即便是在Microsoft Code Contracts, Qt, Linux kernel, CryEngine, VirtualBox, LibreOffice, Firefox, Boost, Tor这些项目里,依旧如此.目前我们检测了262个项目,都是官方发布版!我们一共记