在超过 15 年的时间里,我完全依靠开源产品谋生。我是如何走到这一步的?
在很多方面,我的旅程在 Linux 出现之前就开始了。在大学里,我有一些朋友是工程计算机实验室的管理员。虽然我的 CS 编程课程成绩不太好,但作为一种爱好,也为了和我的朋友们在一起,我了解了新闻组、ftp 站点和 Unix 系统。作为一名数据助理实习生,我意识到我是一名天文学家和 C 程序员计算机支持人员之间的优秀翻译。我能看懂足够多的代码来识别问题,但不足以真正解决问题。
快进到成年后的入门级工作。我作为用户的经验为我赢得了一个学习 PC 帮助中心系统和网络管理的机会。在这里,我学习了网络操作系统安装、配置和互操作性。当 Linux 进入企业领域时,我抓住机会学习、支持和教授 Red Hat Linux、SuSE、Caldera 和 Turbolinux(并非所有这些都存在于今天)。
最初,几乎所有 Linux 管理课程的学生都是已经在使用 AIX、Solaris、HP-UX 和 NT 等操作系统的系统管理员。现在,我的学生都是系统管理新手,直接学习 Red Hat Enterprise Linux。许多大学都在使用 Linux 教授分布式计算,包括一些使用我作为审阅者贡献过的书籍的大学。你不再需要先学习其他系统。Coursera、Udacity、 EdX 和其他在线 MOOC 提供商都提供 Linux 和各种开源应用程序的入门课程。
到 2000 年,我完全专注于 Linux 产品。我以独立承包商的身份与各种发行交付合作伙伴合作,通过教学谋生。我通过寻找方法为上游项目做贡献来扩展我的技能,并且我总是鼓励 Linux 新手也这样做。我通过 Docs Project 和作为 大使成为了 Fedora 的贡献者。我关注了基础设施团队,但始终没有找到持续的时间成为真正的贡献者。我参与了测试日、进行了一些错误修复,并帮助记录了打包指南。我甚至完成了 MSIS 学位,包括一篇只使用我的 Linux 笔记本电脑上的程序的论文。
我仍然不认为自己是程序员。我不是 C 程序员,也不是 Java 开发人员。我几乎可以看懂任何东西,而且没有学习相当多的脚本编写,我就无法在系统管理员的工作中生存下来。自由和开源软件 (FOSS) 的理念使我能够取得卓越成就,即使我存在对学习编码的心理障碍。我理解逻辑,并且可以构建伪代码,但我不擅长从头开始编写代码直到正确完成。借助 FOSS,我可以找到与我正在寻找的内容接近的脚本,并进行尝试直到我得到我需要的东西。
通常,如果手头没有可靠的示例,我不需要编写完整的代码段。诸如 Puppet 和 Ansible 等配置管理产品,以及诸如 Cobbler、Foreman 和 Pulp 等部署产品,也有助于自动化,而无需进行有时很复杂的结构化编程和错误处理。具有用户和管理员仪表板的平台,例如 Ambari、oVirt 和 OpenShift,有助于集中和简化与使用软件定义网络和存储的大型复杂机器集群的交互。
我热爱教学。我喜欢看到当一个人弄清楚某件事应该如何工作时,灯泡亮起的那一刻。我喜欢弄清楚新产品的工作原理,以及它们在市场中的定位。我热爱学习,而且我在教学时总是学到新的东西。如今,我做的日常管理和支持任务较少,而架构设计较多。我还花费更多时间测试产品并编写说明——为我自己、为书评、为课程以及为会议。
随着 Docker 和 Kubernetes 等新兴技术的出现,总有更多东西需要学习。我仍然是 Fedora 大使,但多年来,我没有时间为其他小组做出贡献,现在正在寻找新的、较小的项目来参与,最好是与安全相关的项目(尽管安全应该包含在所有类型的产品中)。我相信我可以通过测试、错误分类和文档编写做出贡献。一些与 Ansible 相关的项目,包括 Lightbulb 培训项目,也引起了我的兴趣,而且我一直对为青少年提供工具和材料的项目感兴趣。
3 条评论