65.9K
CodeProject 正在变化。 阅读更多。
Home

与 Hal Rottenberg 的程序员访谈

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.96/5 (9投票s)

2013 年 4 月 3 日

CPOL

10分钟阅读

viewsIcon

15537

欢迎来到我们持续进行的 Code Project 开发者访谈系列,在该系列中,我们将与开发者们探讨他们的背景、项目、兴趣和最令人头疼的问题。在本期中,我们将采访 Hal Rottenberg,他声称自己并不是一个真正的程序员。我们会对此进行一番了解……

欢迎来到我们持续进行的 Code Project 开发者访谈系列,在该系列中,我们将与开发者们探讨他们的背景、项目、兴趣和最令人头疼的问题。在本期中,我们将采访 Hal Rottenberg,他声称自己并不是一个真正的程序员。我们会对此进行一番了解……

你是谁?

我叫 Hal Rottenberg,我在 Splunk 的技术业务发展部门担任解决方案架构师。我的工作是创建 Splunk 与我们合作伙伴之间的集成。我在这里工作了一年左右,非常热爱这里的挑战。

您做什么?

在 Splunk,我们处理的是机器数据。机器数据是我们周围所有计算系统(无论是软件还是硬件)在执行其设计功能时产生的“废气”。通常,这些废气以写入磁盘或通过网络发送的日志形式存在。常见的例子是 Apache 或 IIS 创建的描述您网站访问的访问日志,或者网络设备创建的 syslog 事件,它们可以精确定位攻击者何时试图渗透您的防火墙。

但 Splunk 的酷之处在于,这些数据可以是任何格式,并且可以来自任何设备。技术业务发展的职责是构思出很棒的解决方案,将来自例如 Microsoft Exchange 或 Citrix Xen Desktop 的机器数据与 Splunk 的分析和报告功能结合起来,并将其转化为一系列表格、图形、图表和仪表板。

我最近的项目包括使用 XML API思科的 UCS 服务器平台 获取数据,将这些数据转换为易于在 Splunk 中解析的格式,然后使用 Splunk 搜索处理语言来回答客户认为有价值的问题。

机器数据的有趣之处在于,您通常不知道数据的价值有多大,直到您将所有数据放在一个地方并能够对其执行快速搜索。例如,如果您在日志文件中看到一个错误代码,您就知道您遇到了问题。但是如果您有 200 台服务器呢?或者 40,000 个虚拟桌面呢?

能够在几秒钟内输入该错误代码,并看到它发生的频率、来自哪些节点,然后能够深入了解在出现错误之前可能发生了哪些事件,这是非常棒的。

当来自复杂系统中所有组件的多个数据源涌入时,您可以开始做一些真正酷的事情,跨所有部分关联数据,这是其他产品真正难以处理的。

您的开发环境是什么?

首先,我得提一下,在接触 Splunk 之前,我从未用过 Mac。他们给了我一个选择:Mac 或 PC。我决定尝试一些新东西来配合我的新工作(我已经在 Splunk 工作一年了)。自从 Windows 3 版本以来我一直在使用 Windows,并且在我整个职业生涯中我都在支持基于 Windows 的平台,所以这个决定并非轻易做出。

话虽如此,我对 Linux 作为服务器一直抱有极大的尊重,并且有不错的实际操作知识。但在桌面端,我一直觉得它更像是一个玩具。偶尔尝试新的发行版,看看 FOSS(自由和开源软件)社区在做什么,然后回到 Windows 继续我的真正工作。

我听说了一些好消息,苹果在将一个“足够 Linux”的内核和操作系统基础打造成一个极其精美的桌面 UI 体验方面做得非常出色,这吸引了所有酷炫的开发者,并且通过一点交叉编译,他们就能以最小的额外精力在那里运行他们的东西。我很有兴趣看看这会产生什么,而且,如果我需要运行 Windows 应用程序,运行带有 Windows 虚拟机的 VMware Fusion 也没什么不好。

所以,所有这些有趣的事情是,我是一名 Microsoft MVP,我的奖项是颁发给我围绕 Windows PowerShell 脚本语言的社区努力的!让我告诉您:PowerShell 在 Mac 上是运行不了的。而且我实际上是一个非常糟糕的 Bash 脚本编写者,我的 Python 功力仍然相对较新。因此,我仍然对我的 Mac 工具集不太自在。

如今我的主要编辑器是 Komodo,但当我处理较长的 XML 文档时,有时会切换到 Sublime Text 2,因为它更容易导航。

当我在 Windows 虚拟机中时,通常是为了处理 PowerShell。我是 PowerShell 的忠实粉丝,因为 Microsoft 在一些核心设计概念上做得非常好,例如高级任务驱动的操作(称为“cmdlet”)、它的一致性和易用性,以及他们完全支持它的事实,以至于 Microsoft 的所有产品组和大量第三方供应商都在其产品中增加对 PowerShell 的支持。在 Windows 生态系统中,没有其他自动化粘合剂曾拥有过如此高的支持水平。

而且它也是一个很好的交互式处理的 Shell。需要删除几百个符合特定文件名规范、大小超过一定限制且在 30 到 60 天前写入的文件?在 PowerShell 中,这只需要一行代码。

当我使用 PowerShell 时,我总是在 PowerShell 集成脚本编辑器(ISE)中,这是 Microsoft 随操作系统一起提供的。ISE 没有所有最佳编辑器拥有的功能,但它快速轻便,具有一定的可扩展性模型(老实说,有点不成熟),而且它不会碍手碍脚。

市面上还有其他更好的编辑器,我也都尝试过。如果我全程使用 Windows 并且专注于开发单平台产品(不像我现在的职位),我可能就会使用其他东西。最有可能的是 Sapien 的 PowerShell Studio,我对此非常尊重。

您对哪些新工具、语言或框架感兴趣?

我的未来看起来是 PythonDjango 框架,所以我需要在这方面做得更好。我的一位朋友正在说服我去使用 PyCharm,但我还没有做到。把它列为接下来要尝试的。

另外,我看到我的一些同行在 D3 上做了一些令人惊叹的事情。我们一直都专注于数据可视化,所以学习这个也是非常有意义的。

您最讨厌的编码习惯是什么?

我喜欢 Microsoft 对 PowerShell 的处理方式。始终首字母大写,必要时混合使用驼峰式命名。然而,我发现我接触的更多东西比我习惯的更区分大小写(PowerShell 是保留大小写但忽略大小写的),所以我正努力“向下”适应并保持一致,以避免混淆和一些低级的错误。

我是那种喜欢按 Tab 键而不是空格键的人。我想说我对这类讨论不太在意,但老实说,那是因为我通常在小型单人项目上工作,所以我很少需要与同事们在他们的糟糕的代码风格上妥协。微笑 | :)

您是如何开始编程的?

什么?!你说谁是程序员?哦。该死,我好像确实有点像程序员,不是吗?

这对我来说其实相当新。在过去的十五年里,我一直从事 IT 行业。我更习惯于扮演接电话(好吧,那已经是很久以前的事了)、安装服务器、部署虚拟机或设计复杂的多层系统的角色,而不是创造软件新事物的角色。

我的第一台电脑是 Commodore 64,我确实稍微涉足过 BASIC,但实际上并没有做太多,除了输入当时电脑杂志上的示例。我最终得到了一台 PC,并且一直是游戏玩家。

我喜欢拆卸东西并让它们以不同的方式工作,所以黑客(hacking)的意义在于窥探和修改开发者不希望我进入的内存部分,这常常很有趣。修改游戏也很有趣,所以任何时候只要有包含配置文件或存档文件的游戏可以修改,我都要去调整一下。这种通过实验学习的方式,直到今天仍然对我的职业生涯非常有价值。

我在大学一年级时学过一门入门的 C 语言课程,我非常惹恼了老师(我犹豫是否称她为教授),因为我对课程内容的了解比她还多。但我从未在计算机科学方面深入发展。

那时我了解了 MUDs(多用户地下城),我为孩子们解释一下:它就像《魔兽世界》,但没有图片。大笑 | :-D

我花了大量时间扮演“巫师”,在那个术语中,这意味着我可以使用一种编程语言为他人创造新的世界去探索和互动。我想我们使用的语言叫做 LPC,它的语法类似于 C,所以与我在课堂上所学的内容相符。

即便如此,我从未认为自己是程序员,现在也不是。我确实会创造东西。我确实与程序员一起工作。但我的大脑的思维方式与大多数真正佩戴那个徽章的人不同。我认为这与注意力有关。我根本没有。 微笑 | :) 我不会熬夜通宵编码。我很有可能在会议上谈论我的工作,或与合作伙伴会面,而不是实际坐下来编写代码。

我非常尊重那些能够完成事情并产出数千行代码的人,但那不是我。

开发者社区是如何影响您的编码的?

我长期以来一直活跃于各种在线社区。从 Usenet 和 IRC,到 TwitterGoogle+,以及介于两者之间的所有其他平台。

我过去曾热衷于运营基于论坛的社区。我曾领导并偶尔参加过用户组和各种大会等线下活动。我有幸在 VMWorld 和 Microsoft TechEd 等一些最大的 IT 会议上发表演讲。但我认为我玩得最开心的是一个名为 Codestock 的小型会议,该会议每年在田纳西州诺克斯维尔举行。

我要说,我做过的最重要的个人网络活动是在亚特兰大参加了一个用户组,当时的领导一看到我进门就说:“Hal,认识一下 Jim。Jim,Hal 写了一本关于 PowerShell 的书。” 几周后我开始为 Jim 工作。这正是我刚被前雇主解雇之后。真是太巧了。

您会对一个新兴的程序员提供什么建议?

我将在此基础上继续回答社区问题,并说:走出去,认识你的同行。总有适合你的技能和兴趣的活动,我向你保证。而最好的工作,是通过你的人脉网络获得的。

对目前的工作感到厌倦?在家失业?走出家门去认识人。你可以随便扔块石头,都能砸到做和你一样工作的人,甚至可能做得比你好。最坏的结果是你学到一些新东西。

培养你的技能。永远阅读。尝试新事物。创造并发布作品。我的最后两份工作我甚至都没去面试。招聘经理通过搜索我的名字就能看到我的工作。是的,建立起来需要时间,但老兄,这非常值得。

我热爱我目前的工作,但生活总有变故,你必须为下一份工作做好准备,因为没有人能不应该帮助你走到那里。

© . All rights reserved.