很久以前,我还是波士顿伯克利音乐学院音乐制作和工程专业的学生。但我一直是个书呆子,最终在宾夕法尼亚州交通运输部找到了一份安装CAD(计算机辅助设计)系统的暑期工作。
当我从伯克利毕业后,计划是等待六个月来积累储蓄,然后和乐队的其他成员一起搬到洛杉矶。但在乐队和计划之间,事情并没有完全按计划进行。
我最终又回到了我暑期工作时的承包商那里,这次是为现场技术人员提供电话支持。我注意到我们正在重复相同的步骤——清单上写着“如果这样,就那样”,该死,你就照做了。但没有考虑到这样一个事实,即我们可能上周派了不同的技术人员到同一个地点,尝试相同的清单来“修复”相同的症状。作为一个文静而害羞的人(哼!),我礼貌地指出了这有多么愚蠢。最终,我被告知“要么做点什么来解决它,要么就闭嘴。”
所以... 开源登场了。那时,我面临一个挑战,没有预算,而且(字面上)有一托盘奔腾II台式机可以用来运行它。我把台式机连接起来(还在托盘上,没错),忽悠仓库给我一个退役的路由器,并买了《24小时自学PHP和MySQL》。
我的第二个脚本(当然,在“Hello, world!”之后)最终登录到邮件服务器,下载了Bob每周发送的所有摘要邮件,将它们解析到数据库中,并建立了一个历史搜索工具,这样我们就可以停止一遍又一遍地做同样的事情,并寄希望于它会以不同的方式工作。
一件事导致了另一件事——那个特定合同的项目经理的回调突然大幅下降,所以其他人开始打听我的时间。技术支持经理最终重新路由了电话系统,这样我就可以因接听电话而获得认可,但他实际上接听了电话,这样我就可以继续开发新工具。
有一次,我正在进行轮询DNS来负载均衡PII系统,仅仅是因为它们糟糕的故障率。我想我在集群中拥有的节点比用户还多,以防万一。
六个月后,公司聘请我为全职程序员,我再也没有回头。我为支持团队开发了新工具,为仓库开发了无纸化库存工具,为调度员开发了查找最近的合格现场技术人员的工具。我设计的系统最终变得足够重要,我获得了购买大型计算机的预算。一旦IT部门注意到我,我就不得不为坚持使用Linux而奋力抗争,但最终我赢了。这在2000年代初期很典型——一个只使用Windows的IT部门面对着一些推行开源的年轻人。
IT部门勉强接受了我转换到Linux的一些东西可以而且应该保持这种状态,尽管如此。据我所知,他们从未转换任何我控制之外的系统,但我控制范围内的所有服务器都被允许继续运行Linux——即使是新的开发项目。
基本上,IT人员承认软件方面的事情并不是他们的领域,并让我按照我想要的方式在Linux上设置系统。
今天在InterWorx,我为Linux编写用于网络托管公司的软件。我去年获得了RHCSA认证,目前正在学习RHCE。我很想说我出于哲学原因而进入开源和Linux领域,但老实说,这只是因为它可以让我完成工作。如果不是Linux和其他开源软件,我永远无法解决多年前的那个问题。凭借那一次机会(以及大量的工作!),我得以开始一条通往全新职业的道路。
2 条评论